通常设置ignore-pin就可以了

时间:2024-06-25 10:14


通常设置ignore-pin就可以了

useful-skew    之前有介绍到在preCTS阶段要采用useful-skew,通常只设置setOptMode就可以了,在优化阶段会采用skewClock引擎来发掘useful-skew。但是并不能控制最大的useful-skew;或者说本来可以用400ps的skew,但是最后只用了150ps。如果需要在preCTS阶段发掘这种useful-skew,这就需要用到skewClock命令。

图片天长市正牧铝业科技有限公

在preCTS阶段,skewClock不会插入CKbuffer,也不会做任何优化;只发掘useful-skew。可以通过DB中latency.sdc文件来查看发掘出的useful-skew。在做完CTS之后,CCOPT会自动将这种useful-skew转化为insertion_delay,例如:

图片

skew-groupsccopt_clock & skew-groupskew-group和clock-tree有什么关系呢?在SDC中,只存在clock的概念,所有CTS相关的东西都由clock来承担;这种方式有很大缺点,难以实现各种复杂的控制。例如一个master-clock下面有些点要balance,而有些点不需要Balance;或者说不同clock的某些点需要Balance在一起,这些复杂的功能只通过clock-tree难以实现。在CCOPT中,抛弃了SDC,采用SPEC,并引入了skew-group的概念。Clock-tree只负责定义NDR rule,transition,period等参数;而将不同或相同clock之间sink点的balance的操作交给skew-group。创建skew-groupskew-group表示需要Balance在一起的点的集合。因为Skew-group是CCOPT中比较重要的一个概念,所以这里着重介绍创建skew-group命令的参数:create_ccopt_skew_groupOption解释balance_skew_groups指定不同的skew-group之间需要balance在一起,形成一个新的skew-groupconstrains指定这个skew-group在哪种阶段起作用,设置为none,  表示只用于report,不对里面的sink做任何balance,设置成ccopt会对整个ccopt阶段都起作用。等同于:Set_ccopt_property -skew_group $name constrainexclusive_sinks这些sink点的优先balance。同下面的rank参数-rank不同的group可能包含相同的sink-pin,那有没有可能让某些sink在某个group里面的优先级变高,在其他group里面的优先级低?这就需要设置group的rank。默认的rank为0,值越大,肇东市东北食用油有限公司优先级越高。上面的exclusive_sinks参数其实质就是设置不同的Rank值。等同于:set_ccopt_property -skew_group $name exclusive_sinks_ranktarget_insertion_delay指定这个skew-group目标Delay多长, 克山县东户电动机有限公司如果是0, 新疆金果雷国际贸易有限公司会尽可能做短。下面三组命令是等价的:

图片

对这个rank的概念如果还不理解,我下面再多举几个例子:regA/CK 即属于SGA(Skew-GroupA),也属于SGB,SGA和SGB的target_insertion_delay不一样,或者SGA比SGB更重要;这就需要设置SGA rank >1regA/CK 上的path比较重要,需要做到很短。通常设置ignore-pin就可以了,但是并不能做到最短;这就需要在这个pin上创建SG,并且设置rank > 1;这样CCOPT会重点考虑这个pin,将他做到最短。regA/CK 上设置(或者本身具有)sink_type为through的属性,如果在这个pin上创建SG,并且rank>1,那么这个through的属性就不起作用了,天长市正牧铝业科技有限公CCOPT会根据这个SG的要求进行balance。Gclk skew-group    之前的文章有介绍过,generated-clock也有skew-group (下面称为gSG),只不过只是用于report。master-clock的skew-group包含了generated-clock的skew-group,默认会从master-clock处开始balance。但是经常会碰到关于generated clock FF (下面称为GFF)是否需要Balance,以及如何balance的问题。下面介绍相关两个问题和设置:《1》

图片

在master-clock下面同时有FF(通常情况下是用于分频计数的FF)和GFF,两者之前有Data-path ,默认情况下CCOPT会创建一个优先级高的skew-group,例如下面这样:

图片

注意这里来的rank,这个rank的存在使得gSG产生问题,因为gSG的constrains property 为none。通常我们不希望这样。当然用户可以手工将constrains修改一下,或者设置上面的property:

图片

设置为False之后就不会产生这个_clock_gen 的group了。《2》

图片

在multi-mode下面,不同mode对GFF也有很大的区别:在func下GFF是ignore/through pin,而在scan下则变成了sink-pin。通常用户可以通过下面的命令来将GFF设置为sink pin

图片

但是需要一个个去查找,很麻烦;可以通过设置这个变量:set_ccopt_property extract_skew_group_sinks_at_clock_node_timing_endpoints true来使得CCOPT根据是否属于timing-endpoints点来将其设置为sink-pininsertion_delay上面讲到了在preCTS阶段采用useful-skew,在CTS阶段如何控制最大useful-skew呢?上面的SetUsefulSkewMode在CTS阶段不起作用,需要采用ccopt_property。这里有几种方法:《1》一个方法就是采用insertion_delay。通过上面的例子大家应该已经了解了。需要注意的是这个insert_delay相当于这个pin自带了这么多的skew,即使不同的clock,不同的skew-group,这个值都是不变的。有一个比较容易混淆的概念是target_insertion_delay:insertion_delay值得是useful-skew值,与clock/skew-group无关target_insertion-delay指的是这个skew-group从root到sink目标值,和skew-group有关《2》另一个方法是通过

图片

这个变量可以控制某个skew-group所能采用的最大的skew。这个值并不是越小越好,因为如果设置的很小,那么CCOPT会想办法吧skew做小,而忽略了insertion-delay,结果是skew虽然做小了,但是延长了整体的delay。、《3》三个方法

图片

上面的Target_skew只能是绝对值,通过factor变量,可以设置相对值。比如说某个skew-group的平均delay是1ns。那么这个skew-group上面最大允许的delay是1.5ns。这个值不会控制最小的delay,spec中其他property通过create_ccopt_clock_tree_spec命令产生出的spec文件,包含一些property,这里就简单介绍一下:《1》 extract*

图片

这三个变量都是显示信息的变量,没有任何作用。告诉用户这个skew-group是从哪里来的。创建spec的操作就叫Extract。《2》include_source_latency

图片

在计算skew-group的target-insertion-delay的时候,或者是balance 不同的skew-group的时候,是否需要吧source-latency也计算在内。《3》target_max_trans_sdc从SDC中转换而来的约束,具有最低优先级,CCOPT中设置tran有下面几种方法,优先级从高到低:

图片

图片

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

发表评论 (132人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称: 内容: 验证码:
点击我更换图片
最新评论
回到顶部

Powered by 天长市正牧铝业科技有限公 RSS地图 HTML地图

Copyright 站群 © 2013-2024 SSWL 版权所有
天长市正牧铝业科技有限公-通常设置ignore-pin就可以了