- 博客(551)
- 收藏
- 关注
原创 innovus: 给power domain加placement gap以及route gap
rbk在pd外面就让$box放后面,rbk在pd里面就让$box在前面。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-12-25 15:12:24
123
原创 静态时序分析: create_generated_clock用法详解
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?生成时钟是基于主时钟(master clock)派生出来的,主时钟是create_clock来定义的,我们常用的分频时钟就是在分频电路后定义一个生成时钟,eda工具不会根据分频电路来计算它是几分频,所以需要create_generated_clock约束告诉工具。
2025-12-17 17:13:28
48
原创 用innovus write_lef_abstract写出不规则形状lef
试验下来,只要tech lef中添加overlap层定义即可,不需要write_lef_abstract -add_obs_layers OVERLAP,因为这个option同样需要lef中有OVERLAP定义。往期文章中我们介绍过如果切割不规则形状floorplan。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-10-24 17:52:46
133
原创 t12 low power design: power plan脚本分享(7) tap cell & route guide
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-10-22 11:24:32
133
原创 t12 low power design: power plan脚本分享(6) power via
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-10-22 10:51:23
82
原创 如何在verilog网表里搜索instance?
PR工具通过current_design过得top cell name,在网表中搜索module top_cell_name,然后向下搜索指定port,举例来说,我们要找到spi_clk_dig[8]这个port接的instance pin name。由此可知,spi_clk_dig[8]接的是一个与门的输入pin,对应的instance pin为,isolate_latch/and_isolation/my_and/A。举例来说,一个instance name为a/b/c。
2025-10-20 10:43:57
204
原创 t12 low power design: power plan脚本分享(5) power switch
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口set_app_options -name plan.mtmos.snap_to_via0_grid -value truederive_placement_blockages ;#给channel产生blockage,方便抓取channel,这里需要删除不必要的blkset upf "xx/block.upf"set in [open $upf r+]while {[gets $in line] >= 0} {if {[regexp c
2025-10-16 15:24:38
173
原创 innovus: createRegion
floating的作用是,当我们需要把指定module集中摆放,相对位置还是在指定box大小的矩形框里,但摆放位置需要工具自行判断时就可以加-floating。工具会把u_top/u_dsp_top/u_sub 下的inst放到{0 0 10 10}这个box里。请教下星主createRegion的命令-floating这个命令有什么作用呢。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?下图为设置floating前后对比。
2025-10-15 16:50:01
216
原创 ICC2: 如何均匀撒spare cell
另外,add_spare_cell默认是不能加到任何类型的placement blockage内部的,如需加到channel内的soft blockage内可以设置add_spare_cell -ignore_blockage_types {soft}要想均匀撒就得place前撒进去,撒的方式有两种,一种是随机撒进去,一种是一堆一堆的,每种cell type spare cell聚在一堆,区别是用-random_distribution还是-respective_window。
2025-09-19 13:40:41
201
原创 ICC2: Performing Multibit Banking
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?ICC2可以把single bit的寄存器和小的multibit的寄存器替换成更大的multibit的寄存器,比如可以把8个1-bit的寄存器或者4个2-bit的寄存器换成一个8-bit的寄存器或者2个4-bit的寄存器。同样的工具也可以把level shifter和isolation cell的single bit换成等效的multibit。这种方法可以减少cell的面积,clock tree net的长度,以及clcok buffer的数量及功耗。
2025-09-18 14:46:54
870
原创 PR工具timing report中setup time的计算过程
然后去pr工具里报告report_delay_calculation/reportDelayCalculation -from related_pin -to constraint_pin。这里constraint pin就是D pin (D0 D1 D2 D3),related pin就是 CK pin。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-09-18 14:20:32
298
原创 innovus: add_via_definition相关
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口用户自定义的via_def往往基于lef中VIARULE,在此基础上做调整,比如cut_spacing,如下实际:VIARULE VIAGEN12 GENERATE; LAYER M1 ; DIRECTION HORIZONTAL ; OVERHANG 0.05 ; METALOVERHANG 0 ; LAYER M2 ; DIRECTION VERTICAL ; OVERHANG 0.05 ; M
2025-09-16 16:25:50
180
原创 ICC2: stripe下不放cell的方法
ICC2有两个option,place.legalize.avoid_pins_under_preroute_libpins 和place.legalize.avoid_pins_under_prroute_layers仅适用于legalize阶段,要实现place时stripe下不放cell还是要用上述脚本。ICC2不像innovus那样有直接的命令控制这个功能:setPlaceMode -place_detail_prroute_as_obs。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-09-15 14:53:51
131
原创 innovus: Error(NRDB-954)原因分析
分析其原因是,因为用M8手动画线,又设置了setNanoRouteMode -routeTopRoutingLayer M6,M6的top layer与M8冲突了,这里做ecoRoute时可以用ecoRoute -modifiedOnlyLayer 2:6。ecoRoute的时候报了这个错误,然后直接停掉了。之前也是高层设置的 6 低层是2。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-09-15 10:37:35
128
原创 innovus: 给各阶段优化插入的instance设置prefix name
请教星主和各位大佬,在innovus中对于preCTS/postCTD/postRoute等不同阶段的optDesign插入的buffer有没有办法加上特定的名称来判断到底是哪个阶段插入的?用过后,工具插buffer,比如prefix name原本是FE_OPC,设置上述option后就变成preCts_FE_OPC。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-09-15 10:22:23
173
原创 starrc: LEF DEF FLOW与full chip flat netlist
SIKP_CELLS默认为"SKIP_CELLS: *"意思是跳过所有ref cell内部的rc提取,仅提取cell之间的互联线的rc,"SKIP_CELLS: *!与MACRO_DEF_FILE搭配使用的还有SKIP_CELLS命令,如果想提取block的寄生参数生成full chip的flat netlist,或者跳过block取执行hier的寄生参数提取都需要用到SKIP_CELLS。此时,macroA和macroB没有被跳过,所以提取其内部的rc,spef中存在两个A和两个B。
2025-09-11 15:19:52
220
原创 innovus: set_ccopt_property locked_originally
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?正常cts后目标instance被优化成X2驱动。
2025-09-10 10:24:59
109
原创 innovus: set_ccopt_property consider_during_latency_update 用法
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?默认情况下工具update io latency时会计算每个sink 的insertion delay,set_ccopt_property consider_during_latency_update用于计算io ltency忽略某些sink。
2025-09-05 09:47:53
146
原创 用inverter pair替换buf前后对比
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?过去我们做过试验,只用inverter或只用buf长tree的区别。结论是,只用clcok inverter长tree不会对时序和clock qor造成负面影响,虽然clock repeater数量增多,但是clock repeater总面积和clock 功耗反而更小。如果只是替换一个buf为相同驱动的两个inverter,会有什么变化呢?
2025-09-02 15:41:55
110
原创 innovus: postRoute如何加shielding
星主,怎么给postRoute后的信号线加屏蔽线呢?试了setAttribute -net -shielding_net和createShield -selected都不行。设置完setAttribute -net -shielding_net VSS之后,选中net,用globalDetaliRoute -select 去绕就ok了。这里用ecoRoute和detailRoute都不行。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-09-02 15:05:43
404
原创 t12 low power design: power plan脚本分享(4) power stripe
设置各电源域对应voltage area名字,switch输入输出的power以及ground,没有switch 参考default_voltage_area local_pwr和global_pwr,写相同的power即可。#根据m8与m2相交区域bbox和m3/m4 track去做ladder 形式的power stripe。#抓取m4/m3的track坐标最大的值,要保证m3/m4的stripe on track。
2025-08-19 14:01:05
149
原创 t12 low power design: power plan脚本分享(3) power rail
设置各电源域对应voltage area名字,switch输入输出的power以及ground,没有switch 参考default_voltage_area local_pwr和global_pwr写相同的power即可。#各电源域添加power rail,这里m1 m2都需要添加,且宽度不同,这里设置了via_rule,这个阶段不打孔。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-08-18 14:39:05
129
原创 t12 low power design: power plan脚本分享(2) create_boundary_cell
让boundary tap的via0 pin shape对齐via0 grid。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-08-18 09:48:39
115
原创 t12 low power design: power plan脚本分享(1) initialize_floorplan
把design坐标原点设置在(0 0)set boundary_offset_y 1;#设置core2die offset。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-08-18 09:19:28
236
原创 ICC2: 报告一条path从startpoint到中间某点的latency
方法二: 设置个max delay从input到mux/s,get_attr [get_timing_paths -from xx -to xx -scenario xx] arrival,后面再reset_path -from -to就行,就是麻烦点。方法一: set num [lsearch [get_object_name [get_attr [get_timing_path -from input -to reg/D -scenario xx] points] ]mux/s]
2025-08-12 10:27:19
94
原创 使用virtuoso gds转lef操作方法
2) 然后,需要创建Pin,这里Pin的概念不同于label/text,是有实际金属的,二者的区别类似于pr中的port和terminal。1) 首先,需要画prBoundary,这个用drawing层的prBoundary画是不行的,不过建议pr阶段就把prBoundary转到gds里,在virtuoso layout中画prBoundary就比较容易。另外,用Create - Create Pin也可以创建pin,更适用于PG pin,操作时先给pg shape打label,最好放正中间。
2025-08-04 14:07:51
1040
原创 innovus: ecoAddRepeater给一条net插入多个buf
ecoAddRepeater -net net_name(或 -term pin_name) -cell [list lib_cell1 lib_cell2] -name [list buf1 buf2] -loc [list {x1 y1} {x2 y2}]add_buffer_on_route有个-no_legalize的选项,对应innovus需要设置setEcoMode -refinePlace false。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-08-04 13:48:05
313
原创 VSS shielding线可以floating吗?
shielding vss不打孔,就相当于dummy metal,如果周围有其他干扰线,他们影响了这段dummy metal,这段dummy metal仍然会对目标线产生干扰,bug的是,工具知道这段dummy是vss,那么计算寄生的时候仍然把它当vss,就有可能噪声没有完全消除,而用户又看不见。而真正接地的线,相当于一直是0,就不会对目标线产生干扰,一般加shield是在route之前,这时候shield能尽量覆盖目标线,等到绕线后再加就会出现shield只覆盖到一部分目标线的情况。
2025-08-01 17:07:50
3452
原创 Delta delay与ocv derate
delta delay0.0123,考虑net derate以后变成0.0135没有,这个就是report_timing里显示的delta delay值了。crosstalk产生的delta delay,应该是工具已经包含了ocv影响了吧,不需要这个delta delay再乘ocv derate了吧。report_timing报告中的delta delay已经是考虑ocv derate的结果了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-08-01 16:34:34
361
原创 Starrc: LEF_USE_OBS与GDS_FILE
Starrc在提取寄生参数时有个默认开启的选项LEF_USE_OBS,它的意思是LEF中的OBS区域都当做真实金属去计算绕线和它之间的耦合电容,所以这并不准确。另外,如果用户提供gds,starrc提取的寄生参数就能更真实情况,命令是GDS_FILE和GDS_LAYER_MAP_FILE。在signoff时建议把LEF_USE_OBS设置成NO,这样工具计算出pin层的耦合电容时就只能看到pin shape。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-07-29 09:51:16
181
原创 静态时序分析:如何修glitch?
二是,遇到high density区域不会修;如果driver离得远,插buffer是首选方案,有一种情况,插buffer也很难解决。通常clock net有ndr的约束不容易出现问题,出现了PT dmsa也不给修,这时候就可以尝试手动给干扰线加ndr rule,同样2s即可,如果不行,可以尝试拉进driver和loader的距离。这时候可以试试加设ndr rule,不需要2w2s这么激进,2s即可,只给受扰线加,如果仍然解决不了,再试试组合的办法,插一个buffer打断长导线,用2s ndr抗干扰。
2025-07-25 09:40:29
147
原创 ICC2/innovus: 如何对比legalize前后哪些inst被移动
楼长,有啥办法可以看到refineplace或者ecoplace都动到了那些inst吗,log里只会有mean和max move,是不是只能写脚本抓全部inst,看看前后inst位置有没有变化啊。ICC2可以使用place.legalize.report_displacement_limit调整legalize_placement报告的数量。ICC2和innovus有个通用的对比方法,就是legalize前后存def出来进行diff。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-06-27 15:36:29
452
原创 innovus: 创建PG port与terminal的方法
楼主,ICC2的create_port 对应innovus 中的什么命令呢?找了一圈只有addModulePort。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?2-创建port与terminal。1- 我们需要先创建pg net。
2025-06-27 15:24:56
515
原创 innovus: ecoAddRepeater改变hier层级解决办法
星主,我在A/B/C/D/E/U0这个cell后面插入一个BUFF,生成的名字为A/B/C/BUFF1,少了D/E两个层级,不应该是生成A/B/C/D/E/BUFF1这个名字吗?这种是和前端写法有关系还是工具就是这样呢?那我pt修hold的脚本转成innovus的话,在某个cell后面插入两三个BUFF,那后一个引用前一个的name就很不确定,生成的cell name有的少一个层级,有的少两个层级。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-06-04 10:36:44
398
ICC2中ICV signoff DRC检查与自动修复:解决PR与PV工具间DRC不匹配问题
2025-04-20
【数字后端设计】Innovus源延迟更新机制:时钟树综合前后时序一致性维护方法详解
2025-04-20
【集成电路设计】ICCompiler与StarRC工具间寄生参数提取相关性检查清单:确保版图后仿真准确性
2025-04-20
基于reportCongestion与Congestion GUI的拥塞分析:统计与可视化方法在IC布局布线中的应用
2025-04-20
【集成电路设计】基于Innovus的混合宏单元与标准单元协同布局流程:mixed placer flow
2025-04-20
【集成电路设计】Totem 2021R1.4版本用户指南user guide
2025-04-20
Innovus 时钟树综合(CTS)技术详解:集成电路设计流程中的关键优化与配置指南
2025-04-20
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关注的人
RSS订阅