在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3179|回复: 1

[转贴] 关于DC的各种问题

[复制链接]
发表于 2018-12-7 10:54:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
1.PR后的timing rpt没有时序违反,那sdf里负的hold 是什么意思,是好是坏?
   setup,hold的本质是数据不能在clock变化的周围变化, 否则会出错, 把在clock前的叫setup, clock后的叫hold, 其实是一个窗口 (violation window). 但是由于一个触发器内部本身也有delay, 假如data path没delay, clock path有delay, 那么这个窗口从触发器外部看起来的话, 就是往左移了, 移得太多, 就可能让hold timingcheck的值变成负值. 是正确的. 说的比较复杂, 其实画画时序图很容易理解.hold为负值的意思是信号在时钟沿之前指定时间内(那个负值的绝对值)翻转都不会出问题。

2 有error,提示要加+neg_thck,这个和负的hold有什么关系吗?加+neg_tchk貌似把负的hold修成0了?
   +neg_tchk是让工具知道你有负的hold/setup值, 以前的clock比较慢, 所以没出现过负值, 现在有了, 必须要加上这个option,不然就不准了. +这个option不是变成0, 是支持负值了, 你说反了. 我认为加“+neg_tchk”把负值改为0可能是因为工具不支持负值,所以把负值改为0来计算,这样相当于仿真时hold check更苛刻了。


3.+notimingcheck就相当于不检查负的hold?那影响仿真所加时序吗?这个命令在仿真时候需要加吗?
   +notimingcheck就是字面意思, 不做timing check, 对于后仿来说, 加和不加的都要跑一跑。不加的话就是纯功能仿真,不考虑时序。


4.notimingcheck在RTL仿真和后仿真中的意义?如果后仿真中加了这个参数会有什么影响?
   notimingcheck在RTL级仿真中,可以避免如sram、flash以及你RTL中例化的std cell报出时序违背,而影响你的仿真结果。后仿真一般仅将notimingcheck设置在跨时钟域处理的第一级DFF上,以规避其报时序违背,导致仿真出现X态。第二级的时序是需要解决的(也就是说第二级不能出现时序问题,因为他属于同一个时钟域)。


5.怎么将“notimingcheck”这个参数只加到跨时钟域的第一级呢?
  假设你有两个dff (分别为“u1/u2/u3”,“u1/u2/u4”) 不做时序。检查创建一个文件,我在这里命名为notimingcheck.cfg
文件内容为:
instance {
    u1/u2/u3,
    u1/u2/u4
} {noTiming};
然后在仿真编译中加入 “+optconfigfile+notimingcheck.cfg”
执行仿真即可。
instance也可以是module和tree。noTiming也可以是noIopath,noSpecify等等。

6.我现在遇到个问题,DC综合后的netlist和sdf拿来后仿,波形到一个地方所有输出pin全变x态了,后续就全是不定了。而将综合后的sdc和netlist进行APR,然后输出PR后的netlist和sdf文件拿来后仿,波形就没有问题。这是为什么呢?DC和PR都没有timing violation。vcs命令都是用的vcs -gui -R top_testbench.v +neg_tchk 烦请大神看看,可能是哪的问题?
  DC不修Hold啊,一般综合后的网表只跑#0 delay的就可以了,DC综合以后的sdf不准确的,可能有些大delay。你只跑#0 delay的综合后网表就可以了。




7. VCS的时序选项nospecify,+delay_mode_zero,+notimingcheck和+no_notifier之间有什么区别?
以一个简单的与非门为例
module ND(X,A1,A2)
   output X ;
   input A1,A2 ;
   specify
     (A1 => X) = 50 ;
     (A2 => X) = 50 ;
   endspecify
endmodule
在标准单元中,定义输入A1到输出X的路径延时为50 time unit。

+nospeicy:vcs不加入50 time unit的延时
+delay_mode_zero:将标准单元中定义的延时替换为0
+notimingcheck :时序检查开关,比如setup/hold/width检查等等,如使用开关,则仿真时不检查时序,如后仿真,时序检查不满足,可能导致X扩散。
+no_notifier:在库里面有一些检 查,width,setup,removal等等,一旦有violation,它就将notifier寄存器翻转,这样就出现X态,为了不让仿真中出现这 个情况,可以再仿真时加上 +no_notifier,这样仿真不会翻转notifier寄存器,也不会出现X态,不过会display出各种违例。
发表于 2018-12-8 14:07:05 | 显示全部楼层
只做功能仿真nospcify和notimingcheck都加上,也不要吃sdf。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-6 17:01 , Processed in 0.017400 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表