你的位置:初春少女 > 最新东京热 > jav 巨乳 CCOPT<四> ccopt_property
jav 巨乳 CCOPT<四> ccopt_property
发布日期:2024-08-24 05:48    点击次数:140

jav 巨乳 CCOPT<四> ccopt_property

CCOPT自己有好多的property,之前的著述中仍是先容过了好多property;为了便捷,不错把这些property齐导入一个文献中以便以后查找:

图片jav 巨乳jav 巨乳jav 巨乳

约莫有270个property,其中大浩繁齐不会用到,本文就捡比较艰难的和比较难解的讲讲;其他的大部分用不到,或者看help就能知谈的我就不讲了。1set_ccopt_property option    这个敕令有好多个参数,通过接受这些参数,不错将ccopt_property精准的哄骗到某个power-domain/clock-tree/skew-group上,这算是CCOPT比较艰难的一个特质。举例底下的两个敕令:

图片

第一个敕令设备$clock专用的buffer第二个敕令设备全局的buffernet_typenet_type有三种:leaf, trunk,top。底下对着三种类型进行辞别:top:一个net fanout 大于routing_top_min_fanout指定的值,这个net等于top。leaf:  一个net独一衔接一个sink,那等于leaf。trunk: 除了top和lef的齐是trunk现实的瞎想中,有可能出现一个net即驱动一个sink点,又驱动其他clock logic;那这个net到底是leaf照旧trunk ?  在CCOPT中,和会过插入buffer等来幸免这种情况的发生。上头说到了routing_top_min_fanout这个property,每个FF算一个sink;可是对于macro等这样可能不太合理,不错设备底下的变量,将一个macro/CK作为念1000个FF/CK

图片

2buffer_cells雷同的还有logic_cells/inverter_cells等,本文以buffer_cells为例。等闲这些参数咱们齐需要设备,若是不设备,CCOPT会自动在resize阶段查找相应的not don't use cell。用哪些buffer,会告成影响到最终CTS的成果,底下列举了几种要素:1.  LVT cell:  为尽可能将tree作念短,建议接受LVT cell。2.  cell size: 不要用最大驱动cell,这样可能会形成EM问题,同期也会增大power;同期也不要用最小驱动cell,因为这种cell在不同corner下variation很大3. cell number: 不是说加入越多的cell精准。一方面这样会增大运行时辰,另一方面不同的cell在不同的corner下变化不一样;举例BUFX12LVT在某个corner下比BUFX16HVT速率慢,但在某些corner比他速率快,这样使得CCOPT在蓄意的时刻形成误差影响成果。4. pd: 若是有power-domain,需要把always-on buffer也加入进去3route_type这里的route_type不同于上头的net_type;route_type指的是NDR rule等。要使用route_type,必须先通过create_route_type创建一个route_type,举例:

图片

这里需要细心的是route_type中所接受的layer。这个layer必须包含在setNanoRouteMode所界说的layer限制之内。

图片

这里可能还会遇到的一个问题等于trim的问题。在某些工艺下,相邻的layer之间RC离别很大,举例route_type中接受M3/M4/M5/M6,可是M3和其他几个layer的离别很大,CCOPT会自动放弃M3,只接受M4/M5/M6。这虽然对timing有刚正,可是可能的成果等于形成绕线short或者是某些net莫得绕上等。不错设备底下的property来驻防trim:

图片

4sink_type之前的例子中有好多波及到sink_type的地点,这里详备证据证据:Sink_type证据auto由CCOPT决定属于哪种类型;超越于薛定谔的猫,用户无法得知这个pin的景况。throughClock会络续传播,超越于通过一个bufferstopClock在这个pin上罢手传播,fix  DRV, 属于balance点;之前咱们说的sink点,专指stopignoreClock 在这个pin上罢手传播,fix  DRV, 和stop比拟,不会balancemin和ignore雷同,不若何用exclude对clock来说看不到这个点,no  fix DRV, no blance接受through pin一般条目背面要界说一个clock才起作用。而且这个cell只可有一个output。若是有多个output,就需要接受extract_through_to:

图片

因为有多个output话,从一个input到output会有多个timing-arc,齐作为念through的话可能会产生问题。5skew_groups_sinks上头说到无法通过sink_type的类型获取某个pin是否属于stop类型。可是不错通过查询这个pin是否属于skew-group来获取其属性。此外还有skew_groups_ignore属性不错稽查ignore pin。可能公共对相似的property有猜忌:skew_groups_active_sink,这里区别一下:skew_groups_sink: 岂论有莫得简直存在的旅途,独一指定了,就不错通过这个属性来得到(在创建skew_group的时刻不错不指定-source):

图片

skew_groups_active_sink: 创建skew_group的时刻需要指定-source,且source到sink点之间存在简直的旅途且莫得被ignore pin等设备block住。带Active的条目比较高对于skew-group,之前还有少量需要细心:不接济*号。举例底下的不不错

图片

不错接受底下的形态,细心这里只可用"",不行用{}:

图片

6update_io_latency常常咱们通过report_timing稽查,会发现他的CLK是从负的开动的。这是为什么呢?若是是作念block,如何正确反应block里面CTS的瑕瑜,使得block上头的IO timing看起来更合理;而况粗略通过在TOP上Balance不同的clock ? 这些齐和update_io_latency相关。在preCTS阶段,clock属于ideal的,可是很可能用户在clock上头设备了latency,咱们假设为3ns(大浩繁情况下莫得设备,为0ns)。在CTS完成之后,clock从ideal变为propagated。这个clock的delay从3ns变成4ns。此时对于I2R 和R2O的IO旅途就会产生问题:因为外部的clock仍然是ideal的,而且照旧原本的3ns,这样对I2R的slack变得乐不雅,R2O的path变得悲不雅,使得timing不准确。为了去掉这种情况,就需要update io latency,将实足的1ns设备成soure latency。设备成source latency之后,咱们就会看到clock齐是从负值开动的。

图片

是以咱们在作念CTS前,需要把clock设备成ideal,而不是propagated,若是原本的clock是propagated,这种update io latency的要领就不会发生在这个clock上头 (或者通过设备底下的变量:)

图片

7opt_ignore可能某些clock仍是完成,不再作念这个clock,或者某些clock先作念,有三种方法:鼎新spec,只留住想要作念的clock创建只包含这个clock的新的sdc和新的analysis_view,然后产生新的spec接受opt_ignore,举例:

图片

通过这个设备,即使source的spec里面有其他的A这个clock,也不会作念任何的buffer等8primary_delay_cornerprimary_delay_corner指CCOPT以哪个delay_corner为准作念CTS。比如说

图片

设备125的情况和设备成m40下的BUFFER的数量,delay等齐有所不同。若是不设备CCOPT 会自动选拔一个(默许是比较快的corner?)。不错通过log里面查找“primary_delay_corner” 要津字来稽查用的是哪些corner9allow_resize_of_dont_touch_cells默许为true,代表CCOPT会size dont-touch cell。是以若是需要设备size-only,不错将这些cell设备为don't touch就不错了。通过

图片

或者dbSet命理将其设备为sizeOnly在CCOPT中并不起作用。10auto_limit_insertion_delay_*之前讲到用target_skew来截止useful-skew,这里讲讲如何截止最大的insertion-delay (ID)。细心这里的ID 不是

图片

中的意念念,而是指

图片

中的意念念。在表示本节之前,需要表示之前讲过的CCOPT的三要领:

图片

为了节略表示,我这里举个例子:

图片

领先看第一个变量:

图片

这个变量用于截止背面统共的insert_delay的基准值。底下说的基准值齐以该值为false为参考。true: 接受的是clustering之后的max-ID,1nsfalse: 接受的是balancing之后的max-ID, 1.5ns其次看第二个变量:

图片

激情文学网指作念完implementation之后,统共group的最大的ID不行逾越2ns+0.3=2.3ns

图片

指作念完implementation之后,SGA的最大ID不逾越1.5+0.3 = 1.8ns细心这个变量要比底下的factor的优先级高临了看第三个变量:

图片

指作念完implementation之后,统共Group的最大ID不行逾越2ns*1.2=2.4ns

图片

值作念完implementation之后,SGA的最大ID不行逾越1.5*1.2=1.8ns细心上头这些变量只截止max-ID,至于截止最小ID的property,是个荫藏变量,我这里就不说了。上头提到了截止最大ID,还有雷同的property:

图片

等这些相通截止着最大ID,这里我也不甚了解,公共也没必要去知谈,留给RnD吧。

图片

下几节开动准备讲讲SI/OCV等timing相关学问。对于从floorplna->place->CTS->route 就当前就讲这样多了。基本的用法望望help应该就能了解。还不明晰的不错提议来共同学习学习。 本站仅提供存储处事,统共履行均由用户发布,如发现存害或侵权履行,请点击举报。

相关资讯