查询时序路径违例的报表/加载时序中出现的debug/标注违例路径 | (1)report_timing -from beginpoint -to endpoint -machine_readable > ab8_vio(命名); (2)load_timing_debug_report ab8_vio; (3)highlight_timing_report -file ab8_vio -path 1 -color_index 2(粉色高亮) |
||||||||
找出并选中fan的in/out的cell | select [all_fanin -to 某cell全名/* -startpoints_only -only_cells] | ||||||||
select [all_fanout -from 某cell全名/* -endpoints_only -only_cells] | |||||||||
输出DEF文件 | defOut -netlist -routing -floorplan -earlyGlobalRoute DATA/[dbget top.name ].def.gz | ||||||||
输出Netlist文件 | saveNetlist DATA/[dbget top.name ].v.gz | ||||||||
截图 | ksnapshot | ||||||||
输出GDS文件 | streamout DATA/{x x x}.gds.gz | ||||||||
绕线前和绕线后的DEF文件的输出 | write def cmd: #if DB before route: defOut -earlyGlobalRoute -floorplan -netlist [dbgDesignName].20220621_V1.def.gz #if DB after route: defOut -routing -floorplan -netlist [dbgDesignName].20220621_V1.def.gz |
||||||||
Core和Standard Cell的利用率在sunmmery的报告中显示分别如右: | (1)% Chip Density (Counting Std Cells and MACROs and IOs);(2) % Pure Gate Density #3 (Subtracting MACROS) |
||||||||
抓取pin的输出端的寄存器/Cell | selectInst [all_fanout -from mstr_rdata* -endpoints_only -only_cells] | ||||||||
抓取全部的boundary timing | /projusers/xe025ab7/RUN/clarkliu/0_COMMON/APR/common/grep_port_delay.tcl | ||||||||
快捷指令 | ①cd ②ls -a ③gvim .cshrc ④alias h 'history' |
||||||||
在运行过程中发现有SDC文件填写错误,可以通过以下指令进行更换 | sed -i 's:set CONS_FILE { /projusers/xe025abm/zhaoheng/stable/smmu_top_vpe_x16rc/20220715-NETLIST/common/smmu_top_vpe_x16rc_v01_20220719.sdc} : set CONS_FILE { /projusers/xe025abm/zhaoheng/stable/smmu_top_vpe_x16rc/20220715-NETLIST/common/SDC/smmu_top_vpe_x16rc_v02_20220902.sdc}:g' /projusers/xe025abm/zhaoheng/stable/smmu_top_vpe_x16rc/20220715-NETLIST/MMMC/T5E0_MMMC_FLAT_TIMING_PT_SI_SIGNOFF_23_20220913_postroute/5E0-MMMC_FLAT_TIMING_PT_SI_SIGNOFF_23/04_SI_STA/func_func/*/*/UniSTA_QoR.pt |
||||||||
在PT中查看min_period的违例 | report_min_period u_rp_x16_device/external_rams/u0_ram_radm_qbuffer_hdr_0_/u_psub_pcieip_tp1_d3236w302f1000_datacheck/u_psub_pcieip_tp1_d3236w302f1000_organize/orgnize_gen_5__genblk1_u_psub_pcieip_tp1_d3236w302f1000_ip_0/u_SYT6_HSTPSR_UL_832X152_M4B2C1W0T0P0R1/CLK -path_type full_clock_expanded -all_violators >> list | ||||||||
ETM中出现未加propaagte,在run_pt里查找文件,并进行替换 | |||||||||
sed -i -e 's:set IDEAL_OR_PROPAGATED_CLOCK “<require>”:set IDEAL_OR_PROPAGATED_CLOCK “propagated”:g' */*/ext_model.pt | |||||||||
在进行LEC(逻辑的等效检查)过程中,需要抓取映射点,观察是否等效抓取某个cell的指令为 | dbget [dbget top.insts.cell.subClass block -p1 ].name -u | ||||||||||||||||
在用ECF的时候需要将这些设置设为true | ANALYZE_SETUP = true
ANALYZE_DATAPATH = true |
(1)SCAN clone | MODEL_GATED_CLOCK = true MODEL_SEQ_MERGING = true |
||||||||||||||
(2)scan reorder | * Golden_pin_constraint_0 Revised_pin_constraint_0; *setting 全开; *Delete_compared_points_file; *noClone |
||||||||||||||||
查看mapping table | write_do_lec -flat DO_lec.file | 做sequential merge会产生 | |||||||||||||||
查看mapping table | dumpMultiBitFlopMappingFile -output MbitMapFile -prefix rp_x16_controller | ||||||||||||||||
LEC run完后会生成Mapp…..all 文件 最后你在 /tools/bin/setupfile/POWERREPLAY/utility/lec_to_siloti.pl Mapped_Report_all file <FSDB Hierarchical> 将Mapped file转为mapping_file.siloti | 1.source /projusers/xe025abs/tumbler/IR/0_COMMON/GEN_LEC_MAPPING 2. /tools/bin/setupfile/POWERREPLAY/utility/lec_to_siloti.pl Mapped_Report_all file <FSDB file> 将Mapped file转为mapping_file.siloti | ||||||||||||||||
使用genus方法进行优化 | 1.build ticket 2.get_innovus -uq uxe025a_apr.q -init WFM_PlaceOpt_SOCE.tcl -uv 21.1isr5 -u64 -nowin -uv_genus 21.11-s126 -log LOG -uslot 16 -umem 16 3.->WFM_PlaceOpt_SOCE.tcl —> #User customize script->setBetaFeature innovusGenusRestructuring 1 |
|||||||||
3 | 打开IR 的GUI的指令 | get_redhawk_sc -f -uv 2022_R1.0.p1 | |||||||||
4 | 使当前环境恢复到初始化设置 | source /projects/uxe025a/cshrc.workflow | |||||||||
5 | 查看当前环境配置 | wfm ticket query | |||||||||
6 | 配置IR环境 | source /tools/bin/setupfile/REDHAWK_SC/wfm_shadow/cshrc | |||||||||
7 | 查看Demand&Bump的current | ||||||||||
8 | 1.source /projusers/xe025abl/RUN/stable/smmu_top_vpe_x2rc/20220831-NETLIST/IR/TICKET_jiguang/create_bump_ap.tcl 2.加完后检查下,是否全部都有bump ,若上半部没有bump则需要手动补打: ①首先打开该脚本,找到No.26和27,复制好后,修改其中的变量如bumpcell,起始点,pitch间距和pattern规模 起始点为最上面左一的坐标:首先选择上排左一的bump,再键入命令dbget selected.bump_shape_center得到当前坐标(88.0 748.75),补打bump第一个坐标即为(88.0 748.75+Y轴方向的pitch) pitch间距即为(x轴间距 y轴间距),脚本中均有定义,需要换算成实际值,避免重复吃变量; pattern规模:VDD的还差一行,则为(1 4),一行4个。 ②source修改后的VDD命令加入VDD,然后给VDD赋予对应的PIN:键入assignPGBumps -nets VDD -bumps VDD_* 同样的VSS~;加完后检查bump的颜色。 |
||||||||||
9 | IR的Static/dynamic的inst drop | INST_DVD_QCF_av_static_simple_model.rpt | |||||||||
10 | IR过程中命令 | 1.1 get_redhawk_sc -uv 2022_R1.0.p1 -f 2 IR PPT 第19页 dynamic power summary reportpath: ${IR_work_dir}/T64A-IR_RHSC/64A-IR_RHSC_2022R1/20220913_2313_scn_Reports/power_summary.rpt 3 IR PPT 第20页 peak current waveform, 使用 <CMD> get_redhawksv av.${top_name}.total.current.xgr 打开 图3 |
|||||||||
AC_EM路径 | \twfs02ProjectUXE025A3_BE1_APR2_StableIRAC_EM | ||||||||||
删除BUMP以及添加电源pin | 8 deleteBumps -all 9 win 11 editDelete -layer {AP RV} -object_type {wire via} -net {DVDD0P75 VSS} 13 source /projusers/xe025ab7/RUN/clarkliu/0_COMMON/APR/globalconnect.tcl 14 win 15 dbget selected.box 16 selectPGPin -all 17 createPGPin VSS -geom M15 385.4205 0.0 389.8605 1304.16 18 selectPGPin -all 19 dbget selected.name 20 deselectAll 21 win 22 dbget selected.box 23 createPGPin DVDD0P75 -geom M15 391.5005 0.0 395.9405 1304.16 24 dbget selected.name 25 win 26 selectPGPin -all 27 win 28 dbget selected.name 29 selectPGPin -all |
||||||||||
addfiller&M0 | ①删除所有后缀如下(即不包含必须加用以修timing)的filler deleteFiller -prefix GUC_DCAP_FILLER deleteFiller -prefix GUC_FILLER deleteFiller -prefix HSTACK_POSTFIX deleteFiller -prefix VSTACK_POSTFIX ②将m0的dummy全部删除干净 editDelete -net _FILLS_RESERVED -shape DRCFILL -layer M0 ③先添加filler: source Script/70.60.AddFiller.cmd ④加完filler之后再加dummy。如果顺序颠倒,先加了M0的dummy,则M0层全部填满,没有办法加decap等cell。 |
||||||||||
worst drop/worst% | (static )worst drop=750mV*worst(%) | ||||||||||
进入该路径下/projusers/xe025abm/zhaoheng/initial/rp_x16_controller/20220427/PV/T770_PVAIO_20220707_V1.tmp/770-PVAIO/MERGE/GDSII | get_thunder DM_MERGED_rp_x16_controller_470_0713_20220713_161514.gds.gz(获取xxx.gds.gz文件) | Thunder环境中 | ||||||||||||||||
进入DM的路径下退出,然后map、tech、desplay等文件,之后进入DM环境中 | 载入环境后,点击communication进入calibre RVE中,到VerifyReport中查找db文件可查看DRC错误 | |||||||||||||||||
Innovus环境中查看calibre方式 | 在innovus环境中查看DRC错误,并在文件中选中Calibre之后到verify report中找出db文件 | Innovus环境中 | ||||||||||||||||
修DCRC的方法(1) | Share three scripts about fixing and preventing DRC
Script 1 Check whether the pin of macro on track /projusers/xe025abp/RUN/calf/common/Script/autockeckpin_track.tcl Usage: Make sure block track is right,and source script Script 2 Fix drc VIA1.EN.31.2.s.T and VIA1.S.3 Usage: after PV flow loadViolationReport -type Calibre -filename PV_path/LAYOUT_VERIFY/DRC_BE/DRC_RES.db source /projusers/xe025abp/RUN/calf/common/Script/changeVia.tcl Script 3 Prevent drc if your block have *TACM* macro Usage: at floorplan stage addRoutingHalo -cell [dbGet head.topCells.insts.cell.name *TCAM*] -space 0.5 -top M5 -bottom M1 |
|||||||||||||||||
当遇到clamp cell上出现M5-M14的电源线出现short | 选中其中一层blkage,将其blkage的NET TYPE——>Except PG NET | |||||||||||||||||
检查PG层是否有短路 | verifyConnectivity -noSoftPGConnect -net {VDD VSS} | |||||||||||||||||
查DRC路径 | okular /projects/uxe025a/TECH_LIB/20220104/TECH/DESIGN_RULE/T-N06-CL-DR-001/1_0_3/TN06CLDR001_1_0_3.pdf |
|||||||||||||||||
修antenna的DRC | 1.将antenna的DRC.db导入innovus,通过Mark看是哪个pin出的问题。之后按照命令加 attachDiode -pin {$inst_name $pin_name} -prefix ANT_FIX__ -diodeCell ANTENNAPADBWP240H11P57CPDLVT eg. attachDiode -pin {psub_vpe1_U_compressor_ScanCompression_mode/PRECTSFE_OFC101645_n372 I } -prefix ANT_FIX_0531_1 -diodeCell ANTENNAPADBWP240H11P57CPDLVT attachDiode -pin {u0_psub_vpe1_raw/u_vpelite_wrapper/u_psub_aptx/aptx_vpe1_u_psub_bdf/u_psub_bdf_multi_ch/genblk2_3__bdf_single_channel_inst/psub_bdf_b_csr_ins/PRECTSFE_OFC219338_hdma_rd_cnt_19 I } -prefix ANT_FIX_0531_2 -diodeCell ANTENNAPADBWP240H11P57CPDLVT 2.之后将filler删除掉再refince一下新加的这两颗diode cell deleteFiller -prefix GUC_FILLER refinePlace -inst {u0_psub_vpe1_raw/u_vpelite_wrapper/u_psub_aptx/aptx_vpe1_u_psub_bdf/u_psub_bdf_multi_ch/genblk2_3__bdf_single_channel_inst/psub_bdf_b_csr_ins/ANT_FIX_0531_2_PRECTSFE_OFC219338_hdma_rd_cnt_19_I psub_vpe1_U_compressor_ScanCompression_mode/ANT_FIX_0531_1_PRECTSFE_OFC101645_n372_I} |
|||||||||||||||||
LVS/ERC 出现违例时候,如果有统一的VSS、 VDD的short(open),且发生在clamp与block连接上 | 此时出现的open可是clamp的power作为独立电源未与block电源相连,因此需要将独立电源用最高层走线连接,保持供电. | |||||||||||||||||
Tweaker中使用这些指令可以解绝对应问题 | set enable_partial_blockages false set slk_fix_hold_at_sink_pin_only true set slk_ignore_drv true set slk_fix_hold_watch_driving_pin_slack false set slk_fix_path_watch_timing_window_only true set slk_fix_hold_watch_setup_timing_window true set slk_fix_hold_watch_hold_timing_window true set slk_fix_hold_high_effort_flow true |
||||||||
已关注本身的margin,插入自己选中的cell(buffer/delay) | set slk_fix_hold_watch_driving_pin_slack false | ||||||||
保存已布局好的floorplan的pins、memory、size的位置 | writeFPlanScript -sections pins -fileName DATA/pins.tcl writeFPlanScript -sections blocks -fileName DATA/memory.tcl writeFPlanScript -sections boundary -fileName DATA/size.tcl
|
||||||
删除Cap Filler | deleteFiller -prefix guc | ||||||
删除WELLTAP | |||||||
删除全部电源线 | editDelete -net {VDD VSS} -type Special | ||||||
重新加电源线 | globalNetConnect VDD -pin VDDPE -type pgpin -override | ||||||
globalNetConnect VDD -pin VDDCE -type pgpin -override | |||||||
文件保存 | saveDesign DATA/20220629_welltap/410_fp.enc -tcon | ||||||
删除Via | editSelect -via_cell name -object_type {Via} | ||||||
选中cell的类型进行更改 | dbset selected.status + 类型 | ||||||
删除IOBuffer | set insts [dbget top.insts.name GUC_attach*] setEcoMode -refinePlace false -updateTiming false -honorDontTouch false -honorFixedStatus false foreach inst $insts {ecoDeleteRepeater -inst $inst} |
||||||
添加menmory周围和Pin脚周围的PlacementBlockage | setFinishFPlanMode -direction y -activeObj {core macro macroHalo hardblkg partialblkg softblkg} finishFloorplan -fillPlaceBlockage partial 25 -density 30 -deadArea 5000 setFinishFPlanMode -direction x -activeObj {core macro macroHalo hardblkg partialblkg softblkg} finishFloorplan -fillPlaceBlockage partial 25 -density 30 -deadArea 5000 |
||||||
针对某个文件tickrt时候build期间的confirm选择跳过 | wfm ticket build xxx.tivket -skip_verify | ||||||
选择相对应的module进行筛选 | selectModule + cellname | ||||||
出现TCIC问题 | setFPlanMode -snapBlockFGrid finfetmanufacturing;(修Grid) setFPMode -snapBlockGrid LayerTrack(修Track);删除Row等再关闭pin以及layer,进行移动memory的位置,调整和Grid的网格一致 | ||||||
将memory各个模块的组别写成tcl脚本 | 1.foreach name [dbget selected.name ] {echo $name >> SRAM.group.tcl}; 2.mv SRAM.group.tcl [dbgDesignName].SRAM.group.20220727_V1.tcl | ||||||
每个Iobuffer之间需要保留一些间距(IOBuffer.tcl需要添加) | specifyCellPad $inPinBuf -left 10 -right 10 -bottom 1 specifyCellPad $outPinBuf -left 10 -right 10 -bottom 1 specifyCellPad $inCKPinBuf -left 10 -right 10 -bottom 1 specifyCellPad $outCKPinBuf -left 10 -right 10 -bottom 1 |
||||||
在添加完IOBufer之后需要进行添加partial blackage,并且保持间距 | setFinishFPlanMode -direction y -activeObj {core macro macroHalo hardblkg partialblkg softblkg} finishFloorplan -fillPlaceBlockage partial 25 -density 30 -deadArea 5000 setFinishFPlanMode -direction x -activeObj {core macro macroHalo hardblkg partialblkg softblkg} finishFloorplan -fillPlaceBlockage partial 25 -density 30 -deadArea 5000 |
||||||
410阶段需要在IOBuffer脚本里添加间距的指令 | 添加完成后需要先添加partial blockage,然后添加45%的soft(注意一段一段的添加) | ||||||
检查memory的pin在不在track上 | /projusers/xe025aba/RUN/calf/trial/dpe_mep/Rel_85_V0.1/common/autockeckpin_track.tcl | ||||||
抓取模块进行分组,之后倒进TCL脚本文件里 | foreach name [dbget selected.name ] {echo $name >> SRAM.group.tcl}
mv SRAM.group.tcl [dbgDesignName].SRAM.group.20220727_V1.tcl |
||||||
在重启DB后会出现添加WELLTAP不成功 | 这个时候需要重新source setup.tcl文件 | ||||||
改变size的大小 | changeFloorplan -coreToEdge 2.1945 2.16 2.1945 -noSnapToGrid | ||||||
暂无评论内容