关于DC综合后slack为零的问题求助啊!
这基本是DC的正确功能。
因为增加slack (搞成正值),需要电路的delay更小。意味着面积更大。
DC只要满足了你的时许要求,为什么要把面积弄那么大呢?
所以你降低频率后,area一般有相应的下降。
那我是不是可以认为 这个结果是可行的,就是说代码在这个速度下是可以实现的,仅DC综合的结果来看。
是不是可以进行下面的工作了呢~
还有一个问题是 ,有没有办法得到更大的slack ,是对面积做一定的约束么? 还请你不吝指点下 ,先谢谢啦~
还希望有人能再指点一二啊 各位大神
dc 的结果 和 约束在一个小范围内可能是线性相关的。但全局上不是。
你改动一点约束,结果没什么变化,或者结果变化很大。都是可能的。要看约束到什么程度。
能不能做下一步,除了看你综合结果,还要看你的约束质量。
约束太松了,综合很好通过,但到后面可能不行。
这个需要前后结合,综合判断。
哦,谢谢大神回答。我现在没有约束面积,现在这样的slack是不是跟这个有一定的关系 。
我觉得加约束这方面 体会还是不够 没有一个比较明确的概念。 也不知道是代码的问题还是自己
约束没有加对,这个就太头疼了
加任何一条约束都有可能改变结果。
但这个改变可能非常不明显。
比如你加一个比你现在面积大得多的约束。
我不太清楚你脑中是怎么看待目前这个slack的,我没感觉有什么异常。不太清楚你怎么想的。
约束的意义在于,在设计早期,把后端的真实情况模拟出来,告诉综合软件。
综合软件按照你给的条件,返回给你一套使用了某种库器件的设计。
你拿这个设计到后端,各种真实的物理条件(负载,时钟树各点的偏移,ir drop 等等等等)加上后,依然接近或者满足你当初的设计目标。如果达到这一步,剩下的修正工作可以限制在物理设计阶段。
很多恰到好处的约束都需要有一些个经验值,不清楚的话,可以问问后端或者流片的厂商。
你约束做的太狠了,你自己难受。太松了,后端难受。
也有可能你什么约束都没有,都打不到要求,那是rtl太差了。
基本上是这么个意思。
dc 的结果 和 约束在一个小范围内可能是线性相关的。但全局上不是。
你改动一点约束,结果没什么变化,或者结果变化很大。都是可能的。要看约束到什么程度。
能不能做下一步,除了看你综合结果,还要看你的约束质量。
约束太松了,综合很好通过,但到后面可能不行。
这个需要前后结合,综合判断。
就说一个时钟来说, 在你的约束中有不确定时间的, 那一部分时间可以当成你的余量, 你可以布局布线后在做一下时序分析, DC过后的时序仅供参考, 要以时序分析的结果为准的
谢谢你的回复,看了你的话好像懂了一些了,很多东西都不是单单的去考虑slack就好了的。看来自己还是看到太浅 ,还是得多多学习啊~
你说的那一部分不确定的时间 是什么啊 ? 还请再指点下
在SDC文件中, 除了时钟的定义。 还会有 set_clock_uncertainty , 这个时间你自己定义, 一般都是ps级, 我个人常定义50ps,这个时间你可以算到你的时间余量里面,还教你一招, 在综合的时候, 你将时钟约束的占空比不要定义为50%。 以你的125M时钟来说, wavefrom {0 4}, 你可以将上升沿往前到3.5,如果以上升沿采样的话,时钟上升沿在3.5ns的时候都能正确采样,那真实时钟在4ns时钟也应该能采样, 查看综合的结果的时序违例,一般只在乎setup 是否违例,hold违例可以在后端去修正,综合后的时序仅供参考,前提是你要保证综合后setup不能有违例,至于slack为0可以放过,因为你在约束中有uncertainty时间的余量来保证的, 结果以你后端PT分析为准
哇 真的很感谢,感觉一下子学了很多呀,谢谢 谢谢 我现在就是试试看 体会一下
路过学习,谢谢教父!但是不明白“以你的125M时钟来说, wavefrom {0 4}, 你可以将上升沿往前到3.5,”这样对单时钟沿的意义?求指导
赞!
要想确保电路能在流片后正常工作,通常会把时钟频率乘以一个倍率,给工艺流出余量,通常是加10%,比如你设计的电路工作频率为100M,那么综合的时候可以把时钟设为110M
wavefrom {0 3.5}这样吗,但这个list第一个值表示上升沿,是将下降沿提前0.5ns吗
过来学习一下
逛逛a
