2014年1月5日

verilog之task用法实例

摘要: 该用法的代码源自夏宇闻老师的教材。 源代码: 1 module traffic_lights; 2 reg clock, red, amber, green; 3 parameter on = 1, off = 0, red_tics = 350, 4 amber_tics = 30, green_tics = 200; 5 // initialize colors. 6 initial red = off; 7 initial amber = off; 8 initial green = off; 9 always begin // sequence to control t... 阅读全文

posted @ 2014-01-05 23:31 ZcsTech 阅读(3123) 评论(0) 推荐(0) 编辑

2014年1月3日

modelsim仿真时让状态机波形显示状态的名字

摘要: 在使用Verilog编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示(如IDLE等)。当使用ModelSim仿真的时候,状态机变量在wave窗口中以二进制编码的形式显示,如下面所示,这种显示形式不是很直观,但我们可以使用ModelSim提供的命令将状态机变量以“文本”形式的参数名显示,从而有利于调试。 下面以一个实例来说明。 代码来源:http://www.cnblogs.com/oomusou/archive/2011/06/05/fsm_coding_style.html 源文件: 1 /* 2 (C) OOMusou 2011 http://oomusou.cnblogs... 阅读全文

posted @ 2014-01-03 23:31 ZcsTech 阅读(3275) 评论(0) 推荐(0) 编辑

2014年1月1日

格雷码(Gray Code)转二进制码(Binary Code)

摘要: 学习verilog generate语句时,偶然看到用generate语句来进行格雷码到二进制码转换的代码,就从网上找了一些案例来学习。下表为几种自然二进制码与格雷码的对照表:十进制数自然二进制数格雷码十进制数自然二进制数格雷码000000000810001100100010001910011101200100011101010111130011001011101111104010001101211001010501010111131101101160110010114111010017011101001511111000 格雷码转换为二进制码算法有以下几种表述形式:表述一: 二进制格雷码为. 阅读全文

posted @ 2014-01-01 20:00 ZcsTech 阅读(14856) 评论(1) 推荐(0) 编辑

2013年12月28日

modelsim命令行仿真提示“vsim 不是内部或外部命令,也不是可运行的程序或批处理文件”的解决办法

摘要: 安装完modelsim后,用过命令行模式仿真,如“vsim -c -do run.do”,开始时是可以的。 后来偶然再用该仿真方式,发现命令行提示“vsim 不是内部或外部命令,也不是可运行的程序或批处理文件”。在网上搜索了一下,是由于环境变量PATH的值(即modelsim的安装路径:C:\modeltech_10.1c\win32)不见了。 将环境变量PATH的值添加一个C:\modeltech_10.1c\win32,并与其他的值用“;”隔开即可。 重新用命令行模式运行仿真,一切OK。 如果遇到其他命令行不执行某命令,也可以按照上述方式来处理。 阅读全文

posted @ 2013-12-28 17:35 ZcsTech 阅读(2398) 评论(0) 推荐(0) 编辑

2013年12月26日

Verilog之event的用法

摘要: 编写verilog的testbench时,可使用event变量触发事件。event变量声明为:event var;event触发为:->var;捕获触发为:@(var);在modelsim中可运行的实例码如下:10个时间单位后reset_trigger事件被触发,捕获后将reset设置一个时钟周期再触发reset_done_trigger。之后再分别设置10个周期的随机信号给enable和reset。 1 `timescale 1ns/100ps 2 module event_test; 3 event reset_trigger; 4 event reset_done_trigger; 阅读全文

posted @ 2013-12-26 20:09 ZcsTech 阅读(10812) 评论(0) 推荐(0) 编辑

导航