⑵后仿真 这里是采用的Cycloneii做的一个counter的例子。
后仿真与前仿真的步骤大体相同,只不过中间需要添加仿真库(和所选器件及所有IPCore相关)、网表和延时文件的步骤。
后仿真的前提是quartus已经对要仿真的目标文件进行编译,并生成modelsim仿真所需要的.vo文件(网表文件)和.sdo文件(时延文件),具体操作过程又有两种方法,一种是通过Quartus调用Modelsim,Quartus在编译之后自动把仿真需要的.vo文件以及需要的仿真库加到modelsim中,操作简单;一种是手动将需要的文件和库加入modelsim进行仿真,这种方法可以增加主观能动性,充分发挥modelsim的强大仿真功能。
①通过Quartus调用Modelsim 使用这种方法时首先要对Quartus进行设置。先运行Quartus,打开要仿真的工程,点菜单栏的Assignments,点EDA Toolsettings,选中左边Category中的Simulation.,在右边的Toolname中选ModelSim(Verilog),选中下面的Run Gate Level Simulationautomatically after complication.见下图。

图14对Quartus进行设置 Quartus中的工程准备好之后点击startcomplication按钮,此时modelsim会自动启动,而quartus处于等待状态(前提是系统环境变量中用户变量中PATH要设置好modelsim安装路径,如:D:\Modeltech_6.3\win32)。在打开的modelsim的Workspace窗口中你会发现多了工作库和资源库,而且work库中出现了需要仿真的文件。Modelsim自动将quartus生成的.vo文件编译到work库,并建立相应的资源库。如图所示。

图15Quartus II 编译之后自启动modelsim 观察库,可以发现,多了verilog_libs库、gate_work库和work库,但是在"工程文件夹\simulation\modelsim"下,只有verilog_libs和gate_work文件夹,为什么库里面却多了一个work库呢?而且gate_work库和work库文件内容相同!
gate_work 库是Quartus II编译之后自动生成的,而work库是modelsim默认库。仔细观察二者路径,二者路径相同,均为gate_work文件夹,可知modelsim 将 gate_work 库映射到 work 库。因此,在后续的工作中操作gate_work 库或者 work库都能得到正确结果。
编写测试台程序Counter_tb.v,最好放在生成的.vo文件所在的目录,以方便在需要手动仿真时使用。点Compile在出现的对话框中选中Counter_tb.v文件,然后点Compile按钮,编译结束后点Done,这时在Work库中会出现测试台文件。如下图所示。

图16编译测试文件 点击simulate->StartSimulation或快捷按钮 会出现startsimulate对话框。点击Design标签选择Work库下的Counter_tb.v文件,然后点击Libraries标签在SearchLibrary中点击Add按钮,选择仿真所需要的资源库(如果不知道需要选择哪个库,可以先直接点Compile看出现的错误提示中说需要的库名,然后再重复上述步骤)见下图。

图17选择仿真所需要的资源库 再点startsimulate对话框的SDF标签。在出现的对话框的SDF File框内加入.sdo时延文件路径。在Apply ToRegion框内有一个“/”,在“/”的前面输入测试台文件名,即“Counter_tb”,在它的后面输入测试台程序中调用被测试程序时给被测试程序起的名称,本例中为“DUT”,见下图。然后点OK。后面观察波形与前仿真步骤相同。

图18添加.sdo文件 |