拾陆楼
资深ICer,IC技术圈成员,拾陆楼知识星球与优快云创作者
展开
-
ICC2:分析时序的神器 analyze_design_violations
ICC2 分析时序使用analyze timing violations命令原创 2022-06-29 13:10:46 · 2365 阅读 · 0 评论 -
ICC2 user guide(三)Clock Tree Synthesis
ICC2(三)Clock Tree Synthesis user guide解析原创 2022-06-07 22:56:54 · 8899 阅读 · 1 评论 -
ICC2 user guide (一) Preparing the Design
ICC2 Preparing the Design部分user guide解读原创 2022-06-05 16:03:33 · 4217 阅读 · 2 评论 -
ICC2 user guide(二)Placement and Optimization
ICC2 place阶段user guide原创 2022-05-25 21:48:27 · 8275 阅读 · 0 评论 -
innovus: write_lef_abstract如何写入stripe信息
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-05-29 11:20:08 · 42 阅读 · 0 评论 -
IO pin的transition约束从哪来?
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?有星球成员提问,PT report_constraints报告的transition违例中,IO inout pin的required 值与sdc约束的max_transition不相同。针对这个问题,我们来谈谈,IO pin的transition约束从哪来?原创 2025-05-21 14:49:52 · 45 阅读 · 0 评论 -
innovus: createInstGroup命令
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-05-19 14:25:08 · 44 阅读 · 0 评论 -
PT fix_eco_drc收敛noise问题的局限性
PT工具支持fix_eco_drc -type noise,借用size_cell和insert_buffer去修,但有时候工具插了很多buffer也不能解决问题,其原因是noise是可传递的,问题未必出在问题pin的前一级,可能更往前。其实,要解决这个问题,只需要往前trace,找到问题的源头,我们把buf upsize或者buf输出的net中间插一个buf都能解决这个问题。违例报告在与门的输入上,工具在修的时候会在与门输入前插一个大buf,但这并不能解决问题,迭代过程中,工具会反复在与门前插buf。原创 2025-04-03 11:36:16 · 125 阅读 · 0 评论 -
StarRC:如何给grdgenxo提速
grdgenxo itf转nxtgrd速度很慢,2020版本以后的starrc 支持多core去跑grdgenxo。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-04-02 16:03:21 · 90 阅读 · 0 评论 -
ICC2: 如何让CTS指定pin多长指定长度
这里create_clock不需要写到sdc里,在脚本里写就行,需要注意的是脚本里存在remove_clock_tree的话,add_buffer就要放remove_clock_tree后面,或者给guide buffer设don't touch也行。跟innovus的操作逻辑一样,如果要让tree上的某一点长长,要先考虑这个点后面的clock tree能正常balance。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?-5意味着长长5ns,相反正值意味着做短。原创 2025-04-02 15:32:40 · 206 阅读 · 1 评论 -
ICC2:混用多种track标准单元库操作示例
Gui图形界面 - Create - Site Array ,在site_defs中选择unit_8t,然后在layout中给PD_8t所在区域画上site array(8t的row)create_voltage_area -power_domain PD_8t -region ,region与刚才画的site array相同即可。原创 2025-03-20 11:35:13 · 221 阅读 · 0 评论 -
用innovus给IP制作空lib和空lef
通过specify Floorplan和pin editor确定size和pin的位置,pg可以通过手拉线去画,obs的部分用routing blk去话,在floorplan界面用Cut Rectiliner工具去切,如下图。通过saveWhatIfTimingModel ip可以产生ip的lib,这也是为什么要读mcmm文件的原因,不读的话。楼主好,想问下,目前只有IP的PDF文档,需要IP的空lib和lef数据进行try run,除了手写以外,还有没有其他高效的方法?原创 2025-03-20 10:16:45 · 273 阅读 · 0 评论 -
innovus:place_connected用法
place_connected -attractor $inst_name -level/-sequential 是常见用法,前者指定级数,后者指定attrator到寄存器包括寄存器在内的cell放在attractor附近。注意attractor_pin只写pin name,支持*匹配,不需要完整名字,比如xx/u_mem/DPIN[1],只写DPIN[1]就行。另外,需要注意呢是iso放在什么domain是upf里定好的,不能乱放,导致vclp检查不过。原创 2025-03-17 15:12:23 · 124 阅读 · 0 评论 -
innovus:POCV timing报告
所以回答这位朋友的问题arrival time (129.4952)应该等于arrival mean(122.71)+3*arrival sigma(2.2617),arrival mean和arrival sigma都来自timing library。# setup +,hold -,同下,N默认是3,也就是常说的3 sigma。原创 2025-03-17 15:05:33 · 274 阅读 · 0 评论 -
disable timing的设置与移除
这里回答以下上述的提问,如果对cell remove了disable timing那么前面针对它的pin设置莫disable timing就不存在了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-03-12 15:07:43 · 213 阅读 · 0 评论 -
innovus:设置与报告module padding
module padding默认就是1,工具也不接受<1的值,它的意思就是每个指定module的instance面积要×一个指定的系数,工具认为这个cell大了,自然module就撑开了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-03-12 15:00:13 · 137 阅读 · 0 评论 -
innovus:在innovus中集成calibre方法
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-03-05 13:43:32 · 181 阅读 · 0 评论 -
PT:fix_eco_timing size_cell改变cell功能问题的解决办法
pt dmsa size_cell时有一种低概率问题出现,一些工具会使用一些功能与原始cell不同的cell,比如MOAI和IOA,事实上两种cell只是输入pin被取反了,A pin变成AN pin,同时BN pin 变成B pin,write_change给pr工具后,size_cell会报错,以往的解决办法是,这种问题cell类型,直接设置don't use。但这种方法很被动,有没有主动一点的办法,能后规避上图的问题呢?PT支持size_cell仅替换pin name相同且功能相同的cell。原创 2025-03-04 14:07:14 · 160 阅读 · 0 评论 -
innovus:保存def不写出die area
我选中所有inst然后defOut -selected,但再次defIn的时候会把block尺寸以及core2die这种信息也弄进去,但本意是给block原本的东西不动,扩展一下边界再加点东西。问题二:星主,我想问一下啊inno怎么像icc2 write_route -selected一样把手画的线保存呢?我用write_def -selected保存后再吃进来,它会把保存时pr的形状也吃进来,就会改变我当前pr的形状。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?针对问题二,只写出选中的绕线。原创 2025-03-04 13:39:38 · 255 阅读 · 0 评论 -
ICC2:如何报告用户设置的max_transition约束
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-02-27 09:33:48 · 230 阅读 · 0 评论 -
innovus:自定义快捷键方法
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?这次来讲一下innovus,工具自有的快捷键通过View -Set Preference - Design - Binding Key (2019版本)可以查看,如下图:"Save"保存bindKey,我们可以看到工具是通过bindKey命令来定义快捷键的,如下:接下来,我们通过两种方式定义快捷键。原创 2025-02-27 09:25:34 · 124 阅读 · 0 评论 -
innovus:clock spec中的sink_type与设置方法
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-02-25 13:55:20 · 282 阅读 · 0 评论 -
innovus:ccopt property有哪些?
先回答这个问题,get_ccopt_property -pin xx inserion_delay,这个比较基础。ccopt property有很多,工具提供命令去报告,以及获取解释。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-02-18 16:09:12 · 126 阅读 · 0 评论 -
innovus:attachIOBuffer与dont _touch属性
对于提问的第二个问题,power io pin为什么也插入了io buffer,正常情况下是不可能插入io buffer的,唯一的原因是这个io pin接了某个cell的signal pin,事实上原因正是如此。attachIOBuffer命令的优先级在dont_touch之上,也就是说io port所接的net即便设置了don't touch也会被插上io buffer。除此之外还可以直接用ecoAddrepeater,先设置don't touch net后,就插不上buffer了。原创 2025-02-18 10:09:21 · 268 阅读 · 0 评论 -
innovus:给channel加soft blockage
dbGet [dbGet top.fplan.pBlkgs.name finishfp_place_blkg_* -p].boxes就可以获得channel坐标。意思是给30um以下的channel加soft blk,至于channel的坐标,通过抓取该soft blk去获取,比较容易。工具自己加入的placement blockage命名上叫finishfp_place_blkg_*ICC2中有给channel自动加soft blockage的命令,相应的innovus也有类似的命令,我们可以使用。原创 2025-02-17 15:15:49 · 93 阅读 · 0 评论 -
innovus:更新sdc的两种方法
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-02-12 15:23:46 · 285 阅读 · 0 评论 -
ICC2:set_svf怎么用
每个优化的操作都可以写个svf文件出来,在formality做对比时,可以都加到set_svf列表中。也可以分步骤分阶段去比较。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-01-16 15:59:53 · 123 阅读 · 0 评论 -
移除clock tree的don‘t touch属性
为了让clock tree不被绕线或优化影响,我们会使用mark_clock_tree -dont_touch -freeze_routing,但是route阶段可能会产生全局范围内的绕线问题,集中出现在clock net与signal net相关绕线上。这里可以使用mark_clock_tree -dont_touch -freeze_routing -clear来清楚don't touch属性和clock net route的physical_status。原创 2025-01-16 11:19:12 · 220 阅读 · 0 评论 -
isCTSClock与isClock的区别
IsCTSClock属性可以在Q快捷键attribute editor里改成USE SIGNAL,IsCTSClock就会变成0,而isClock只能通过改spec让其不长tree来修改。特殊情况下,工具可以满足IsCTSClock==0 && isClock==1。前者是通过cts长tree获取的clock属性,Q快捷键与DEF中都可以通过USE CLOCK查看。在dbGet top.net.时我们能看到net有两个指向clock的属性,分别是isCTSClock与isClock。原创 2025-01-16 11:07:30 · 144 阅读 · 0 评论 -
ICC2:如何删除floating route
删shape就改成floating shape violation,不过这种暴力删除的手段不经过仔细检查会导致一些本只有missing via问题的pg shape被删除,反而pg连接问题更大了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-01-07 16:04:26 · 143 阅读 · 0 评论 -
innovus:如何报告负载大小
在innovus中可以使用report_net -pin $output来报告输出pin的负载大小,其中包括net cap和fanout的pin cap,如下报告红圈的内容,需要注意的是如果精度不够,可以使用set_global report_precision 6设置精度。pt同样适用report_delay_calculation -from -to命令。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2025-01-07 15:58:04 · 226 阅读 · 0 评论 -
innovus获取mem pin shape box脚本
innovus mem 的pin shae只能通过attitude editor看属性获取其pin shape的box,但是想用脚本处理一定box时,没有别的办法能直接获取box属性。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-12-24 14:36:40 · 508 阅读 · 0 评论 -
innovus:如何在ccopt后update io latency
ccopt使用了部分active view,当ccopt property开启了update io latency后,ccopt后时序就会自动计算active view的io latency,但是这里有个问题出现了,没有在ccopt design时设置active view的analysis view计算timing时是没有update io latency的,这就需要下命令再计算一下。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-11-25 10:46:25 · 269 阅读 · 0 评论 -
Milkway脚本示例
Milkway用来做ICC/DC工具的物理参考库,其中frame相当于图形化的lef,这里分享一个Milkway的脚本。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-11-06 15:58:38 · 252 阅读 · 0 评论 -
pg lib的信息及产生pg lib的三种方法
pg lib相比basic lib会多几方面pg 信息。除了pg arc(pg pin)以外,liberty还提供电压值,以及pmk cell的power_down_function功能相关信息。1.电压值除了常见的primary pg还有secondary pg和衬底。2.pg arc后端需要去做redhawk功耗分析,需要pg liberty提供pg arc,如果没有pg arc就需要手动去写custom lib代替3.pmk cell的power_down_function。原创 2024-11-06 15:42:11 · 360 阅读 · 0 评论 -
innovus:Clock Gating Check设置与报告
看图后发现,在设置clock gating check之前报告也会有clock gating check的值,这个就是因为timing library中会像reg一样定 library setup time值,如下图。我们常用set_clock_gating_check -setup去过约束Place阶段reg2cgate的时序,以防CTS后由于tree不平导致的时序违例。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-10-18 11:51:28 · 574 阅读 · 0 评论 -
innovus:设置长tree用的delay corner
ICC2长tree的active scenario是用set_scenario_status -active true命令设置的,innovus的active scenario(view)是set_analysis_view中-setup和-hold设置的,每个阶段可以通过set_analysis_view去配置不同view,使用update_analysis_view去更新view的sdc和delay corner。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-10-18 10:28:51 · 290 阅读 · 0 评论 -
innovus:ccopt_design分段长tree操作
这步don't touch保证后面完整cts尽量不会动到已经长过的tree。需要给sub tree手写一个spec,参考create_ccopt_clock_tree_spec -file的写法,只写create_ccopt_clock_tree和skew group部分就行。原创 2024-10-15 14:49:13 · 767 阅读 · 0 评论 -
innovus:ccopt_design先长部分clock tree操作
这步结束后不需要对sub clock tree设置don't touch,因为后面会ignore这个clock。如果只是需要先长部分clock再长剩下的,那就需要用到set_ccopt_property opt_ignore。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-10-15 14:06:48 · 399 阅读 · 0 评论 -
innovus:set_clock_latency与insertion_delay
当1ns clock latency设置在capture上,在report_timing报告中体现在other end arrival time以及capture clock path的Arrival Time上。因为-1ns的insertion delay存在,所以skew group报告中显示的Arrival (ns)是减1ns的结果,即1.819-1=0.819 ns。CTS阶段create_ccopt_clock_tree_spec之后,spec中会产生对应的insertion_delay命令。原创 2024-10-10 14:53:33 · 607 阅读 · 0 评论