(笔记)在Quartus II与ModelSim下仿真,对计数初值的设置问题(ModelSim)(Quartus II)(Verilog)
2012-01-04 15:29
169 查看
Abstract
在用Quartus II与ModelSim分别对一个简单的分频程序进行仿真时发现了一个关于设置初值得问题
Intrduction
使用环境:Quartus
II 7.2 SP3 + UP-SOPC2000(Cyclone II EP2C35F627C8)+
ModelSim SE PLUS 6.2b
以前用惯了Quartus II自带的方针工具进行程序的功能和时序仿真,今天尝试了一下用ModelSim进行仿真,待仿真的程序时一个
简单的分频程序,但是就是这样的一个简单的程序分频程序在Quartus II下和ModelSim下的除了截然不同的结果,原因就归结于
一个计数变量cnt的初值问题
在Quartus II环境下仿真
Step1
待仿真的源程序clk_div.v
PS: 注意第17行在Quartus
II仿真时我并没有加这句
Step2
在编译成功,生成逻辑网表后进行功能仿真,仿真结下图
以上是在Quartus II进行功能仿真的结果,与预期一致
在ModelSim SE PLUS 6.2b下仿真
待仿真文件与在Q2下的一样
测试激励文件
结果就是在这样的待测试和测试激励文件下,居然iCLK和rst都有波形产生,就是oCLK输出始终为0,最出我还以为时我的程序在
ModelSim下失效了,同样的程序在两个不同的环境下互相开起了玩笑,想了又想,测试一遍又一遍,还是无结果,最后我把整个
文件发给了“基督山伯爵”网友,还是他帮我我问题解决了:
原因出在源文件的第17行
我原来是没有这段代码的,等加上这段代码后,可以进行功能仿真了,仿真结果如下:
DownLoad
modelsim_count4.rar
Conclusion
在ModelSim中出现上述情形有两种情况可供参考:
情形一:如果程序中加入了cnt<=19'd0,但是在编写测试激励文件时没有对rst波形进行描述(或者是rst在激励中始终为'0'或'1'),那么
仿真时也不会出现结果,原因是cnt没有正常初始化
情形二:就是本文提到的没有写cnt<=19'd0这行代码,即使测试激励文件有对rst波形进行描述,复位有效时也因为没有对cnt正常初始
化而正确仿真
在modelsim 中cnt默认值不是0,在Quatus II仿真的时候cnt被默认为0;所以在ModelSim仿真时一定要注意这一点,
即使在Q2下也要把这句加上,这很大一部分涉及到编程习惯问题,所以我们在编写程序时一定要养成良好的变成习惯,做到周密的考虑!
在用Quartus II与ModelSim分别对一个简单的分频程序进行仿真时发现了一个关于设置初值得问题
Intrduction
使用环境:Quartus
II 7.2 SP3 + UP-SOPC2000(Cyclone II EP2C35F627C8)+
ModelSim SE PLUS 6.2b
以前用惯了Quartus II自带的方针工具进行程序的功能和时序仿真,今天尝试了一下用ModelSim进行仿真,待仿真的程序时一个
简单的分频程序,但是就是这样的一个简单的程序分频程序在Quartus II下和ModelSim下的除了截然不同的结果,原因就归结于
一个计数变量cnt的初值问题
在Quartus II环境下仿真
Step1
待仿真的源程序clk_div.v
PS: 注意第17行在Quartus
II仿真时我并没有加这句
Step2
在编译成功,生成逻辑网表后进行功能仿真,仿真结下图
以上是在Quartus II进行功能仿真的结果,与预期一致
在ModelSim SE PLUS 6.2b下仿真
待仿真文件与在Q2下的一样
测试激励文件
结果就是在这样的待测试和测试激励文件下,居然iCLK和rst都有波形产生,就是oCLK输出始终为0,最出我还以为时我的程序在
ModelSim下失效了,同样的程序在两个不同的环境下互相开起了玩笑,想了又想,测试一遍又一遍,还是无结果,最后我把整个
文件发给了“基督山伯爵”网友,还是他帮我我问题解决了:
原因出在源文件的第17行
我原来是没有这段代码的,等加上这段代码后,可以进行功能仿真了,仿真结果如下:
DownLoad
modelsim_count4.rar
Conclusion
在ModelSim中出现上述情形有两种情况可供参考:
情形一:如果程序中加入了cnt<=19'd0,但是在编写测试激励文件时没有对rst波形进行描述(或者是rst在激励中始终为'0'或'1'),那么
仿真时也不会出现结果,原因是cnt没有正常初始化
情形二:就是本文提到的没有写cnt<=19'd0这行代码,即使测试激励文件有对rst波形进行描述,复位有效时也因为没有对cnt正常初始
化而正确仿真
在modelsim 中cnt默认值不是0,在Quatus II仿真的时候cnt被默认为0;所以在ModelSim仿真时一定要注意这一点,
即使在Q2下也要把这句加上,这很大一部分涉及到编程习惯问题,所以我们在编写程序时一定要养成良好的变成习惯,做到周密的考虑!
相关文章推荐
- (笔记)在Quartus II与ModelSim下仿真,对计数初值的设置问题(ModelSim)(Quartus II)(Verilog)
- Verilog中ISE联合Modelsim仿真,出现蓝线和红线的问题
- Verilog学习笔记3:解决ModelSim闪退的问题
- Modelsim与Quartus ii联合仿真的一些问题
- 关于在Quartus II和ModelSim中进行FPGA仿真报错的问题
- (笔记)Quartus II 中用在Verilog文件调用VHDL模块传入参数问题
- Quartus II 与ModelSim的学习笔记(三)——Verilog HDL基础语法
- rosb笔记:bug时间:环境变量设置问题——“解决 roscd beginner_tutorials 没有此文件的问题”
- ISE与modelsim联合仿真的问题
- quartus ii中仿真rom时遇到的问题(待完善)
- verilog中有关计数的问题
- 安卓笔记:设置背景图片闪退问题
- Xilinx FPGA 仿真环境设置(ISE + Modelsim + Debussy)
- Altera Quartus 13.1 仿真工具路径错误问题解决 Can't launch the ModelSim-Altera software
- Quartus II调用modelsim无缝仿真
- Ubuntu系统学习笔记-7.Tomcat下设置https的一个小问题
- Flex 学习笔记 页面初始化设置TextInput焦点失败问题
- 【XEN学习笔记】XEN 4.1.0 PVOPS设置和启动中遇到的一些问题
- DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析
- FPGA学习(第3节)-Verilog实现LED流水灯+基础入门语法+Modelsim仿真技巧+计数器+状态机+分频