此前在写状态机时总是在构思好转移图后直接一气呵成,写成了if else 的形式,很乱也不好维护,在此次用到了三段式状态机的方式,感觉就是简洁明快,而且好调试。
以下是三段式状态机的格式,不会有很大出入:
三段式状态机顾名思义,分为三部分,一阻塞赋值,二非阻塞赋值
reg [ n-1:0]current_state;// n的值根据自己的需要确定
reg [ n-1:0]next_state;

parameter S0=n’d0;///编码方式如格雷编码,独热编码,二进制编码等,选择自己合适的方法
parameter S1=n’d1;
parameter S2=n’d2; ……………..

///第一个always块儿定义当前状态的选择 为非阻塞赋值
always@(posedge clk or negedge rst)///
begin
if(!rst)
current_state<=Sxx;//复位后默认的状态
else
current_state<=next_state;
end

///第二个always块儿定义次态 为阻塞赋值
always@(current_state or A) ///敏感信号是current_state 和控制状态跳转的信号A
begin
//有的版本认为此处一定需要复位信号初始化,其实并不能一概而论
case(current_state)
S0:
if(A)
next_state=S1;
else
next_state=S0;
S1:
if(A)
next_state=S2;
else
next_state=S1;
///
……..
/
default:next_state=Sx;//保证状态机的逻辑完整,Sx视自己状态机而定
endcase
end

///第三个always块儿定义各个状态的输出 为* 非阻塞赋值*
always@(posedge clk)
begin
if!(!rst)
Sx<=m;
else
begin
case(next_state)
S0:out<=b;
S1:out<=b;

………

default:Sx<=m;
endcase
end
end

关于每个状态是否需要复位信号视自己程序而定,不需要全都进行复位操作。

三段式状态机的写法总结相关推荐

  1. 三段式状态机_Verilog实战篇(5)——FIFO amp; 状态机

    今天的暑期培训课依旧是由邸志雄老师主讲:FIFO基本原理及状态机的编写和应用. 下面先说一下FIFO:     一.FIFO 常见参数主要有:   1. FIFO的宽度:即 FIFO 一次读写操作的数 ...

  2. 三段式状态机_FPGA笔试题——序列检测(FSM状态机)

    FSM有限状态机,是FPGA和数字IC相关岗位必须要掌握的知识点,在笔试和面试中都非常常见. (1)了解状态机:什么是摩尔型状态机,什么是米利型状态机,两者的区别是什么?一段式.二段式.三段式状态机的 ...

  3. 小梅哥三段式状态机按键消抖改写

    小梅哥三段式状态机按键消抖改写 小梅哥资料中按键消抖部分是用一段式.二段式状态机写的.我用三段式状态机改写了一下,仿真和板载测试通过. 代码记录如下: module key_filter1(input ...

  4. 重迭式三段式状态机序列检测器-检测10110110

    重迭式三段式状态机序列检测器-检测10110110 要求:序列检测器 clk input clock input rst_n input asynchronous reset, low active ...

  5. fpga时序逻辑(三段式状态机模板、rom实现、边沿检测)

    目录 VL21 根据状态转移表实现时序电路 VL22 根据状态转移图实现时序电路 VL23 ROM的简单实现 VL24 边沿检测 VL21 根据状态转移表实现时序电路 题目分析: 1.使用三段式状态机 ...

  6. SJA1000 CAN总线verilog写的SJA1000 CAN总线控制器。 程序使用三段式状态机,对于语句均有箱子的中文注释

    SJA1000 CAN总线verilog写的SJA1000 CAN总线控制器. 程序使用三段式状态机,对于语句均有箱子的中文注释,同时还有相关的文档说明. 可直接拿来使用,同时适合新手学习规范写作代码 ...

  7. system verilog 三段式状态机和interface

    1.结构体和C语言类似,system verilog定义的package,也是一个sv文件,需要被工程当作文件一样添加.如果是inclue的文件,要在工程中设置搜索路径,否则在引用时要用相对工程启动文 ...

  8. DSP嵌入式C语言状态机,三段式状态机描述及模版

    三段式状态机描述及模版 [复制链接] 本帖最后由 Aguilera 于 2018-11-10 20:23 编辑 时序电路的状态是一个状态变量集合,这些状态变量在任意时刻的值都包含了为确定电路的未来行为 ...

  9. 三段式状态机-FSM

    三段式代码多,但是有时钟同步,延时少,组合逻辑跟时序逻辑分开并行出错少. (1)同步状态转移 (2)当前状态判断接下来的状态 (3)动作输出 如果程序复杂可以不止三个always   .always ...

  10. 一段式、两段式以及三段式状态机(FSM)设计实例

    一段式.二段式以及三段式状态机(FSM)设计实例 状态机(FSM)分类 状态转移的三种编码方式 一段式.两段式状态机(FSM)区别 vivado与modelsim联调显示状态机 设计实例 状态转移图 ...

最新文章

  1. 未来的黑科技计算机作文简写,写一篇英文作文。“未来计算机的发展”
  2. jquery serialize()无效读取不到数据
  3. 云南省2021高考成绩查询时间,2021云南高考成绩什么时候几点可以查
  4. python 打包自己得到的结果
  5. windows副本不是正版怎么办_盗版系统总是崩溃?别着急,让我来告诉你正版系统怎么下载...
  6. Linux简单命令集——less
  7. WordPress模板-ripro主题系列对接易支付通用模块插件
  8. Java多线程基础篇(02)-多线程的实现
  9. 华为、大众组建合资公司?相关回应来了
  10. 【给你几个使用Xamarin的理由】
  11. 【03】AngularJS 简介
  12. android 控件颜色随焦点变化实例
  13. PDF目录的自动生成
  14. Flash桌球游戏开发
  15. Python中match语句的用法
  16. 比较神秘的网址!也许有用!收藏一下!
  17. mac删除的文件还能找回吗
  18. 虚幻引擎 4 渲染流程分析
  19. 关于错误 Unhandled exception in .exe (Kernel32.dll): 0xE06D7363
  20. matlab 稀疏随机矩阵,Matlab 稀疏矩阵函数

热门文章

  1. SAP UI5 初学 ( 一 )、简介
  2. VC2012 学习记录
  3. 小米卸载动画-图标爆炸实现
  4. CBoard修改折线图颜色
  5. android如何查看手机中的db文件,查看sqlite数据库的表结构
  6. jdbc驱动加载过程
  7. Android 12 WiFi 框架
  8. Java面向对象三大特征
  9. iptables详解(图文)
  10. SPSS使用命令语法之复制与粘贴讲解