一、开始前的准备:
时序仿真即后仿真,是利用SDF文件对原有设计进行时序标注之后,再进行仿真。时序仿真可以反映设计的时序性能,使设计接近于真实情况。Modelsim本身不可以产生时序仿真所需的SDF文件,但可对EDA工具如QuartusII生成的SDF文件进行仿真。仿真前,首先需要用quartusII生成用于功能或时序仿真的网表文件.vo),以及使用EDA仿真工具生成时序仿真所需的延时输出文件(.sdo)。
二、时序仿真流程
1、设置modelsim仿真路径,打开quartusII工具,选择菜单栏下面的toolsoption选项,打开如下界面。
2、在EDAToolsOptions里面设置好Modelsim_Altera的路径。其实现在quartusII版本较高,与Modelsim_Altera都是一起安装的。这一步基本已经做好。
3、打开QuartusII工程文档。进行RTL设计,编译、综合完成后,生成所需的.vo和.sdo文件,生成的文件在quartusII工程目录的simulation文件夹里面。这里以项目过程中一个例子来说明。生成的工作路径中文件如下所示。
4、接来这一部分非常重要,也是Modelsim-altera软件不同于以往的Modelsim软件重要的一步。将仿真过程中用的的库文件复制到上面文件夹中(必须放在此文件夹中,否则无效)。在本例程中只用到了器件库,CycloneII。因此只需将编译好的cyclone库文件拷贝到该文件夹中。库文件路径为:D:\Altera\13.0\modelsim_ase\altera\verilog\cycloneii。即安装路径下面的子路径。当然也可以在Modelsim-altera中新建库文件,编译所需要的库,之后再将库文件拷贝至此目录下。
5、打开Modelsim-Altera,新建工程。工程路径同样也指向modelsim文件夹下面。如下图所示。
6、添加文件至工程,由于进行时序仿真,故这里面添加.vo和testbench文件。全编译完成后,开始继续下面的仿真。
7、在功能仿真中,我们通常只需要输入vsimtestbench就能执行仿真。但是时序仿真需要指定库路径和.sdo文件。万万不可像功能仿真那样了。选择菜单栏的simulate。
8、进入startsimulation界面,在Design窗口的work库中选择testench模块。切换到libraries界面,增加modelsim文件夹里面的cycloneII库至libraries里面。如下图所示:
9、库文件增加完成后,切换至SDF窗口,增加.sdo文件,在ApplytoRegion窗口中输入testbench的例化名(这点很重要,注意是例化名)。
10、点击一系列的OK之后,Modelsim-Altera自动进入仿真界面。增加波形至wave窗口,运行run,完成仿真。
这样,利用Modelsim-Altera采用GUI进行时序仿真的流程就此结束。
三、Modelsim-Altera时序仿真过程中调用四种常用的仿真库,分别为:
·元件库,例如本例程所用到的cycloneII元件库,根据FPGA特定的型号。
·altera_mf,调用Megafunction的设计仿真时需要;
·lpm,调用lpm元件的设计仿真时需要;
·primitive库,调用altera的原语(primitive)设计仿真时需要;
Modelsim在仿真过程中,工作库只能有一个,而资源库则可以有多个。Modelsim-Altera在安装后,安装目录下已经默认安装很多库,在仿真的时候拷贝到仿真目录下即可直接调用。资源库是不变的,而工作库是用来把不同设计的编译文件放进去,且根据需要,不断更新。