- 博客(555)
- 收藏
- 关注
原创 ICC2: place阶段的clock network delay
设置了set_clock_latency之后,即便没长tree,也会有反标值,显示为clock network delay(ideal)和设置的clock latency值,需要注意的是同时设置set_clock_latency和set_clock_latency -source,clock network delay(ideal)值是二者叠加的。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2026-01-21 14:30:58
12
原创 Calibre如何将两个gds拼到一起
2.图形界面Object-Create Cell,设置block的名字,选择From Selection和Replace selection with cell instance,操作两次,创建对应的block1和block2的空的子模块。1.calibredrv打开图形界面,File-New Layout,创建一个空版图,设置好unit和grid,不然后面merge会出错。5.最后filemerge,把参考库,空top和两个block gds都添加进去。4.使用脚本给其中以后block改坐标原点位置。
2026-01-12 14:40:53
37
原创 提高ICC2与Starrc的correlation方法
做correlation检查需要保证ICC2的database处于post route阶段,且没有过多的min spacing和min width问题,open和short也需要清掉。2.确保tluplus跟nxtgrd是用同一个itf文件产生的,且使用相同版本的grdgenxo工具,starrc版本要保持与ICC2一致或略早版本。4.Starrc需要设置REDUCTION: NO_EXTRA_LOOPS。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2026-01-06 11:15:41
37
原创 innovus: 给power domain加placement gap以及route gap
rbk在pd外面就让$box放后面,rbk在pd里面就让$box在前面。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-12-25 15:12:24
148
原创 静态时序分析: create_generated_clock用法详解
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?生成时钟是基于主时钟(master clock)派生出来的,主时钟是create_clock来定义的,我们常用的分频时钟就是在分频电路后定义一个生成时钟,eda工具不会根据分频电路来计算它是几分频,所以需要create_generated_clock约束告诉工具。
2025-12-17 17:13:28
95
原创 用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
148
原创 t12 low power design: power plan脚本分享(7) tap cell & route guide
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-10-22 11:24:32
145
原创 t12 low power design: power plan脚本分享(6) power via
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-10-22 10:51:23
98
原创 如何在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
216
原创 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
190
原创 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
236
原创 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
218
原创 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
890
原创 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
322
原创 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
196
原创 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
151
原创 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
142
原创 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
187
原创 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
249
原创 innovus: set_ccopt_property locked_originally
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?正常cts后目标instance被优化成X2驱动。
2025-09-10 10:24:59
115
原创 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
163
原创 用inverter pair替换buf前后对比
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?过去我们做过试验,只用inverter或只用buf长tree的区别。结论是,只用clcok inverter长tree不会对时序和clock qor造成负面影响,虽然clock repeater数量增多,但是clock repeater总面积和clock 功耗反而更小。如果只是替换一个buf为相同驱动的两个inverter,会有什么变化呢?
2025-09-02 15:41:55
115
原创 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
445
原创 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
162
原创 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
139
原创 t12 low power design: power plan脚本分享(2) create_boundary_cell
让boundary tap的via0 pin shape对齐via0 grid。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
2025-08-18 09:48:39
121
原创 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
242
原创 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
109
原创 使用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
1102
原创 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
374
原创 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
4215
原创 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
373
原创 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
205
原创 静态时序分析:如何修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
160
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订阅