IC验证学霸笔记2—verilog中级语法同步状态机原理十二

同步状态机的作用与结构

1.作用:

用于实现复杂的时序逻辑电路;

2.结构:

状态寄存器(触发器)作为状态记忆部件(常用正跳边沿触发的D触发器);

仅当触发信号到达时刻才可能发生状态改变;

状态寄存器如果有n个触发器,状态机最多有2^n个状态

3.同步状态机三要素:

1.状态:状态变量,划分逻辑顺序;

2.输出:某一状态时完成的事;

3.输入:进入某个状态的条件。

4.同步状态机的类型:

米勒型状态机(mealy状态机):下一个输出是当前状态和输入的函数/下一个状态是当前状态的输入的函数;

摩尔型状态机(Moore状态机)下一个输出是当前状态的函数/下一个状态是当前状态和输入的函数;

同步状态机的实现

1.状态分配 

二进制表示状态的状态机:(连续的压缩状态的编码)

2'b00;   2'b01;   2'b10;   2'b11

格雷码表示状态的状态机:(降低系统功耗)

2'b00;   2'b01;   2'b11;   2'b10;

独热码表示状态的状态机:(n个状态需要n个寄存器)

4'b0001;   4'b0010;   4'b0100;   4'b1000;

2.有限状态机的描述风格


一段式风格(仅用一个always块实现状态即所有的功能,包括状态的产生,状态的跳转,输出逻辑的生成);
二段式风格(二个always块实现1.下一个状态到当前状态的产生;2.状态的跳转,输出逻辑的生成);
三段式风格(三个always块实现1.下一个状态到当前状态的产生;2.状态的跳转;3.输出逻辑的生成);
由输出指定的码表示状态的状态机;

3.有限状态机的HDL描述

wire,reg,状态编码用reg型。

parameter用于描述状态名称,易读。

4.有限状态机的Verilog描述 

1.定义模块名和输入输出信号;

2.定义输入输出变量和寄存器;

3.定义时钟和复位信号;

4.定义状态变量和状态寄存器;

5.用时钟沿触发always块进行状态转移;

6.在复位信号有效时给状态寄存器赋初值;

7.描述状态的转换过程:符合条件,词能够一个状态带另一个状态,否则保留原有状态;

8.验证状态转移的正确性,必须完整和全面。

5.同步状态机的实现

状态转移图:状态,转移条件和逻辑开关


实现功能是检测一个5位二进制序列“10010”。可实现循环检测。
设计文件:
测试文件:
波形:
注:优秀验证学员随堂笔记,已经征求到学生的同意,会持续给牛友们分享!
大家看完记得 一键三连!多多支持



#深度学习##转行转岗经验分享##芯片设计工程师##芯片IC验证工程师##你为什么选择硬件行业#
全部评论
正在学这个,这个分享太有用了,感谢分享
点赞 回复 分享
发布于 2022-08-28 00:45 陕西

相关推荐

07-17 12:14
门头沟学院 Java
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
1
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务