Modelsim 仿真步骤总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Modelsim 仿真步骤总结
Modelsim 仿真主要有以下三个方面:各版本的方法大体一致。(1)建立库并映射库到物理目录;
(2)编译源代码(包括testbench);
(3)执行仿真;
下面具体演示每一步的操作方法及流程,为力求简洁,其中有多种操方法的只介绍一种。
一)建立库的演示:
步骤为——启动modelsim>点击file菜单>(Change Directory)>new>(project)>library.注括号内的步骤非必须。
1.1)启动modelsim;
(1.2)点击file菜单,此时若需更改路径,可以点击其中的Change Directory.(注modelsim会自动默认路径。我们也可以在1.1步骤之前建立一个文件夹用于modelsim的工程,再将路径更改到我们新建的文件夹路径。)
(1.3)点击file子菜单中的new,选择project用于新建立一个modelsim工程。(虽然此步非必须,但是建立一个新工程有益
于接下来整个仿真文件的管理。)
1.4)点击file子菜单new,再点击new下的library,用于建立
一个库。(仔细观察1.3步,新建工程的同时亦可建立库)。
至此,modelsim仿真第一大步建立库的工作完毕。
二)编译源代码(包括testbench):
大家都已知道在quartus中编译源代码的方法,这里说明一下在modelsim中编译源代码及testbench的方法。
步骤为——建立一个新工程(同时建立库)后,会自动提示你四个选项。如图:
选create new file后提示对话框,(也可以在有源文件的情况下选择add existing file到工程中。例如我们用quartus写好文件后,可以用此方法将quartus中的文件添加到modelsim工程中来)让你命名你即将创建的新文件,完毕后,会自动出现一个空白的编辑窗口,在那里输入源代码和testbench。(提示:这样编写完后点保存,便可以直接保存到上面设臵好的work库中。比起另一种方法,不建工程直接建库,再通过菜单栏source添加源
文件及测试文件方便一些,因为后者还需要通过compile命令将文件编译进work库中。)可以重复进行创建新文件的提示,以便于打开更多的空白编辑窗口。
选中一种语言类型,则你即将编写的文件使用的类型。
附:编写testbench的另一种方法,在菜单栏选中source>show language templates,即在源文件左侧出现选项,选择create testbench会出现create testbench wizard,询问design unit name时,只需选中此时已存在于work库中的对应源文件即可,(若work 库中此时显示为empty,注意将源文件编译进work库中在进行上述步骤),下一步默认,再finish就ok了。结果会生成对应的testbench,我们只需进行少量更改,便可为我们自己所用。如下图
所示:
三)执行仿真
在执行完上述步骤之后,点击library 库中的work库下的测试文件testbench,双击会出现object窗口,里面显示Testbench 里
定义的所有信号引脚,在Workspace里也会多出来一个Sim标签。例如:
此时右键点击测试文件,选择Add->Add to Wave>选择需要观察的信号.例如:
若还看不到wave窗口,此时可以点击菜单栏中的view菜单下的wave命令,即可弹出wave界面。
点wavec菜单栏中的run(可设臵仿真时间长度)/run all 再隔一会儿执行stop/…等命令,进行仿真。
以上即是单独使用modelsim仿真的步骤了。当然使用quartus-modelsim联合仿真时,有些许出入,但总体运行思路是一致的。下面简短的说明一下此种模式下的modelsim调用。
Quartus-modelsim联合仿真时,需要设臵好第三方EDA仿真工具。Quartus中的工程编译成功后就会自动生成一个simulation\modelsim的文件夹。我们既可以通过quartus中的相关设臵及命令自动启动modelsim仿真,也可以自己启动modelsim 仿真,再通过modelsim中的compile命令添加仿真文件到work
库中。此时相当于与已完成一、二步骤,以后操作与前面的三步骤一致。
以上方法可使modelsim完成前仿真(功能仿真),后仿真还需在该基础上进行略微修改,但思路方法是相同的,只是其中添加的文件类型及必要的引脚分配等操作特殊外,其他的大同小异!