1. innovus同时显示full_name和ref_name
2.innovus的std cell显示的颜色配置成icc颜色一样
3.innovus配置快捷键成和Icc一样
d 删除
bindKey d "deleteSelectedFromFPlan"
esc 退出当前编辑状态
bindKey esc "uiSetTool select"
m 移动
bindKey m "uiSetTool move"
set enc_source_continue_on_error 1 #set enc_source_verbose 1 set_global timing_continue_on_error 1 setMultiCpuUsage -localCpu 4 proc zto {coor_x coor_y} { zoomBox $coor_x $coor_y [expr $coor_x + 0.01] [expr $coor_y + 0.01] } alias zbx zoomBox bindKey Escape "uiSetTool select" bindKey m "uiSetTool move" bindKey d "deleteSelectedFromFPlan" proc chg {name} { if {[llength $name] > 1} { echo "parameter errer,more than one input parameter " } deselectAll if {[dbGet -e top.insts.name $name] != ""} { select_obj [dbGet top.insts.name $name] set ref [dbget [dbget -p top.insts.name $name].cell.name] echo "Zoom to cell: $name REF: $ref" } elseif {[dbget -e top.insts.InstTerms.name $name] != ""} { select_obj [dbget top.insts.InstTerms.name $name] set ref [dbget [dbget -p2 top.insts.instTerms.name $name].cell.name] echo "Zoom to pin: $name REF: $ref" } elseif {[dbget -e top.terms.name $name] != ""} { selectPin [dbget top.terms.name $name] echo "Zoom to port: $name" } elseif {[dbget -e top.nets.name $name] != ""} { select_obj [dbget top.nets.name $name] echo "Zoom to net: $name" } else { echo "No objects (cell,pin,net) match to $name" } zoomSelected } proc get_selected {} { dbget selected.name } proc check_open_short {} { clearDrc set_verify_drc_mode -disable_rules {color cut_spacing enclosure eol_spacing jog2jog_spacing min_area min_cut min_step out_of_die protrusion} -check_implant false -ignore_cell_blockage true -check_routing_halo false -check_ndr_spacing false verify_connectivity -type regular -remove_old_open_vio -use_new_open_vio -no_antenna -no_unconn_pin -no_unrouted_net verify_drc -check_only regular -exclude_pg_net violationBrowser -short -connectivity -no_display_false -displayByLayer set_verify_drc_mode -reset } proc size_cell {size_inst size_cell} { ecoChangeCell -inst $size_inst -cell $size_cell } proc insert_buffer {insert_term buf_type} { ecoAddRepeater -term $insert_term -cell $buf_type -relativeDistToSink 1 } proc remove_buffer {buf_inst} { ecoDeleteRepeater -inst $buf_inst } proc remove_net_routing {netName} { editDelete -net $netName } alias s size_cell alias i insert_buffer proc ecomode {value_num} { if {$value_num == "1"} { setEcoMode -batchMode false setEcoMode -reset setEcoMode -updateTiming false -refinePlace false -batchMode true -honorDontUse false -honorDontTouch false -honorFixedStatus false -honorFixedNetWire false getEcoMode } elseif {$value_num == "0"} { setEcoMode -batchMode false setEcoMode -reset getEcoMode } else { echo "value 0 1 needed" } } proc snap {value_num} { if {$value_num == "1"} { setFPlanMode -snapConstraintGrid inst setFPlanMode -snapBlockGrid inst setFPlanMode -snapPlaceBlockageGrid inst setEditMode -snap_objects_to_track {patch regular} setEditMode -snap_to {pg pin} setEditMode -via_auto_snap 1 setEditMode -disable_snap 0 } elseif {$value_num == "0"} { setFPlanMode -snapConstraintGrid manufacturing setFPlanMode -snapBlockGrid manufacturing setFPlanMode -snapPlaceBlockageGrid manufacturing setEditMode -type regular setEditMode -snap_objects_to_track patch setEditMode -snap_to pg setEditMode -via_auto_snap 0 setEditMode -disable_snap 1 } else { echo "value 0 1 needed" } } #set_global timing_constraint_enable_group_path_resetting false #set_global timing_enable_path_group_priority false history keep 1000 set_global report_timing_format {hpin cell delay arrival slew load fanout aocv_derate user_derate} #get_property [report_timing -collection -max_paths 10 -path_group reg2reg] slack #set latency 0 if {0} { set_interactive_constraint_modes func source $func_sdc_files set_interactive_constraint_modes bypass source $bypass_sdc_files set_interactive_constraint_modes scan source $scan_sdc_files set_interactive_constraint_modes {} } if {0} { foreach CKpin [dbget top.insts.instTerms.name inst_adrctl_write_path_tb/inst_adrctl_bit_macro_*/inst_entry*/hic_dnt_out_reg/CKN] { set_ccopt_property insertion_delay 0.5 -pin $CKpin Puts "set_insertion_delay $CKpin: [get_ccopt_property insertion_delay -pin $CKpin]" } } proc delete_select {} { foreach selectInst [dbget selected.name ] { if {[dbget [dbget -p top.insts.name $selectInst].isPhysOnly]==1} { deleteInst $selectInst } else { echo "WARN is not a physonly cell" } } redraw } bindKey D "delete_select" win off proc get_pinshape_box {pins} { set pin_shape_box [list ] foreach pin $pins { set pin_p [dbget -p top.insts.instTerms.name $pin] set inst_pt_x [dbget $pin_p.inst.pt_x] set inst_pt_y [dbget $pin_p.inst.pt_y] set cell_pin_layer_p [dbget -p2 $pin_p.cellTerm.pins.layerShapeShapes.layer.name M1] set cell_pin_llx [dbget $cell_pin_layer_p.shapes.rect_llx] set cell_pin_lly [dbget $cell_pin_layer_p.shapes.rect_lly] set cell_pin_urx [dbget $cell_pin_layer_p.shapes.rect_urx] set cell_pin_ury [dbget $cell_pin_layer_p.shapes.rect_ury] set pin_shape_llx [expr $cell_pin_llx + $inst_pt_x] set pin_shape_lly [expr $cell_pin_lly + $inst_pt_y] set pin_shape_urx [expr $cell_pin_urx + $inst_pt_x + 10] set pin_shape_ury [expr $cell_pin_ury + $inst_pt_y + 10] set pin_shape_box "$pin_shape_llx $pin_shape_lly $pin_shape_urx $pin_shape_ury" } return $pin_shape_box } proc get_coord {} { set args [uiGetCoord] } proc create_wrie {} { set net [dbget selected.net.name] set layer [dbget selected.layer.name] setEditMode -status routed -layer $layer -net $net -type patch set args [uiGetBox] set x_start [lindex $args 0] set y_start [lindex $args 1] set x_end [lindex $args 2] set y_end [lindex $args 3] editAddRoute [concat $x_start $y_start] editAddRoute [concat $x_end $y_end] editCommitRoute [concat $x_end $y_end] uiSetTool select } proc usereditPowerVia {} { set layer1 [lindex [dbget selected.layer.name] 0] set layer2 [lindex [dbget selected.layer.name] 1] editPowerVia -skip_via_on_pin Standardcell -add_vias 1 -bottom_layer $layer1 -top_layer $layer2 -area [uiGetBox] -orthogonal_only false } #bindKey p "usereditPowerVia" proc editCut {args} { parse_proc_arguments -args $args options if {[info exists options(-box)]} { set cut_box "$options(-box)" } else { set cut_box [uiGetBox] } deselectAll editCutWire -only_visible_wires -box $cut_box set layer1 [lindex [dbget selected.layer.name] 0] set layer2 [lindex [dbget selected.layer.name] 1] set llx [lindex [dbget selected.box_llx] 0 ] set lly [lindex [dbget selected.box_lly] 0 ] set urx [lindex [dbget selected.box_urx] 0 ] set ury [lindex [dbget selected.box_ury] 0 ] editDelete -selected select_obj [dbQuery -areas "[expr $llx-0.001] $lly $llx $ury " -layers "$layer1 $layer2" -objType sWire ] select_obj [dbQuery -areas "$urx $lly [expr $urx+0.001] $ury " -layers "$layer1 $layer2" -objType sWire ] editPowerVia -skip_via_on_pin Standardcell -delete_vias 1 -bottom_layer $layer1 -top_layer $layer2 -selected_wires true -orthogonal_only false editPowerVia -skip_via_on_pin Standardcell -add_vias 1 -bottom_layer $layer1 -top_layer $layer2 -selected_wires true -orthogonal_only false } define_proc_arguments editCut -info "editcut wire and via " -define_args { {-box "{<x1 y1 x2 y2>}" "Specify the lower left and upper right coordinates of the cutting" box {optional}} } proc size_shape {} { dbSet [dbGet selected].width 0.48 shiftObject -side down -distance 0.16 editStretch x -0.2 low -no_conn 1 } proc driver_inst {pin} { set obj [dbGetObjByName $pin] set name [dbGet [dbGet $obj.net.instTerms.isOutput 1 -p1].inst.name] return $name } proc distance {inst0 inst1} { set x0 [dbGet [dbGetObjByName $inst0].pt_x] set y0 [dbGet [dbGetObjByName $inst0].pt_y] set x1 [dbGet [dbGetObjByName $inst1].pt_x] set y1 [dbGet [dbGetObjByName $inst1].pt_y] set z [expr abs($x0 - $x1) + abs($y0 - $y1)] return $z } proc get_inst_x {inst} { set x [dbGet [dbGetObjByName $inst].pt_x] return $x } proc get_inst_urx {inst} { set urx [dbGet [dbGetObjByName $inst].box_urx] return $urx } proc get_inst_y {inst} { set y [dbGet [dbGetObjByName $inst].pt_y] return $y } proc get_inst_ury {inst} { set ury [dbGet [dbGetObjByName $inst].box_ury] return $ury } proc get_inst_h {inst} { set h [dbGet [dbGet -p top.insts.name $inst].cell.size_x] return $h } proc get_pin_net {pin} { set net [dbget [dbGet -p top.insts.instTerms.name $pin].net.name] return $net } proc get_select_pin_net {} { set net [dbget selected.net.name] return $net } setPreference SelectNetWhenSelectPin 0 proc user_assignSigToBump {} { set net [join [dbget selected.net.name]] set inst [dbget selected.inst.name] deselectAll set area [uiGetBox] set bump_name [dbget [dbQuery -areas $area -objType bump].name] assignSigToBump -bumps $bump_name -net $net addBumpConnectTargetConstraint -netName $net -bump $bump_name -instName $inst select_bump -bumps $bump_name fcroute -selected_bump -layerChangeTopLayer AP -layerChangeBotLayer AP -type signal -routeWidth 16 deselect_bump redraw } bindKey p "user_assignSigToBump" proc write_assigned {tclfile} { set fp [open $tclfile w+] deselectAll select_bump -assigned foreach bump_name [dbget selected.name] { set net_name [dbget [dbget top.bumps.name $bump_name -p].net.name] puts $fp "assignSigToBump -bumps $bump_name -net $net_name" } close $fp deselectAll } proc restore_design {dbs} { regexp -all {dbs/(S+.)(.*enc)} $dbs i match_topname k regsub {..*} $match_topname "" topname restoreDesign ${dbs}.dat $topname -noTiming } setPreference InstanceText InstanceMaster setLayerPreference stdCell -color {#d28cf0} -stipple none setLayerPreference io -stipple none setLayerPreference areaIo -stipple none setPreference ShowUnplacedInst 1 setPreference ShowCrossLineWhenSelect 0 setPreference HiliteNetWhenSelectPin 0 setPreference InstFlightLine 1 setPreference FlightLineInMove 0 setPreference FromOutputPin 1 setPreference SingleConnectionColor #ffffff setPreference InputConnectionColor #ffffff setPreference MediumConnectionColor #aaff00 setLayerPreference pinObj -isVisible 1 -isSelectable 1 setLayerPreference violation -isSelectable 0 setPreference HiliteNetWhenSelectWire 0 setPreference TextDisplaySize s setPreference ShowModuleText 0 setPreference SelectNetWhenSelectPin 1 setLayerPreference hinst -color #000000 -stipple none setLayerPreference guide -color green -stipple none setLayerPreference fence -color yellow -stipple none setLayerPreference region -color red -stipple none setLayerPreference text -color {#d28cf0} setPreference ShowFlightLineTermMark 0