ModelSim使用的一点心得.doc_第1页
ModelSim使用的一点心得.doc_第2页
ModelSim使用的一点心得.doc_第3页
ModelSim使用的一点心得.doc_第4页
ModelSim使用的一点心得.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ModelSim使用的一点心得- - 1、 至今还没有弄明白为什么要用ModelSim,因为看波形Quartus II自带的工具就可以了啊。2、 我刚刚接触modelsim,我想大多数菜鸟跟我一样,看过如何使用ModelSim的介绍,说句实话,那些介绍写的都太过简单,仿佛大家都不屑写上一些比较“弱智”的步骤,恰恰就是这些看似累赘的步走,难为我好久。 教程上都写道,modelsim的简单使用方法如下:建立库- 影射库到物理目录 - 编译代码 - 启动仿真。首先建立库就叫我头晕。库的概念用在这儿实在不合适,把我吓坏了,也就没心思看下一步了。在我看来,教程应该这么写: 建立一个目录modelsimStudy。用任何文本编辑器编辑一个简单的例子程序,比如计数器counter.vhd。有clk、ena、reset输入,cnt作为输出。 打开Modelsim,首先create project,工程名随意取了,比如命名为test,目录设在modelsimStudy下,默认的库work不变(这样就不用管什么建立库之类的东西了)。然后add existing file,把counter.vhd加入当前工程。 编译这个文件,通过之后,work下面会出现counter这个实体。然后选中它,右键,simulate(左键双击也可)。 ModelSim有很多窗口(新手就怕这个),一开始只要选择view下面的 objects 和 wave窗口就行了。旧版的signal窗口在6.0的版本改名为Objects(这个我是摸索了好久才发现的,是不是太笨了?)。wave窗口刚打开时是空的,需要在objects窗口的 add - wave - signals in region。这时,wave上就有clk ena reset等信号了。 我们给clk来个输入激励,在object窗口中选中clk,右键选clock,给它定义个时钟。运行Run。嘿嘿。有波形出来了吧。3、2中的例子绝对适合刚刚接触modelsim的新手,有了这个体会之后,结合书上的教程,理解库以及modelsim的各个窗口用途就比较容易了。然后再尝试结合Quartus使用。4、Quartus中,选中modelsim作为仿真工具之后,在Quartus目录下会生成一个simulation文件夹,下面有个modelsim。完成编译之后,在这个目录下面生成了供modelsim使用的库和时序文件。如果选中了编译之后自动调用modelsim,我的做法是用Quartus编辑波形文件,然后导出作为激励文件。或者,自行打开modelsim,然后选择改变目录,把目录指向Quartus生成的modelsim目录。新建工程,把Quartus下的vhdl以及激励文件添加进来,进行仿真。5、Modelsim仿真cyclone PLL的问题。我也遇到过,出现什么fatal error。解决方法:* Simulation property - Design Tab - Resolution 应该设为 pssimulation - start simulation - Design , 那个resolution非常不显眼,认真找,它的默认值是default,改为ps就行了。ps: Quartus中把不用的管脚设成高阻态: assignment - device - pin&device里面设置。ModelSim的简要使用方法 在这一章里通过一些课程来简单介绍ModelSim的使用方法,更多的需要在实际应用中熟练和掌握。 第一课 Create a Project 第一次打开ModelSim会出现Welcome to ModelSim对话框,选取Create a 1 Project,或者选取FileNewProject,然后会打开Create Project对话框。 2 在Create Project对话框中,填写test作为Project Name;选取路径Project Location作为Project文件的存储目录;保留Default Library Name设置为work。 3 选取OK,会看到工作区出现Project and Library Tab。 4 下一步是添加包含设计单元的文件,在工作区的Project page中,点击鼠标右键,选取Add File to Project。 5 在这次练习中我们加两个文件,点击Add File to Project对话框中的Browse按钮,打开ModelSim安装路径中的example目录,选取counter.v和tcounter.v,再选取Reference from current location,然后点击OK。 6 在工作区的Project page中,单击右键,选取Compile All。 7 两个文件编译了,鼠标点击Library Tab栏,将会看到两个编译了的设计单元列了出来。看不到就要把Library的工作域设为work。 8 最后一不是导入一个设计单元,双击Library Tab中的counter,将会出现Sim Tab,其中显示了counter设计单元的结构。也可以DesignLoad design来导入设计。 到这一步通常就开始运行仿真和分析,以及调试设计,不过这些工作在以后的课程中来完成。结束仿真选取Design End Simulation,结束Project选取File Close Project。 第三课 Basic verilog Simulation 1 新建一个目录,并设置该目录为当前工作目录,通过从该目录调用ModelSim或是选取FileChange Directory命令来完成。 2 拷贝example目录中verilog文件到当前目录下。在你编译verilog文件前,你需要在新目录下生成一个设计库。如果你仅仅熟悉解释性verilog仿真器,诸如Cadence Verilog-XL,那么对于你来说这是一个新的方法。因为ModelSim是一个编译性Verilog仿真器,对于编译它需要一个目标设计库。如果需要的话,ModelSim能够编译VHDL和Verilog代码到同一个库中。 3 在编译任何HDL代码前,要建立一个设计库来存放编译结果。选取Design Create a New Library生成一个新的设计库。确定选取Create: a new library and a logical mapping to it,在Library Name域中键入work,然后选取OK。这就在当前目录中建立了一个子目录,即你的设计库。ModelSim在这个目录中保存了名为_info的特殊文件。4 下面你将编译Verilog设计。 这个设计例子由两个Verilog源文件组成,每一个都包含一个唯一的模块。文件counter.v包含一个名为counter的模块,它执行一个简单的八位加法计数器。另一个文件tcounter.v是一个测试台模块(test_counter),通常用来校验counter。在仿真下,你可以看到这两个文件,通过一个被测试台例示了的模块counter的一个简单的实例(名为dut的实例),来层次化的设置了。稍候你将有机会看一下这个代码的结构,现在,你需要编译两个文件到work设计库。 5 通过选取工具条中的Compile按钮来编译两个文件。 ( PROMPT : vlog counter.v tcounter.v ) 这就打开了Compile HDL Source Files对话框。 选取两个文件后,选择Compile,编译完成后选取Done。 6 选取工具条中的Load Design按钮开始仿真。 ( PROMPT : vsim test_counter ) Load Design对话框允许你从指定的库中选取一个设计单元仿真。你也可以 为仿真选取Simulation Resolution限制,缺省的库是work,缺省的Simulation Resolution是1ns。 7 选取test_counter,点击Load接受这些设置。 8 通过在主窗口下的vsim提示符下敲入下述命令来调出Signals、List and Wave window: view signals list wave (MENU: View 1 为了列示顶级( top-level )信号,移动鼠标到Signals window,选取ViewListSignals in Region。 ( Prompt : add list /test_counter/* ) 2 现在向Wave window添加信号。在Signals window选取EditSelect All选择三个信号,拖动三个信号到Wave window的路径名或是数值窗格的任一个中。 HDL条目也能够从一个窗口拷贝到另一个窗口(或者是在Wave and List window内部),通过Edit Copy和Edit Paste菜单命令。也能删除选取的条目Edit Delete。 3 下面打开Source window,选取View Source ( Prompt : view source ) 4 导入设计的时候会在工作去开出一个新的Sim Tab栏。这个Structure Pane展示了设计的层次结构。你可以点即“+”(expand)或“-”(contract)来观察。 5 点击其中的Function increment可以注意到其他窗口是怎么适当的自动更新的。明确地说,Source window显示了你在Structure window所选的层次水平的Verilog代码.在这种方式下使用Structure Pane类似于解释性Verilog的范围命令。现在,点击Structure Pane的顶层线,确定test_counter模块显示在Source window。 1.Run运行100ns,缺省设置。 (PROMPT: run ) (MENU: RunRun 100ns) 2 设置Run Length为500ns,然后Run。 在仿真运行了600ns,在工作取底部状态栏可以看到这些信息。 3 上个命令使仿真器前进了500ns,也可以设置仿真器推进的时间 run 3000 际仿真器向前推进了2400ns(3000-600) 4 选取主窗口Run All。 (PROMPT: run -all ) (MENU: RunRun -All) 5 选取Break中断运行。 看Source window,察看中断执行的语句。 调试仿真 1 在List window选取/test_counter/count。从List window菜单条中选取 Prop Signal Props。Modify Signal Properties (list) 对话框打开了。 为信号counter选取十进制(在Radix),相应的List window的输出也发生改变,成为十进制数,而不是缺省的二进制了。 2 我们选取工作区Structure Pane中的dut:counter,然后在counter.v中的30行(这里包含一个到Verilog功能增量的调用)设置断点。 3 选取Restart按钮,重载设计组件和重置仿真时间为零。 (PROMPT: restart ) (MENU: FileRestart) 确认Restart对话框中所有条目被选中,然后点击Restart。 例子中的Verilog代码中19行有一个stop语句,如果不Restart的话,将会停 在这一句上。 4 选取R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论