1.3 ModelSim基本仿真流程
Mentor Graphics公司的ModelSim基本仿真流程,如图1-2所示,概括为4步:首先建立一个工作库,然后编译设计文件,再运行仿真,最后根据仿真结果进行调试。根据此流程,下面给出软件的具体操作步骤。
图1-2 ModelSim的基本仿真流程
结果文件——配套资源“Ch1\1-1”文件夹
动画演示——配套资源“AVI\1-1.avi”
1.3.1 创建一个工作库
在 ModelSim 软件中,库是仿真的基础,所有仿真的程序实例都要编译入库,才能进行仿真,所以在进行仿真之前,必须先建立一个库文件。可按如下操作进行。
(1)创建新的库
在ModelSim菜单栏中选中【File】→【New】→【Library】,如图1-3所示。
图1-3 创建新的库
(2)输入库名称
在弹出的对话框中输入库的名称,对话框如图1-4所示。对话框弹出时默认选中第三项(a new library and a logical mapping to it),下方两个可输入区域Library Name和Library Physical Name,默认名称均为 work,这也是 ModelSim 中默认的库名称。由于是第一个例子,这里的选项都不需进行设置,全部采用默认设置。
(3)新的库建成
在第二步中单击OK,即可完成库的创建。新的库会出现在ModelSim的库标签页中,如图 1-5 所示。最上方的 work(empty)就是新建好的库,后面括号中的 empty 表示此库是空的。可以看到,在work 库下面还有很多库文件,这些都是ModelSim自带的库,可以在设计中使用。
图1-4 库的设置
图1-5 建好的库文件
建好库的同时,在ModelSim的下方窗口中也会出现对应的文字提示,如图1-6 所示。这里读者可以先注意最上方的两行语句:vlib work和vmap work work,这是ModelSim的命令行操作语句,熟练使用这些语句可以大大加快仿真流程,这些都会在后续章节中介绍。
图1-6 提示信息
1.3.2 编译设计文件
建好库后就可以编译文件,具体的步骤如下:
① 打开编译窗口。在菜单栏中选择【Compile】→【Compile】,如图1-7所示。
图1-7 打开编译窗口
② 选择编译文件。打开之后的编译文件窗口如图 1-8 所示。在查找范围下拉菜单中选中本设计的文件夹 1-1,可以看到包含两个文件“fulladd.v”和“test.v”,选中这两个文件,单击右下角的 Compile 按钮,即可编译仿真文件。需要说明的是,图 1-8 中最上方有一个下拉菜单 Library,这里显示的是 work,就是之前建立的库文件。在实际操作过程中,如果不需要建立新的库,也可以跳过库文件的建立,直接进行设计文件的编译,在此界面中选中库名称即可。
③ 完成编译。单击 Compile 之后,刚才为空的 work 库就有了编译好的文件,如图 1-9所示。
图1-8 编译文件窗口
图1-9 编译好的设计文件
与此同时,在ModelSim下方的窗口中也会有对应提示信息,如图1-10所示。
图1-10 提示信息
1.3.3 运行仿真
编译通过的文件就可以进行仿真了,仿真的具体步骤如下:
(1)开始仿真。仿真的方式有很多种,这里采用最简单的方式,单击快捷工具栏的仿真按钮开始仿真,如图1-11所示。左侧的按钮是开始仿真,右侧的按钮是停止仿真。
图1-11 利用快捷工具栏仿真
(2)选中仿真文件。开始仿真后会出现Start Simulation对话框,如图1-12所示。选中需要进行仿真的文件,在这里选中顶层模块 test,同时把下方【Optimization】区域的【Enable optimization】选项取消。单击 OK 按钮后,在 Workspace 区域会出现新的标签sim,同时在命令窗口还会有对应的提示信息,如图1-13所示。
图1-12 开始仿真窗口
图1-13 仿真标签及命令提示窗口
(3)添加待观察的信号。选中 test 模块,单击右键,在弹出的菜单中选中【Add Wave】,这时会出现另一个新窗口:Wave。这是观察信号变化的区域,在仿真没有运行的时候,输出的信号均为空,如图1-14所示。
图1-14 添加观察信号
(4)运行仿真。快捷工具栏中也有运行仿真按钮,如图 1-15 所示。共有五个运行按钮,从左到右依次为Run、ContinueRun、Run-All、Break和Stop。这里单击Run-All按钮进行仿真。
图1-15 仿真工具按钮
1.3.4 查看结果
在单击 Run-All 按钮后,可以在波形窗口(Wave 窗口)观察输入与输出信号的变化,如图 1-16 所示。如果在设计中有一些系统函数(如$display)等,在命令窗口还会看到相应的提示。在本例中,命令窗口没有输出。
图1-16 Wave窗口的输入与输出波形
至此,ModelSim 的基本仿真流程就结束了,根据最后的仿真波形,可以验证程序是否正确。以光标处为例,波形的高电平处为信号1,低电平处为信号0,输入的信号a为1,b为0,c_in为0,在全加器中可知输出的结果应该为01,对比上方的信号,c_out为0,sum为1,结果正确。