随笔笔记记录6.15

1.TSMC PPNN的特点:delay比普通的cell要小一些,但是周围自带blockage,导致area增大,要注意其与其他cell的drc问题

2.saveNetlist的命令

保存的netlist用于PT

 保存的Netlist用于lvs

产生的hcell文件可以简化图形与layout的层次,减少lvs的时间 

 保存的netlist用于low power/带PG的 FM

 3.checkPlace检查三个问题

core区域外的cell;overlap;placed inst;density

4.r/gets/regsub的使用

set ff [open ./M1.def r]

set FF [opne ./M2.def w]

while {[gets $ff line] != -1} {

regsub "M1" $line "M2" line

regsub "M2 64" $line "M2 144" line

puts $FF $line

}

close $ff

close $FF

5.module avial/module unload ***/module load

6.string match:用于模式匹配

用法:string match pattern string   pattern:匹配模式,可以包含通配符;string :要进行匹配的变量。

例子:string match “TAPCELL*” $cell     若匹配成功,则返回1

7.report_constraint命令

innovus:

report_constraint -drv_violation_type max_transition

PT:

report_constraint -all_violators -max_delay
-max_transition -min_transition
-max_capacitance -min_capacitance
-max_fanout -min_fanout
-max_delay -min_delay
-clock_gating_setup -clock_gating_hold

report_timing :(PT)

-nets选项在路径报告中显示每个单元的扇出,而-capacitance 和-transition_ time 选项分别报告连线上的总电容和每个驱动或负载引脚的转换时间(摆率)。

8.得到某一pin的transition

report_property [get_pins $pin]

报告得到的slew_max即为该pin的transiton time

9.高亮某一类cell

highlight -color red [get_cells spr_1/spr_gate*]

10.将dbget 得到的内容写入一个文件

redirect dont_touch_insts.rpt {puts [dbget [dbget top.insts.dontTouch true -p ].name]}

将dontTouch设为size_only

dbSet [dbGetInstByCell $inst].dontTouch sizeOK

11.得到rblkg的坐标:dbget top.fPlan.rBlkgs.shape.rect

选中一条net的shielding: dbSelectObj [dbget [dbget [dbget top.nets.name $net -p ].shielNets.name VSS -p ].sWires.shieldNet.name $net -p2]

12.查看lib是否完整可以使用cmd:checkTimingLibrary

在init.log中定位到Reading verilog查看是否缺少lef

13.find 的使用

set out_file [exec find $path -type f -name "*tt85*"]

foreach line $out_file {

puts "\"$line\","

}

14.setNanoRouteMode -earlyGlobalSupplyScaleFactor 1

调为0.85会使得overflo变大

15.插入buf的方法:ecoAddRepeater -net *** -loc {} -cell ***

新的inst的名字前缀由setEcoMode -prefixName决定。

更换VT类型及size cell:ecoChangeCell -inst $inst_name(更换前的inst的name) -cell $cell (更换后的cell的base name)

16.T12工艺

PG nets:M1-M2,M10-M11,M3/M6/M9均有

clock:M3-M9

signal net :M3-M9

17.PT中在report_timing 中加上“input_pins”即可查看net delay(在输入pin下)

18.抽取lef,主要可以知道三个东西

高层PG;pin的位置;fp的形状

19.innovus中调取calibre

source /tools/mentor/calibre_2020.1/aoi_cal_2020.1_17.9/lib/cal_enc.tcl

20.选出所有的ICG cell :filter_collection [all_registers] "is_intergrated_clock_gating_cell==true"

21.history keep 200

需要在开始的时候就设置好

22.grep的使用

在指定的目录下查找指定的内容:grep -r “aaa” */*/user.tcl

23.gvim操作命令

:v//d 不删除含有/ /的行,删除其他行
:g//d   删除含有/ /的行

:%s/^/"/   在行首加“

:%s/$/",/   在行末加”,

24.三种删除线

(1)editDelete 删除线,线上的孔和vio,不影响逻辑链接

(2)deleteNet:删除逻辑链接,慎重删除

(3)手动删除:选中删除,命令“deleteSelectedFromFPlan”

25.如果在PT中加入一些cell。再使用report_annoted -list_not_annoted -pin_to_pins,会报告出pin_to_pins的net未反标。

26.info exists varName

if {[info exists x]} { 

27.diff -b(忽略空格) -i(忽略大小写)

28.TCL中等于与不等于变量操作符

if{$vars(STD_CELL_TRACK) eq "6T"}

不等于为ne

29.specifyCellEdgeSpacing EDFQD2BWP_R OAI32D2BWP_L 0.096

specifyCellEdgeType -cell OAI32D2BWP... -left OAI32D2BWP_L

解释:对cell OAI32D2BWP...类的cell的左侧赋予OAI32D2BWP_L的DRC_rule,即OAI32D2BWP_L的左侧与EDFQD2BWP_R的右侧的距离不能超过0.096

30.将IO buff设为dontTouch

dbSet [dbget top.insts.name *iobuffer* -p ].dontTouch true

31.获取design中所有的ICG enable pin

get_pins -quiet -hierarchical -filter "is_clock_gating_enable==true"

32.python中获取当前路径

os.getcwd()

33.IR drop的dirty net概念

MF:missing Frequency 无clock信息,如IO buffer的load net。Tie cell的load net(只有Z pin情况下)

MDM:missinf driver model 仅有Zpin的tie cell的load net

MTT:missing transition time  IObuffer 的output port的net

34.setEcoMode的batchMode选项设置成true是开启批量处理模式,所以run time会降很多。比如在timing eco阶段读入eco脚本时都要开启这个,否则你读入一万行的脚本可能要执行10个小时。 而且做eco时除了设置batchMode 外,还需要设置refinePlace和updateTiming为false。读入脚本成功后必须reset这个eco mode。 记住这个ecoMode仅仅用在读取eco脚本时。执行时序优化和绕线时必须reset。

35.fix via

修复PG net上的via vio。包括short/mincut/minstep。在verify_drc后可以使用以下命令修复:

fixVia -minstep

fixVia -short

fixVia -mincut

脚本修复drc的思路:

  set drc_boxes [dbget [dbget top.markers.SubType Minstep -p ].box]

  foreach box $drc_boxes {

  deselectAll

  select_obj [dbQuery -areas $box -objType sViaInst]

  editeDelete -selected

  }

最后再ecoRoute

36.TCL中glob的用法

glob pattern :用于匹配文件名的模式

例子:glob *.tcl  /  glob /home/user/*.tcl

返回当前目录或指定目录下以.tcl结尾的文件

37.设置绕线的次数

setNanoRoute -drouteEndInteration 20

38.get_db insts -if {.is_buffer || .is_inverter}

如果还想继续加上运算符,可以在外面嵌套一层

get_db [get_db insts -if {.is_buffer==true || .is_inverter==true}] -if .is_combinational==true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值