我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 976|回复: 5

[技术文章] FSM状态机仿真设计-如何查看状态

[复制链接]

该用户从未签到

97

主题

115

回帖

256

积分

二级逆天

积分
256

终身成就奖

发表于 2019-10-30 10:07:46 | 显示全部楼层 |阅读模式
我们平时使用Verilog进行状态机编码时,通常使用parameter对状态名进行定义,这样写Case语句的时候就不会对这一串10摸不着头脑。可是通常这样做的话,在Modelsim里看到的还是一串10,使排错非常困难,特别是在用OneHot编码的时候,就看到一串0中间的一个1 #_# 简直要疯掉。

Question: 我们可不可以像VHDL一样,在仿真的时候看到状态名字,而不仅仅是状态编码呢?

答案当然是可以的拉,事在人为嘛!

Solution1:
  另外定义一个reg: state_name,长度根据状态名称长度而改变(状态名称字符数x8);
  在每个状态执行的语句中加入state_name <= "IDLE"; 类似的一句语句;
  仿真时添加state_name进行观察,使用ASCII Radix。

Solution2:
使用如下语句:

`ifdef SIMULATIONparameter S_idle        = "idle  ";parameter S_decode      = "decode";parameter S_start       = "start ";parameter S_wait        = "wait  ";parameter state_wid_msb = 47;`elseparameter S_idle        = 4'b0001; parameter S_decode      = 4'b0010; parameter S_start       = 4'b0100; parameter S_wait        = 4'b1000; parameter state_wid_msb = 3;`endifreg    [state_wid_msb:0] state;

只要在仿真的时候`define SIMULATION就可以了。一样用ASCII Radix查看。
综合的原则为:
    [li]综合之前一定要进行仿真,仿真会暴露逻辑错误。如果不做仿真,没有发现的逻辑错误会进入综合器,使综合的结果产生同样的逻辑错误。 [/li][li]每一次布线之后都要进行仿真,在器件编程或流片之前一定要进行最后的仿真。 [/li][li] 用Verilog HDL描述的异步状态机是不能综合的,应该避免用综合器来设计。在必须设计异步状态机时,建议用电路图输入的方法[/li][li]状态机应该有一个异步或同步复位端,以便在通电时将硬件电路复位到有效状态。建议使用异步复位以简化硬件开销。[/li][li]时序逻辑电路建模时,用非阻塞赋值。用always块写组合逻辑时,采用阻塞赋值。不要在多个always块中为同一个变量赋值。[/li][li]always块中应该避免组合反馈回路。在赋值表达式右端参与赋值的信号都必须出现在敏感信号列表中,否则在综合时,会为没有列出的信号隐含地产生一个透明锁存器。[/li]
回复

使用道具 举报

该用户从未签到

1

主题

6699

回帖

4

积分

二级逆天

积分
4

社区居民终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2019-11-1 00:46:59 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

0

主题

1821

回帖

2237

积分

二级逆天

积分
2237

终身成就奖

QQ
发表于 2019-11-1 08:39:38 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

27

主题

324

回帖

0

积分

PADS-190819初级班

积分
0

终身成就奖

发表于 2019-11-1 08:47:50 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

19

主题

325

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2019-11-1 11:19:03 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

5

主题

82

回帖

0

积分

二级逆天

积分
0

终身成就奖特殊贡献奖原创先锋奖

发表于 2019-11-3 11:12:20 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表