Modelsim之时序仿真

利用ModelSim进行时序仿真(门级仿真),可以比较真实地反映出器件的延时情况,不过它也需要相关器件atom库的支持。
下面就用分频器实例简要说明一下:
1、在QuartusII中新建一个div工程。注意EDA Simulator的设置,可以新建工程时设置也可以后续再设置,如图:

2011040216234685.jpg

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测试文件,然后编译,完了直接运行仿真即可,得到结果如下:

2011040216235659.jpg

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

2011040216240929.jpg

然后,添加SDF延时文件,也就是刚刚生成的div.sdo文件,点击Add后出现如下窗口:

2011040216250611.jpg

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

2011040216242733.jpg

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

2011040216264166.jpg

仿真完成后的结果放大后如下:

2011040216252730.jpg

与之前的功能仿真结果相比,可以明显看到输入输出具有了一定的延时,经测量是6063ps,大约6ns。
我们的器件选择是EP2C25F672C6,也就是它的速度等级是C6,即最小延时可以达到6ns,因此上面的时序仿真结果与此也是相符合的。

上面对ModelSim的时序仿真做了简要的说明,其实还可以让仿真更加便捷,比如让时序仿真(门级)在QuartusII编译完成后自动运行,这些待后续再补充。

转载于:https://www.cnblogs.com/asus119/archive/2011/04/02/2003703.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值