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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2202|回复: 8

[求助] 子模块 set_input/output_delay set_min_delay

[复制链接]
发表于 2021-11-24 10:01:45 | 显示全部楼层 |阅读模式

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

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

x
DC小白,请问大佬set_input/output_delay能对子模块进行约束吗?我看资料都是说这两个命令都是针对板级端口的约束,也就是最终芯片对外引脚的约束,如果是这样的话,那么对内部子模块的端口应该用什么约束?

还有就是set_min_delay这个,我将一条路径的最小延迟设为1.5ns,但DC并没有对这条路径做出调整,实际延迟任然只有0.3ns,就好像是,DC:我知道了,嗯,这条路径最低要1.5ns的延迟。但并没做出调整(只是修改了Required Path Delay),这就导致我后一级的hold time违例了,手动在路径上插入buffer好像又会导致布局布线问题,这两之间也没有组合逻辑让我做延迟

发表于 2021-11-24 14:52:21 | 显示全部楼层
内部端口也可以使用set_input_delay与output_delay,但一般不推荐使用,会打断正常的timing路径。
之前对自研的模拟ip使用过,ip为自研,lib只有端口,没有timing信息,因此就对input pin设output delay,对output pin设input delay,来模拟setup hold的timing要求。
至于set_min_delay,综合时一般不修hold的,估计是这个原因导致违例的,另外,set_min_delay也会打断正常路径,会导致相关路径上的setup hold报告不准。
发表于 2021-11-24 17:32:23 | 显示全部楼层
  set_input/output_delay对Top或是block都是可以用的,若是在block用,一般来说input/output delay设为clock period * 0.7/0.8就行,也可以根据design的情况动态调整
  set_min_delay的需求可以写在sdc中,交给后端工程师在P&R阶段塞buffer或是delay cell就行,不必在DC综合时来修时序违例
 楼主| 发表于 2021-11-30 10:55:40 | 显示全部楼层


coolbear2021 发表于 2021-11-24 14:52
内部端口也可以使用set_input_delay与output_delay,但一般不推荐使用,会打断正常的timing路径。
之前对自 ...


但是,在综合阶段不修hold的话,那么得到的sdf文件就是不对的,利用$sdf_annotate反标,综合后仿真得到的波形是不对的,会因为hold导致某些信号为不定值X
 楼主| 发表于 2021-11-30 11:02:29 | 显示全部楼层


bruce0729 发表于 2021-11-24 17:32
set_input/output_delay对Top或是block都是可以用的,若是在block用,一般来说input/output delay设为clo ...


欸? 对block设input/output delay 需要考虑这么糟糕的情况吗,一般来讲上一级block的输出都是reg吧,那么下一级的input delay应该是很乐观的吧;如果上一级输出是wire的话,也可以通过约束使其时序与同级reg时序相近吧,我记得可以有这样的约束

发表于 2021-11-30 11:02:32 | 显示全部楼层


学习使我快乐 发表于 2021-11-30 10:55
但是,在综合阶段不修hold的话,那么得到的sdf文件就是不对的,利用$sdf_annotate反标,综合后仿真得到的 ...


一般来说,综合网表仿真是不反标sdf的,因为综合时hold一般是没法修干净的。如果一定要反标仿真,要么让综合工具去修hold,出个干净的sdf,没这样做过,不确定是否可行;要么就算hold有问题,如果不是关键路径,仿真也不一定会出问题的,如果是关键路径或者违例cell不太多,可以考虑将对应的dff做no_timing处理,相当于不检查setup、hold了,这样放弃一部分检查应该也可以跑仿真了。


 楼主| 发表于 2021-11-30 11:32:52 | 显示全部楼层


coolbear2021 发表于 2021-11-30 11:02
一般来说,综合网表仿真是不反标sdf的,因为综合时hold一般是没法修干净的。如果一定要反标仿真,要么让 ...


那么,我是否可以理解为:普遍做法是,在综合后没有除hold以外的违例了,就可以打包给后端进行APR,然后后端在APR之后再仿真
发表于 2021-11-30 11:50:35 | 显示全部楼层


学习使我快乐 发表于 2021-11-30 11:32
那么,我是否可以理解为:普遍做法是,在综合后没有除hold以外的违例了,就可以打包给后端进行APR,然后 ...


关于timing,我觉得可以这么说,综合重点还是在setup上,hold要pr去修的。除了timing,还有drc类的比如trans、cap、fanout这些,我就不太清楚了,我的理解是,由于没有物理位置和布线信息,综合应该也不好处理或者没法真正处理,如果有违例应该也要到pr去修的。


 楼主| 发表于 2021-11-30 14:39:19 | 显示全部楼层


coolbear2021 发表于 2021-11-30 11:50
关于timing,我觉得可以这么说,综合重点还是在setup上,hold要pr去修的。除了timing,还有drc类的比如tr ...


我找到DC修复hold方法了,1:compile -only_hold_time ,会修复hold,但会导致setup违例;
2:set_fix_hold 会修复hold,且不会setup违例
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 19:54 , Processed in 0.022617 second(s), 6 queries , Gzip On, Redis On.

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