7.4功用仿真和时序仿真的差异和完成办法
这儿咱们运用一个波形发生器作为比如,来阐明怎么运用Modelsim对QuartusII生成的IPCore和相应的HDL文件进行功用仿真和时序仿真。这个比如里边运用到了由QuartusII生成的一个片上ROM存储单元。这种存储单元和RAM相同,都是根本的FPGA片上存储单元,在今后的规划里边会常常运用到。
7.4.1功用仿真
(1)在QuartusII中设置第三方仿真东西,挑选“Assignments-Settings-EDAToolSettings-Simulation”,挑选“ModelSim-Verilog”。如图7.17所示。
图7.17EDA东西设置
(2)编译工程。编译带有IPCore的工程文件。
(3)编译完成后会在工程目录下生成“simulation-modelsim”的目录,如图7.18所示。其间包括了3个文件:“.vo”是仿真网表文件,能够用来替代规划文件;“.xrf”是Quartus编译生成的信息文件;“.sdo”是工程延时信息。
图7.18编译生成文件
(4)参加仿真库文件。
仿真库的途径为“C:\altera\quartus50\eda\sim_lib”,包括了如下3个仿真库文件。
·220model.v:带有用户原语类型的Quartus自带的IP核的库文件。
·altera_mf.v:Quartus自带的IP核的库文件。
·cyclone_atoms.v:相应系列的器材库。
在本例中需求增加altera_mf.v,cyclone_atoms.v两个库文件。
(5)编写测验文件(详见7.5节)。
(6)将测验文件粘贴到方才生成的目录中,如图7.19所示。
图7.19增加测验文件
(7)翻开modelsim。
(8)创立工程并增加源文件,如图7.20所示。
图7.20为工程增加源文件
(9)编译工程。结合库文件一同进行编译、如图7.21和7.22所示。
图7.21悉数编译前
图7.22悉数编译后
(10)修正wave.vo文件。将文件中的延时信息注释掉,即:
//initial$sdf_annotate(WAVE_v.sdo);
(11)从头编译wave.vo文件。
(12)翻开开端仿真对话框,如图7.23所示对话框。
挑选顶层模块wave_top,开端进行仿真,如图7.24所示。
图7.23挑选开端仿真的文件 图7.24挑选顶层模块文件
(13)增加信号。右键挑选增加信号到波形图。并在命令行中敲入“run1ms”,按“回车”键,开端仿真。成果波形如图7.25和图7.26所示,分别是二进制显现、十进制显现。
图7.25二进制显现
图7.26十进制显现
扩大检查细节的波形时序,能够发现,功用仿真的成果是没有推迟的,如图7.27所示。
图7.27功用仿真成果无推迟
7.4.2时序仿真
(1)将功用仿真第(10)步中对wave.vo文件做的注释改回来,从头进行编译。
(2)从头翻开开端仿真对话框,挑选顶层模块,如图7.28所示。
(3)挑选“SDF”选项卡,如图7.29所示。
图7.28挑选顶层模块仿真 图7.29“SDF”选项卡
(4)参加“.sdo”文件,将两个SDFOptions都选中,如图7.30所示。
图7.30增加“.sdo”文件
(5)和功用仿真相同,为波形窗口增加信号,开端进行仿真。
(6)经过波形图,检查时序仿真的延时,如图7.31所示。
图7.31检查时序仿真推迟