请教一下仿真中有多个timescale时VCS到底是怎么处理的
时间:10-02
整理:3721RD
点击:
我现在做的RTL中有直接使用工艺库中的器件。
工艺库是1ns/1ps的timescale;rtl和testbench不带timescale,仿真时用vcs的参数-timescale=1ns/1ps来指定,一直都没什么问题。
工艺库的verilog模型在filelist.f中用-v引进。testbench是基于vmm搭的。
最近RTL换了工艺库,这个库中使用了10ps/1ps的timescale,现在问题来了。
从仿真结果看,testbench中有些地方是1ns/1ps,有些是10ps/1ps。
现在我无论怎么调,在文件里加timescale也很好,在vcs参数中加-tb_timescale=1ns/1ps也好,
也无法把testbench统一成1ns/1ps。
甚至在testbench中直接用#24ns,出来的也是24*10ps。
请教一下高手,有没有什么好的解决办法或者思路啊?
工艺库是1ns/1ps的timescale;rtl和testbench不带timescale,仿真时用vcs的参数-timescale=1ns/1ps来指定,一直都没什么问题。
工艺库的verilog模型在filelist.f中用-v引进。testbench是基于vmm搭的。
最近RTL换了工艺库,这个库中使用了10ps/1ps的timescale,现在问题来了。
从仿真结果看,testbench中有些地方是1ns/1ps,有些是10ps/1ps。
现在我无论怎么调,在文件里加timescale也很好,在vcs参数中加-tb_timescale=1ns/1ps也好,
也无法把testbench统一成1ns/1ps。
甚至在testbench中直接用#24ns,出来的也是24*10ps。
请教一下高手,有没有什么好的解决办法或者思路啊?
是按环境里面最小单位,也就是最高精度进行仿真的。这种情况最好将testbench换成10ps/1ps.如果你换成1ns/ps很有可能仿真结果会出错。可以用
-override_timescale统一
谢谢你的建议。目前我也只能考虑改tb了。
-override_timescale会把工艺库里定义的timescale也覆盖掉吧?那肯定不行,宁可改tb的。
为啥要放那么多timescale呢?晕
只有产生时钟激励的文件的timescale才是真正的时间尺度,其他的都没用,除非里面有非可综合的测试逻辑才会调用自有的timescale
LZ找出原因了吗?分享一下
可能与用-v挂工艺库的.v文件有关。
filelist里直接加入工艺库.v就没问题。
filelist里用-v加入工艺库.v就有问题。
猜测应该是vcs的bug。或者是我对timescale的理解还不到位。
反正目前是修改tb,统一用10ps/1ps的timescale了。
mark一下,最近也有timescale的疑惑
