Modelsim 仿真步骤总结 - 图文

更新时间:2024-04-22 13:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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完成前仿真(功能仿真),后仿真还需在该基础上进行略微修改,但思路方法是相同的,只是其中添加的文件类型及必要的引脚分配等操作特殊外,其他的大同小异!

本文来源:https://www.bwwdw.com/article/fpwp.html

Top