serena

Modelsim之时序仿真

0
阅读(2787)

利用ModelSim进行时序仿真(门级仿真),可以比较真实地反映出器件的延时情况。

下面就用分频器实例简要说明一下:
1、在QuartusII中新建一个div工程。注意EDA Simulator的设置,可以新建工程时设置也可以后续再设置,如图:


Tool name选择ModelSim,Format for output netlist选择Verilog(会生成.vo的Verilog输出文件,若选择VHDL则会生成.vho的VHDL输出文件),其它的可以默认就行。
2、添加源文件,并编译。完了就会在当前工程目录下生成Simulation>ModelSim的文件夹,里面就存放了相关仿真所需要的文件,如.vo(verilog输出文件),.sdo(延时文件)等。
3、打开ModelSim,并在刚才生成的ModelSim文件夹路径下新建一个div的工程。为了对比,分别进行功能仿真和时序仿真。
首先,功能仿真,这个比较简单,直接添加div.v源文件和div_tb.v测试文件,然后编译,完了直接运行仿真即可,得到结果可以看到输入、输出是没有延时的,只进行了功能仿真验证。

4、进行时序仿真,这时候就需要相关预编译库和延时文件的加入了。
a)将之前的div.v文件Remove,并添加div.vo文件,(因为div.vo就是div.v的输出文件,所以直接用QuartusII编译输出的div.vo就行了),然后编译div.vo和div_tb.v。
b)开始仿真设置。
首先,添加预编译的器件库,本例中用的是cycloneii_atoms,找到它所在位置并添加进来(具体这个库的编译之前已经有说过,这里就不多说了),


然后,添加SDF延时文件,也就是刚刚生成的div.sdo文件,点击Add。


首先加入SDF文件,另外还有一个选项就是Apply to Region,这里输入u_div,这个选项主要是指明时序仿真的实体名,即Testbench中实例化的div名(u_div),完了OK。


c)完成上述相关设置后,即可开始仿真了。点击div_tb顶层实体开始仿真。

(转自Altera FPGA小组,作者:youzizhile )