VHDL仿真,Verilog_HDL仿真入门--ModelSim使用简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VHDL仿真,Verilog HDL仿真入门--ModelSim使用简介
学硬件描述语言当然得实践,就得用软件仿真。入门其实就是讲下仿真软件怎么用,是很简单的一件事,但是对于刚学的人来说可能有点无从下手。我之前就有点迷茫,所以写这个入门当自己的笔记,也希望能给自学的新手有所帮助。仿真VHDL和Verilog HDL并没有什么区别,一般的软件两种语言也都支持,仿真的步骤和方法也都是一样的。
常用的软件有Model Sim和Quartus II。
Quartus II功能很强大!实际的工作经常用它,它提供了功能仿真和时序仿真两种方式,但是作为学习HDL 并不方便,因为它compile编译的时候很慢,对于复杂的逻辑更是要很长时间。好的一点是,Quartus II编译后可以清楚的看到它使用了芯片的多少资源,各信号不同的延时等等。另外,Quartus II编译后也可以调用第三方的仿真工具,如Model Sim进行仿真。
而Model Sim只完成逻辑功能的仿真,并不考虑具体使用什么器件,学习HDL或者设计逻辑的时候compile一次所用的时间很短,便于调试找出逻辑的错误。所以初学仿真推荐使用Model Sim。本文也只讲下用Model Sim仿真逻辑的方法。
以下部分基本是参照软件帮助简写的,只是原来是英文的而且说的比较繁琐一些,也更详细内容更多。详见Model Sim菜单Help--SE PDF Documentation--tutorial。
仿真有两种方法。一种是Basic Simulation,就是直接建立库,然后编译源文件。另一种是通过建立Project来仿真,建立Project时软件会为它建立一个库,然后的仿真是一样的。
Basic Simulation的流程图如下
下面详细写一个例子的步骤
1. 建立库。选择菜单File>New>Library。建立新库就选a new library and a mapping to it,library name 和library physical name 都填work(当然其它名也行)。如下图。
确定后,在Work Space区的Library选项卡里就能看到新建的库work。
2. 编译VHDL或Verilog HDL源文件。选择菜单Compile>Compile,在弹出的窗口中打开Model Sim安装文件夹下的/modeltech/examples/tutorials/vhdl/basicSimulation/ (里面是软件自带教程的例子逻辑,Verilog HDL对应的例子在/examples/tutorials/verilog/basicSimulation里)。将里面的counter.vhd 和tcounter.vhd一起选中,点击Compile,然后点击Done关闭弹出窗口。
这两个源文件就编译好了,在Work Space区里的Library卡里可以看到库work下出现了两个编译完成的entity(或module),如下图。
3. 仿真。在Work Space区的library选项卡中,展开库work前的加号,双击test_counter,载入到仿真。
这时Work Space区中新增了一些选项卡,弹出了Objects面板。
选择菜单View>Debug Windows>Wave调出波形窗口。
在Work Space面板的Sim选项卡中右击test_counter,选择Add>Add to Wave。在波形窗口的列表里就能看到被添加到波形仿真的信号。
开始仿真。点击工具栏上的Run按钮,就看到了计数器各信号的波形。
默认仿真100ns。
如果点击Run All按钮则会一直仿真下去,知道点击Break按钮
或在代码中遇到断点。
设置断点的方法是在代码文件的行号上单击,会出现红点。再单击变黑则断点无效。
要重新仿真,可以单击工具栏上的Restart 按钮,在弹出的窗口中可
以设置要保留的内容然后单击Restart。
这些仿真涉及的按钮命令都可以在菜单Simulate中找到,仿真结束最后不要忘了选择菜单Simulate>End Simulate。
Project Simulation流程图如下
同样是计数器的例子。
1. 建立project。选择菜单File>New>Project,任意填写Project Name和存储路径,default library name保持默认的work不变,确定。
2. 直接在确定后弹出的窗口选择Add Existing File或在Work Space面板的Project选项卡里右击选择Add to Project>Exitsting File。添加Model Sim 安装目录examples/tutorials/vhdl/projects下的counter.vhd和tcounter.vhd两个文件到project(Verilog HDL的例子在examples/tutorials/verilog/projects下)。
这时可以看到Project里新添入的两个文件的status都是?。
3. 更改编译顺序(仅针对VHDL)。选择菜单Compile>Compile Order,在弹出窗口中上下移动文件改变编译次序,或者点击Auto Generate让Model Sim来自动决定。
4. 在Work Space面板的Project选项卡里任意处右击,选择Compile>Compile All,编译成功则源文件的status变为绿色对勾。双击载入simulation,波形仿真方法与Basic Simulation相同。
仿真时,控制激励信号的方法有两种,一种是在源文件里用代码产生仿真的输入信号,如上面的例子(详见程序自带的例子文件的代码),另一种是在波形窗口中编辑输入信号的波形,或者载入已编辑好的波形文件来仿真。在下一篇日志里做了一些介绍。