拾陆楼
资深ICer,IC技术圈成员,拾陆楼知识星球与CSDN创作者
展开
-
ICC2:clock tree分析实例
clock tree常见的示例原创 2022-06-30 19:42:46 · 2311 阅读 · 0 评论 -
ICC2:分析时序的神器 analyze_design_violations
ICC2 分析时序使用analyze timing violations命令原创 2022-06-29 13:10:46 · 1646 阅读 · 0 评论 -
ICC2 user guide(三)Clock Tree Synthesis
ICC2(三)Clock Tree Synthesis user guide解析原创 2022-06-07 22:56:54 · 7518 阅读 · 1 评论 -
ICC2 user guide (一) Preparing the Design
ICC2 Preparing the Design部分user guide解读原创 2022-06-05 16:03:33 · 3412 阅读 · 2 评论 -
ICC2 user guide(二)Placement and Optimization
ICC2 place阶段user guide原创 2022-05-25 21:48:27 · 7166 阅读 · 0 评论 -
PT:pt write_change to innovus 脚本
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-05-10 11:10:31 · 386 阅读 · 0 评论 -
ICC2:postmask ECO参考脚本
更多学习内容请关注「拾陆楼」知识星球。原创 2024-03-26 10:49:40 · 188 阅读 · 0 评论 -
ICC2:postmask eco限制绕线层次
更多学习内容请关注「拾陆楼」知识星球。原创 2024-03-26 10:47:54 · 49 阅读 · 0 评论 -
PT:dmsa如何设置don‘t use
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-03-11 09:06:05 · 193 阅读 · 0 评论 -
tsmc12:boundary cell/tap cell的align VIA0 grid
一些文章中提出boundary cell添加是也需要设置enable_prerouted_net_check 选项,但其实是不需要加的,加了反而有问题,比如上下加不上tap boundary产生OD长度的问题,如上方链接。需要注意的是boundary cell的上下类型中有Fill1类型,为避免有1x gap,可以放到top/bottom_boundary_cell的列表里。这里需要注意的是上图中的option需要设置。更多学习内容请关注「拾陆楼」知识星球。原创 2024-02-19 11:15:35 · 87 阅读 · 0 评论 -
ICC2:polygon命令与复杂power plan
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?之前在polygon多边形操作一文中举例介绍了ICC2中如何用polygon命令创建环形金属,这里再介绍一种实用用法。原创 2024-02-05 11:37:02 · 208 阅读 · 0 评论 -
ICV:Metal Fill Insertion脚本
设置icv runset file,层次参考drc rule file,block设计需要注释(//)define FULL_CHIP和define WITH_SEALRING,另外define UserprBoundary也可以注释,这个在上一步已经设置好了。#设置读design/layout view,需要产生ndm时就给cell ndm产生这两种view,如果没有的话,默认就用frame view。#设置gds steam out layer map。更多学习内容请关注「拾陆楼」知识星球。原创 2024-01-31 14:33:11 · 92 阅读 · 0 评论 -
ICC2:如何优化网表中的assign语法
第一个option在ICC中有单独的命令set_fix_multi ple_port_nets。第二个方法通常在pr signoff写网表采用到,所以要去assign更推荐用第一种方法。更多学习内容请关注「拾陆楼」知识星球。工具优化时自己插buffer解决。原创 2024-01-23 10:36:33 · 171 阅读 · 0 评论 -
ICC2:all_fanout和all_transitive_fanout的用法
用过all_fanout的都知道,all_fanout的终点是寄存器,所以这个命令只能用来报告timing path的终点以及through pin/cell,运行起来就比较慢。如果需要报告的path并不是timing path,endpoint也不是寄存器,那就需要使用all_transitive_fanout,这个命令速度快,报告全。用法上all_transitive_fanout和all_fanout是一致的,常用的选项也一样,这里不多赘述。更多学习内容请关注「拾陆楼」知识星球。原创 2024-01-12 09:33:47 · 260 阅读 · 0 评论 -
PT:报告unconstrained path
更多学习内容请关注「拾陆楼」知识星球。原创 2024-01-08 10:58:43 · 593 阅读 · 0 评论 -
ICC2:先进工艺pin access相关app option
默认这两层都是80%#限制M2 M3层利用率,这里的百分比需要自行测试,针对不同项目不同模块有针对的设置。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-26 09:23:50 · 459 阅读 · 0 评论 -
ICC2:mem出pin的Off Grid问题
这个命令本意是解决跨制成调用IP时在IP出pin位置加一定的routing blockage,限制绕线在一定范围内只能走直线出pin,用来解决off-grid问题也有很好的效果。在ICC2做先进工艺时会有off-grid的问题,off-grid可以理解为绕线没有在preferred方向track上。测试发现,2022版本以前的ICC2绕线容易有off-grid问题。主要在mem出pin的M2/M3层次上,切换版本绕线能很大程度上解决这个问题。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-26 08:45:21 · 796 阅读 · 0 评论 -
Report the POCV Coefficient and Derating
要显示POCV信息,包括POCV coefficient 和distance-based derating信息,需要使用report_ocvm -type pocvm命令(report_ocvm命令不需要update_timing,可以在update_timing之前执行此操作)。PT报告会默认使用3 sigma去计算报告时序,可以通过timing_pocvm_report_sigma去改变,这个option值影响报告,不需要update_timing。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-25 15:34:14 · 988 阅读 · 0 评论 -
ICC2:add text脚本
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?#ICC2 add text参考脚本。原创 2023-12-25 13:49:09 · 988 阅读 · 0 评论 -
如何控制mem/ip出pin在pin的正中间
原理是提供pin boundary,在pin shape周围加routing blockage,限制工具只能在正中间出pin走线。无论是ICC2还是innovus都不提供这样的功能,如果有这样的要求就需要通过脚本实现,这里提供一个参考脚本。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-21 09:55:58 · 887 阅读 · 0 评论 -
ICC2:Less than minimum edge length和Concave convex edge enclosure
1)route后,一些drc出现在via周围,尤其是双倍宽的clock route上,需要换via类型或补全metal。事实上tf里是有合适的via替换的,可以让下方的via保持和wire等宽,这种情况需要检查tf文件中修改后的via有没有设置isDefaultContact为1。2)这种错常出现在power mesh上,尤其是stripe与power rail的via上,原因是power stripe不够长,所以打stripe时要延伸出一段来避免drc。原创 2023-12-20 14:42:17 · 927 阅读 · 0 评论 -
ICC2:改用右键放大(Zoom In)
innovus有些好用的快捷键,比如用右键控制Zoom In放大,到了ICC2这个功能默认只能用“+”号和Z+鼠标左键控制,便捷性可谓0分,其实工具提供了更改成右键Zoom In的方法。在VIEW-Perference的Global Settings对话框中勾选Zoom on right mouse drag in graphical views即可。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-19 17:58:13 · 456 阅读 · 0 评论 -
ICC2:如何调整floorplan原点位置
这个命令将原点位置调整至{0 0}-to指定的是一个offset值,并不是一个坐标。所以要注意书写方式。在一些工艺中需要使用via0_grid,通过计算得到offset值,这个值不能是负的,否则创建via0 Grid会失败。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-14 10:00:30 · 116 阅读 · 0 评论 -
ICC2:low power与pg strategy(pg_std_cell_conn)
两个电源域,DEFAULT_VA和PD_DSP是对应voltage area名字,其中DEFAULT_VA不需要switch供电,VDD_DIG和VDD_DSP对应PD_DSP的external power和internal power。VSS是ground net。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-12 09:33:20 · 117 阅读 · 0 评论 -
PT/ICC2:如何设置默认的报告精度(significant digits)
set_app_var report_default_significant_digits 4能控制report_timing的精度,对应ICC2的命令是set_app_options -list {shell.common.report_default_significant_digits 4}提问: 楼长,问下pt命令report_timing返回的数值精度是小数点后四位,为啥get_timing_path slack返回的精度是小数点后六位,怎么能让后者返回也是四位精度呢。原创 2023-12-05 15:38:56 · 259 阅读 · 0 评论 -
PT:report_timing如何在表头显示startpoints/endpoint pin name
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-05 14:59:23 · 137 阅读 · 0 评论 -
PT:dmsa timing report脚本
pt dmsa的timing report分成两部分。一是各scenario的报告,二是dmsa多scenario的报告。参考命令如下图,需要注意的是先报告单scenario的报告(remote_execute内的内容),然后报告dmsa的报告。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-04 15:29:17 · 298 阅读 · 0 评论 -
ICC2:如何创建多个core区,分别做power plan
然后在创建power rail和stripe时都是用set_pg_strategy -pg_regions+compile_pg 命令,这样power rail和pg stripe都框定在固定的core区了,如果觉得pg strap需要更长一些,这样上下的power rail都能覆盖strap能打上孔,可以在set_pg_strategy时加个-extension的option。如下图,core区域(core row)仅需要存在两个地方,右上大的core区,以及ram上下。原创 2023-12-04 11:31:06 · 550 阅读 · 0 评论 -
ICC2:使用analyze_lib_cell_placement检查lib cell的pass rate
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?在place之前需要使analyze_lib_cell_placement命令去检查lib cell在当前的site row/power plan/legalize设置的环境下能够正常place和legalize。下面分享一个脚本去报告pass rate低于2%的lib cell。原创 2023-11-30 17:18:47 · 303 阅读 · 0 评论 -
ICC2/innovus设置no 1x gap的方法
X,Y之间的距离1是不允许的,所以要么是0,要么大于等于2。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-11-29 09:54:46 · 161 阅读 · 0 评论 -
innovus/ICC2关闭timing driven减少runtime
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?再做eco flow时,我们只需要读eco脚本,legalize和eco route,并不需要做时序优化,也就不需要timing driven去干涉绕线,关闭timing driven即可减少runtime。原创 2023-11-28 09:50:03 · 159 阅读 · 0 评论 -
PT里如何针对某个模块设置false path
如题,这个问题实际上讲的是get_cells的用法,我们要抓取某个模块内的全部cell,在ICC2里可以get_flat_cells xx/xx/module_name*,但是PT并不支持这个命令,尤其是需要将命令写到sdc里时,get_flat_xx也都不作用了。这里需要用到get_cells,举例来说,如果在PT里不想分析xx/xx/A模块内部的所有path,需要用到set_false_path命令。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-11-27 22:01:42 · 341 阅读 · 0 评论 -
tsmc12 nm boundary cell注意事项
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-11-15 16:41:05 · 349 阅读 · 0 评论 -
ICC2/innovus merge gds
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-11-15 15:44:17 · 265 阅读 · 0 评论 -
用placement label代替keep margin解决绕线问题
通常我们用keepout margin去降低多pin cell类型的密度,这里提供一种替代方案,即使用placement label。好处是只限制多pin cell彼此间距,不会影响多pin与少pin之间的place,对利用率,绕线等的负面影响要小。如果要剔除寄存器或者一定尺寸的lib cell,可以用width属性和is_sequential去筛选。#给所有5 pin D1驱动的lib cell加label,彼此之间至少三个site的间距。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-11-14 17:19:28 · 269 阅读 · 0 评论 -
innovus/ICC2:实际绕线层次有低于routing rule min layer的情况如何解决?
这是因为routing rule的min layer是soft rule,如果希望min layer严格按照设置的来,还需要手动添加如下命令:原创 2023-11-10 16:36:49 · 262 阅读 · 0 评论 -
ICC2与PT端口时序上的差别
你好,我想问一下就是之前一直遇到一个情况:INtoReg的path_group的时序报告,ICC2里launch的clock network delay(propagated)会有一个值,skew就很小。同理Reg to Out在PT也是capture的clock network delay(propagated)为0,从而出现setup的违例。但是到PT里launch的clock network delay(propagated)就会为0,skew就会很大从而出现Hold违例。原创 2023-11-08 11:07:43 · 298 阅读 · 0 评论 -
ICC2: 如何显示GUI操作产生的命令
把display commands in logging console 下面几个都勾上即可。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-10-31 11:05:18 · 419 阅读 · 0 评论 -
ICC2:分段长tree的流程
用set_don_touch_network -clock_only [ger_object_name [get_clock_tree_pins -clock subtree_clock] ]设don't touch。2.把sdc中添加subtree clock,subtree是generate clock的改成create clock,自己创建的直接create clock。4.reset skip cts clock option,然后重新长tree,cts后换回原始sdc。原创 2023-10-27 16:05:02 · 406 阅读 · 0 评论 -
报告从root到sink的clock tree物理长度的脚本
距离clock root物理距离最远的sink未必是latency最大的,但是往往clock path的长度受其影响,比如一些寄存器放在距离clock root很远的channel里,与其balance的reg就需要垫 delay detour buffer,即使它不是latency最大的点,但分析clock tree也应该作为qor的一部分用来分析。#用root和sink在图形界面产生飞线,用法是flylines $root $sink。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-10-24 14:15:50 · 159 阅读 · 0 评论