- 博客(506)
- 收藏
- 关注
原创 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
23
原创 StarRC:如何给grdgenxo提速
grdgenxo itf转nxtgrd速度很慢,2020版本以后的starrc 支持多core去跑grdgenxo。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-04-02 16:03:21
27
原创 calibre LVS:参考库cdl与gds匹配失败问题分析
这个问题解决很容易,我们需要把source网表中inh_vdd和inh_vnw换成对应layout的VDD,把inh_vss和inh_vpw换成对应layout的VSS,重新跑lvs即可。上图可知有两个source网表里的port无法对应到layout去,分别是inh_vnw inh_vpw,而layout处也有VDD VSS无法对应到source网表。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-04-02 16:00:43
136
原创 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
141
原创 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
158
原创 用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
215
原创 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
64
原创 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
195
原创 disable timing的设置与移除
这里回答以下上述的提问,如果对cell remove了disable timing那么前面针对它的pin设置莫disable timing就不存在了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-03-12 15:07:43
175
原创 innovus:设置与报告module padding
module padding默认就是1,工具也不接受<1的值,它的意思就是每个指定module的instance面积要×一个指定的系数,工具认为这个cell大了,自然module就撑开了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-03-12 15:00:13
57
原创 calibre:DRC如何检查missing via
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?来自星球提问:这个需要自定义drc rule去检查,原理是相同net shape不同layer交叉处检查连接关系。
2025-03-05 13:53:47
203
原创 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
76
原创 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
216
原创 innovus:自定义快捷键方法
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?这次来讲一下innovus,工具自有的快捷键通过View -Set Preference - Design - Binding Key (2019版本)可以查看,如下图:"Save"保存bindKey,我们可以看到工具是通过bindKey命令来定义快捷键的,如下:接下来,我们通过两种方式定义快捷键。
2025-02-27 09:25:34
55
原创 redhawk:avgTW maxTW minTW minWC的区别
分析dynamic ir drop报告时会遇到这几个值,avgTW maxTW minTW minWC,如下图。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-02-25 14:05:45
92
原创 voltage/temperature derate指什么?
每个instance的电压是不同的,因为各instance处于电源网络不同的位置,周围的cell开关活动也不同,所以其瞬态压降也是不同的。同样的不同instance的温度也有所差别,这些差别(记作△V和△T)在sta分析时会以voltage和temperature derate形式呈现。tsmc12工艺voltage和temperature derate查找表是分开的。temperature variation是需要用set_timing_derate定义的,通常在aocv/pocv文件中是不包含的。
2025-02-19 15:03:19
70
原创 innovus:ccopt property有哪些?
先回答这个问题,get_ccopt_property -pin xx inserion_delay,这个比较基础。ccopt property有很多,工具提供命令去报告,以及获取解释。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-02-18 16:09:12
73
原创 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
192
原创 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
51
原创 slew dreate,slew threshold与transition计算
只看rise情况下,from pin取slew threshold10%-90%的区间,slew derate为1,计算得到transition为1.002e-10,to pin的slew threshold 为30%-70%,slew derate 0.5,从波形列表上取相近的值3.75e-10和8.75e-10,计算得到transition为(8.75e-10-3.75e-10)/0.5=1e-9,考虑精度和取值区间问题,基本符合工具计算的值,如下:。如下示例,在.lib库中有定义以下内容。
2025-02-05 14:13:23
221
原创 ICC2:set_svf怎么用
每个优化的操作都可以写个svf文件出来,在formality做对比时,可以都加到set_svf列表中。也可以分步骤分阶段去比较。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-01-16 15:59:53
83
原创 移除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
196
原创 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
114
原创 ICC2:如何删除floating route
删shape就改成floating shape violation,不过这种暴力删除的手段不经过仔细检查会导致一些本只有missing via问题的pg shape被删除,反而pg连接问题更大了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-01-07 16:04:26
116
原创 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
206
原创 redhawk:power em的解决方案
如上图(仅显示问题VDD NET),原本这里有top层和少量M1的power EM问题,使用了增加stripe数量的方式,结果只有M1层的em问题解决了,top metal的仍然存在切数量更多了。power em是局部大电流引起的,我们需要进行分流,这里的解决方向有两个,一个是增加局部stripe数量,一个是加宽问题部分stripe宽度并提高pg via数量。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?2.加宽stripe,增加via数量。1.增加stripe条数。
2024-12-27 15:57:35
238
原创 redhawk如何看高toggle rate instance
1.图形界面View-Power Map - Toggle Map of Instances。redhawk通过报告和图形界面两种方式查看高toggle rate的instance。2.看warning log,在adsRpt/Warn里,搜toggle rate。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2024-12-26 16:11:00
127
原创 calibredrv添加logo
4.Object-Character Shapes添加logo。1.打开gds (calibredrv -m xx.gds)我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?3.左键在需要添加logo区域画个框。
2024-12-26 15:38:48
84
原创 你的scan tree为什么这么长?
如上图,分析这种问题,我们需要找到靠近scan root的mux,即上图mux1,在scan mode下,mux1后面的clock tree过长,为了balance 这一路,会在mux2前面垫很多的clock repeater,scan tree也因此被拖长,那有什么办法吗?除此外,如果mux1后的sink不多,保证func时序收敛的情况下可以让这部分在scan mode下做ignore pin,仅牺牲部分时序,可以让整条tree做短,这种取舍也是可行的。下图所示是一种不合理的时钟结构。
2024-12-25 09:14:23
274
原创 innovus获取mem pin shape box脚本
innovus mem 的pin shae只能通过attitude editor看属性获取其pin shape的box,但是想用脚本处理一定box时,没有别的办法能直接获取box属性。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2024-12-24 14:36:40
417
原创 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
206
原创 Milkway脚本示例
Milkway用来做ICC/DC工具的物理参考库,其中frame相当于图形化的lef,这里分享一个Milkway的脚本。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2024-11-06 15:58:38
201
原创 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
284
原创 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
498
原创 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
241
原创 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
672
Regular Multisource Clock Tree Synthesis
2024-08-12
Innovus CCOpt Concepts Update Training
2024-08-12
Buffer insertion using ecoAddRepeater In Innovus
2024-08-12
Innovus - source latency update
2024-08-12
LPDDR54-PHY.pdf
2024-08-10
先进工艺带来的挑战与问题
2024-08-10
霍华德 约翰逊 高速数字设计
2024-08-10
ESD Protection and I/O Design
2023-11-22
ESD经典教材 ESD Protection in CMOS Integrated Circuits
2023-11-22
Flexible H-tree and Multi-Tap Clock Flow in Innovus (Legacy)
2023-11-20
Clock Mesh Synthesis
2023-11-20
Innovus-naming-convention.docx
2023-10-30
基于TSMC12nm的GPU低功耗设计与物理实现.pdf基于TSMC12nm的GPU低功耗设计与物理实现.pdf
2023-10-27
Low Power Methodology Manual For System-on-Chip Design.pdf
2022-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人