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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6359|回复: 15

[求助] 恕我愚笨,确实没琢磨明白DC里的DRC约束为什么要那么设置。

[复制链接]
发表于 2022-6-29 21:43:40 | 显示全部楼层 |阅读模式
33资产
在DC综合时,要设置DRC约束,一共包括了三点:
1.set_max_transition
2.set_max_fanout
3.set_max_capacitance
我的疑问是:
1.set_max_transition这个是设置最大转换时间的吧,但是不是在环境约束的部分已经通过“set_input_transition / set_drive / set_drive_cell”这个命令已经明确了输入转换时间了吗?这里怎么又设置一遍啊...
2.set_max_fanout是设置了最大扇出,但是不是在之前额环境约束里已经通过“set_load load of”已经设置了吗?(这个地方我确实是有点概念混淆了)
3.set_max_capacitance是设置了负载电容,他和“set_load”那个设置的不一样...吗?不都是负载吗?而且为啥有的还设置在input端口啊...
4.这三条命令,我感觉有的设置在输入,有的设置在输出...感觉完全乱了...
求指教。

最佳答案

查看完整内容

说说我的理解: 1、set_max_transition是设置设计里所有port/pin的转换时间的,set_input_transition,是设置input port信号的转换时间的,显然前者的作用范围更广,set_driving_cell/set_drive是通过选取特定的单元或者设置特定的电阻来获取更加真实的input port转换时间,如果这几个都设置了,工具会选取最严格的值; 2、fanout是设置所有net的扇出的,扇出是指一个信号驱动了多少其他的逻辑,或者说是驱动了多少standard cell, ...
发表于 2022-6-29 21:43:41 | 显示全部楼层
本帖最后由 Love24 于 2022-7-4 18:00 编辑

说说我的理解:
1、set_max_transition是设置设计里所有port/pin的转换时间的,set_input_transition,是设置input port信号的转换时间的,显然前者的作用范围更广,set_driving_cell/set_drive是通过选取特定的单元或者设置特定的电阻来获取更加真实的input port转换时间,如果这几个都设置了,工具会选取最严格的值;
2、fanout是设置所有net的扇出的,扇出是指一个信号驱动了多少其他的逻辑,或者说是驱动了多少standard cell,工具做综合时,会依据fanout,用相关算法评估信号的路径时延,而set_load则是完全不同的概念,它是为output port设置驱动的具体的cell,从而让工具更好地评估输出的时序参数;
3、set_max_capacitance和set_load的区别在于,前者设置了具体的电容值,根据该值评估输出时延、转换时间等,后者通常的用法是设置了一个standard cell(set_load [load of standard_cell]),工具会从库里找到这个standard cell,直接使用这个cell的标称电容,工具最终要使用的电容值是cell电容加连线电容;
发表于 2022-6-30 09:34:21 | 显示全部楼层
哇~你学的东西好全
 楼主| 发表于 2022-6-30 09:48:56 | 显示全部楼层


DemoYe 发表于 2022-6-30 09:34
哇~你学的东西好全


我就是个弟弟...挫败感拉满...
发表于 2022-6-30 13:44:09 | 显示全部楼层


北风1号 发表于 2022-6-30 09:48
我就是个弟弟...挫败感拉满...


加油加油,看好你!
 楼主| 发表于 2022-6-30 16:52:42 | 显示全部楼层
本帖最后由 北风1号 于 2022-6-30 18:02 编辑


Love24 发表于 2022-6-30 11:08
说说我的理解:
1、set_max_transition是设置设计里所有port/pin的转换时间的,set_input_transition,是设 ...


您好 我今天上午又看了一下结合您说的,我是这么理解的哈,不知道对不对。
1.set_max_transition设置的是my design里的pin/port的转换时间,而set_input_transition设置的是输入信号的transition,或者说他就是在设置输入信号而已。也就是说输入的信号进入port之后,因为会有port的内外部负载的影响,他的transition是会变的,所以我们才要约束my design里的max_transition。(我原来一直觉得输入的信号是咋样的,到达设计里他就是啥样的,理解错了。)
2.fanout和set_load设置的完全是两个东西。set_load设置的是output port接入的某一个具体的cell。但是set_max_fanout设置的是端口的最大的fanout是多少,目的在于告诉你,这个端口最多能够接多少个stdcell。
3.set_max_capacitance约束的是一个driver的output pin驱动的最大电容,这个电容包括它驱动的所有load pin上的cap和互连线上的电容。而set_load设置的是这个pin上的外部负载电容(也可以通过set_load load of指定一个cell来表征。)。

不知道我理解是对不对...因为统一解释这个的资料,我确实没找着...

另外我还有几个问题想向您讨教:
1.其实我感觉这些约束有很多重复的地方,我是不是都需要设置啊?我之前看过一个资料里面写的是“在数字IC设计中,必须设置set_max_capcitance和set_max_fanout。”表示疑问,我觉得是不是...根据需求,自由的设置啊?约束成什么样,看我的技术了...请问是这样吗..
2.就是例如set_max_capacitance这一条命令,他既可以对input端口设置,也可以对output端口设置,还可以对整个design设置,那是不是说我应该具体情况具体考虑设置哪个,有些其实可以不用设置啊(这就跟1.里说的那句话相悖了...)
3.set_max_fanout、set_max_transition和set_max_capcitance都是既可以对输入端口设置,也可以对输出端口设置吧,也可以直接对整个design全部设置?(这个我只是确认一下哈哈哈哈)
4.set_max_capacitance 3. 0  $ current_design 这条命令是不是可以理解为:它不仅仅是对input/output的最大电容进行了设置,而且设计内部的任何一个地方的最大电容都不能超过3呀?
发表于 2022-6-30 17:49:28 | 显示全部楼层


北风1号 发表于 2022-6-30 16:52
您好 我今天上午又看了一下结合您说的,我是这么理解的哈,不知道对不对。
1.set_max_transition设置的是 ...


是的,sdc中的许多指令作用是有重叠的,没有必要都设置,如果都设置了,工具会选择最严格的那一个,也不存在某个指令一定要设置一说,有较大的自由度,这块主要就是根据自己的经验了,你说的这句话是从synopsys官方的DC Explorer User Guide中翻译过来的,但是翻译有问题,原文是:you cannot remove the max_transition,max_fanout,max capacitance attributes set in a logic library because they are the requirement for the logic library,but you can set stricter values that override the default values;

关于指令的作用范围,这个就得具体指令具体来说了,比如set_max_fanout,表示整个设计的所有信号线的扇出约束,而set_max_capacitance则不是,它就是对负载电容的约束,也就是仅仅作用到output pin上;具体的指令可以查看DC Explorer User Guide 官方文档,里面会对每个指令有具体的解释,比如,对于max capacitance,官方文档里是这么描述的:define the maximum total capacitive load that an output pin can drive,that is,the pin cannot connect to a net that has a total capacitance greater or equal to  the maximum capacitance define on the pin;

 楼主| 发表于 2022-6-30 18:02:13 | 显示全部楼层
本帖最后由 北风1号 于 2022-6-30 18:04 编辑


Love24 发表于 2022-6-30 17:49
是的,sdc中的许多指令作用是有重叠的,没有必要都设置,如果都设置了,工具会选择最严格的那一个,也不 ...


哈哈哈哈哈那句话其实是我自己说的(就是那个看经验那一句哈哈,前面那个必须设置那句是一个视频里说的哈哈)...您说的这个 我找一下那本user guide。就是您说的那个max_capcitance的设置是对于output而言的,我靠...这么说这个公众号写错了吧?(我看这公众号还挺多人看的...)
image.png
发表于 2022-6-30 18:14:55 | 显示全部楼层


北风1号 发表于 2022-6-30 18:02
哈哈哈哈哈那句话其实是我自己说的(就是那个看经验那一句哈哈,前面那个必须设置那句是一个视频里说的哈 ...


这里可能是只是他描述的问题,未必是错的,毕竟output pin出来之后连的是input pin,建议还是直接看官方文档,那个是最准确的。
 楼主| 发表于 2022-6-30 18:48:25 | 显示全部楼层


Love24 发表于 2022-6-30 18:14
这里可能是只是他描述的问题,未必是错的,毕竟output pin出来之后连的是input pin,建议还是直接看官方 ...


嗯嗯好的 谢谢您 长知识了哈哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 13:05 , Processed in 0.024874 second(s), 7 queries , Gzip On, Redis On.

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