3505|3

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

让Verilog仿真状态机时可以显示状态名 [复制链接]

Situation: 我们平时使用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 SIMULATION
       parameter S_idle        = "idle  ";
       parameter S_decode      = "decode";
       parameter S_start       = "start ";
       parameter S_wait        = "wait  ";
       parameter state_wid_msb = 47;
`else
       parameter S_idle        = 4'b0001;
       parameter S_decode      = 4'b0010;
       parameter S_start       = 4'b0100;
       parameter S_wait        = 4'b1000;
       parameter state_wid_msb = 3;
`endif

reg    [state_wid_msb:0] state;

只要在仿真的时候`define SIMULATION就可以了。一样用ASCII Radix查看。

此帖出自FPGA/CPLD论坛

最新回复

哈哈,这个有用哦!谢谢斑竹了,希望斑竹多发些这样的教程。  详情 回复 发表于 2011-3-16 21:52
点赞 关注
 

回复
举报

6892

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

顶!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 

回复

255

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
哈哈,这个有用哦!谢谢斑竹了,希望斑竹多发些这样的教程。
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

4
 

那是肯定的!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表