admin管理员组文章数量:1598077
2024年6月7日发(作者:)
}
deselectAll
if {[dbGet -e $name] != ""} {
select_obj [dbGet $name]
set ref [dbget [dbget -p $name].]
echo "Zoom to cell: $name REF: $ref"
} elseif {[dbget -e $name] != ""} {
select_obj [dbget $name]
set ref [dbget [dbget -p2 $name].]
echo "Zoom to pin: $name REF: $ref"
} elseif {[dbget -e $name] != ""} {
selectPin [dbget $name]
echo "Zoom to port: $name"
} elseif {[dbget -e $name] != ""} {
select_obj [dbget $name]
echo "Zoom to net: $name"
} else {
echo "No objects (cell,pin,net) match to $name"
}
zoomSelected
}
proc get_selected {} {
dbget
}
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_spac
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 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 ] {
if {[dbget [dbget -p $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 $pin]
set inst_pt_x [dbget $pin__x]
set inst_pt_y [dbget $pin__y]
set cell_pin_layer_p [dbget -p2 $pin_ M1]
set cell_pin_llx [dbget $cell_pin_layer__llx]
set cell_pin_lly [dbget $cell_pin_layer__lly]
set cell_pin_urx [dbget $cell_pin_layer__urx]
set cell_pin_ury [dbget $cell_pin_layer__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 ]
set layer [dbget ]
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 ] 0]
set layer2 [lindex [dbget ] 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 ] 0]
set layer2 [lindex [dbget ] 1]
set llx [lindex [dbget _llx] 0 ]
set lly [lindex [dbget _lly] 0 ]
set urx [lindex [dbget _urx] 0 ]
set ury [lindex [dbget _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 n"
-define_args {
{-box "{
}
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 $ut 1 -p1].]
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 $inst]._x]
return $h
}
proc get_pin_net {pin} {
set net [dbget [dbGet -p $pin].]
return $net
}
proc get_select_pin_net {} {
set net [dbget ]
return $net
}
setPreference SelectNetWhenSelectPin 0
proc user_assignSigToBump {} {
set net [join [dbget ]]
set inst [dbget ]
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 ] {
set net_name [dbget [dbget $bump_name -p].]
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
版权声明:本文标题:innovus自学小技巧之gui小配置 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1717730978a603612.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论