modelsim error (suppressible): (vsim-SDF-3250)、(vsim-SDF-3445)

使用安路TD联合modelsim做时序仿真的时候遇到了问题。modelsim error (suppressible): (vsim-SDF-3250)、(vsim-SDF-3445)

先放上能用的do脚本:

在这里插入图片描述

其中tb为仿真文件,top为加了sdc约束的文件。

要点:
sta.v(含时序信息)
phy_sim.v没有的话会导致某些warning(接口消失,我觉得应该没有问题)

vsim:(这个顺序最好不要更换,按上图的顺序比较好)
-novopt 禁止modelsim优化电路
-L 逻辑库的位置
-sdftyp tb/uut 。 tb应该换为顶层的仿真文件名字,uut是实例化模块的名字(而不是被调用的那个模块)

生成sdf

先生成sdf.在这里插入图片描述
然后跑综合布局布线,会自动生成sdf。

如何描述调用sdf的do脚本。这个可以直接用TD软件生成do脚本(为什么要用TD生成,因为自己去百度抄的调用sdf的do脚本语句不好用)
在tools-simulate-post route simulation下直接生成do脚本。

(vsim-SDF-3250)

使用do脚本的时候报错,说找不到instance 的文件。
在这里插入图片描述这个问题是调用库的时候命名错了。

-sdftyp tb/uut=sdf文件的地址

如果top模块是被generate for多次例化的时候,应该怎么约束呢?
如图要约束output_fifo。
在这里插入图片描述

-sdftyp  tb_fifo_async_all_case/genblk1.insta\[0].instb\[4].instc\[4].output_fifo=$work_address/simulation/generic_async_fifo.sdf

如果没有反斜杠(转义符),0会被当成无效符号。

(vsim-SDF-3445)

读取sdf失败,为什么呢?
在这里插入图片描述
因为TD生成的sim_sta.v文件里指定了sdf文件的名字(默认为工程的名字)。
在这里插入图片描述

而我要约束的模块为generic_async_fifo实例化生成的output_fifo,所以我把FIFO_2kx10.sdf重命名为了generic_async_fifo.sdf。

这导致do脚本执行的过程中找不到FIFO_2kx10.sdf(do脚本里写的是文件generic_async_fifo.sdf)(但是sta.v要调用的是FIFO_2kx10.sdf)

并且!sta.v默认sdf和他在同一个文件夹下。

我推测是因为do脚本/tb的位置和sta.v的位置不一样,导致sta.v和sdf在一个文件夹下,还是报错:(尽管do里已经绝对路径指定了sdf的位置)
在这里插入图片描述
注释掉sta.v的sdf_annotate就能通过了!
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值