微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 在placemnet时的设置

在placemnet时的设置

时间:10-02 整理:3721RD 点击:
请问在placement时,为了和CTS更接近,应该把set_clock_latency和set_clock_transition的值设置为多少?经验值吗?还是做完CTS来返回来设置?不知道具体应该怎么评估设置这两个值。哎。

求各位有经验的人指教下,万分感激

latency 特殊情况才会设,transition你可以参考你cts后,有timing问题的地方的值

做完CTS来返回来设置是最标准(土)的做法

收到您的回复,可以稍微介绍下应该怎么在CTS后返回来设置uncertainty和tran吗?我就是不知道该怎么去迭代,需要看CTS的哪些东西?然后反推来在设置合理的值?

举个具体的例子,假如周期为1ns,在CTS之前,我设置uncertainty为0.3,tran是fab要求0.4(普通信号我约束为0.4,clock为0.38),这些都设置好后做CTS,在CTS后,我看哪些东西来返回来修改这几个值?我晕了

transition更多时候除了为了满足要求,还是为了控制delay。

cts之前,怎么知道clock能长多长的latency呢?cts结束之后得到latency的一个预估值,重新cts的时候问什么要设置latency呢?难不成cts latency 2ns,重新cts的时候latency你设置1ns,cts能长出这么长的latency么。当然上边问的可能是曲解。
对于set_clock_latency:除非前端有特殊说明,APR阶段开始的时候会忽略掉的,也就是clock latency在cts之前的阶段都是0的;cts之后clock propagated于是就有了clock上的真实latency。如果吐给后端做PR的sdc中有latency的设定,说明到sink需要多长或者少长,工具在gen spec file的时候就可以考虑gen出MacroModel分析timing(当然这个也可以通过分析postcts timing来得到设置
MM)。

set_clock_transition主要是CTS前算寄存器CK->Q延时用,这个一般影响不大。
set_clock_latency最好在CTS前清零(除非你保证你的Latency设得非常Golden),否则自动的流程会把这些Latency值Extract成时钟树的约束。这也是set_clock_latency比较土的原因之一...

关于set_clock_transition这个值,这个值影响的是什么呢?cts之前,这个值影响FF/CK这个pin,也就是影响FF/Q pin transition & FF cell delay;cts之后影响root pin的output pin transition。对于其他的我没注意到有影响。

因为你的题目是placement结果与cts结果correlation更接近,因为你这中间还跨过了一个opt阶段,我姑且认为你说的placement是已经opt过的。然后题目就变成了cts结果与placeopt结果相近。cts之前的timing与cts之后的timing差别最大的在什么地方,data path cts没有去改变(当然ccoptdesign除外);因此变得是clock path,cts之前clock是0,每条timing path上clock skew()是0,而cts之后clock上有了latency,因此slack计算时,capture & launch就有了差值,timing与placeopt时候的timing就有了差距。所以想方设法的让skew接近于0才能让timing两者接近。

当然,让skew为0是比较理想化的,毕竟这样那样的影响因素还有ocv(aocv)的影响,clock多少会有些影响。
另外的方式其实可以给placeopt & cts设置不同的uncertainty,比如cts之后你设置的值是100ps,然后你预估的clock skew大约100ps,那你完全可以在placeopt阶段设置uncertainty设置200ps,这样你cts时候skew大约100ps,cts的结果与placement就差不多相近了。
以上纯属个人愚见,如有不妥之处,还请指教。

关于set_clock_latency,set_clock_transition这两个值,我个人觉得PR阶段,set_clock_latency这个值可以暂时不用管;至于set_clock_transition这个值,cts之前可以参考placeopt timing结果,data path上正常的transition值,cts之后参考clock path上正常的cell transition值。

您讲的好详细,很感激
但是我理解您的意思是:
第一,在CTS之前,set_clock_latency不设置一般,然后在做完CTS后,去timing report中找一个 clockpropagated的平均值,再返回来在place之前设置上?
第二,在CTS之前,uncertainty=预估skew+jitter+margin,而这个skew不知道多大的,所以要先做CTS,看下skew大概是多少,刚开始的uncertainty可以用fab给的jitter+margin和随便估一个skew值,CTS后,再改成正确的skew值,再重新做CTS?
在实际项目中一般怎么做?

set_clock_transition的值看place时期的datapath和CTS后的datapath,那岂不是会出现两个transition值?我在place前到底应该设置set_clock_transition,依据哪个值?

您说的有道理,可是在真正的项目中,我们在place前,要设置sey_clock_latency吗?一般不设置?我觉得这个值必须要设置,因为place时skew是0,本身就是不符合实际的。

cts之前只有data path。你设置的set_clock_transition会作用在FF/CK这个pin上;CTS之后这个pin作用在root pin /output pin上,也就是clock path上。

其实set_clock_transition设置的值不超过lib的值,在propagated 一到俩cell之后transition会趋向于一个均值。对于delay影响不是很大。你可以做个实验。

为什么要做cts呢?做placementopt的目的是什么?做postcts opt的目的又是什么?

uncertainty 值会影响什么?

一般不设置,如果综合时候有设置latency,你就设置,如果综合时候没有设置,那你就不需要设,或者有些cts exception pin ,需要额外调整tree 长度的 ,才需要设置latency。

我思考了下, 为了让整个PR每个阶段的吻合性更好,我们应该这样做:
因为在CTS后是有 clock network delay的,有clocktransition的,但是在place时,如果不设置Set_clock_latency和set_clock_transition,那place和CTS吻合性肯定不好,所以这两个值一定要在tryrun做完CTS后,返回来,在place之前设置上,这么想对吗?我现在有点晕了哦

因为在CTS后是有 clock network delay的,有clocktransition的,但是在place时,如果不设置Set_clock_latency和set_clock_transition,那place和CTS吻合性肯定不好,place时相当于latency是0,没有tran问题,这是不符合实际情况的啊,所以这两个值一定要在tryrun做完CTS后,返回来,在place之前设置上,这么想对吗?

latency 完全可以不设,让顶层去做平,如果cts的skew是0那么就和place的结果一样了,latency作用在整个树,而不是影响单个skew。我们的设计没有latency约束,只是会给global提交latency值,让他们去做平衡。 内部时钟之间会考虑latency的问题,但是一般也会由balance去做,或者专门设置做时钟树的长度,set——clock——xxx忘记了。
至于clock uncertainty ,这个值先按照fab提供的设,后期自己调整的目的是为了时序一致性调整的,就是让icc的结果和pt的结果一致。

其实不一定需要讨论太多,因为你设latency从综合跑到postcts一次再跟不设latency的跑一次对比下结果就知道了。
不过不一定会出现你期望的结果,因为你跳过了重要的一步:选择寄存器类型和固定寄存器位置(在物理综合时)

我懂了哦,uncertainty中有预估的skew在place前。
对于这个uncertainty,您在整个PR阶段是怎么控制的?
我想:首先fab会给jitter和margin值,我预估一个skew值,先在place前设置一个uncertainty值,CTS后,uncertainty中去掉skew的值,uncertainty在后续阶段postCTS,route阶段,还会改这个uncertainty值吗?我没接触项目,不知道这个uncertainty应该怎么去控制在在PR时,没经验哦

你可以先cts之后使用sign off uncertainty 值,cts之前根据你的判断设置值试试。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top