set_load for all corners
This commit is contained in:
parent
6aad0b073c
commit
598d5ed0fe
|
|
@ -3472,8 +3472,16 @@ Sta::setNetWireCap(Net *net,
|
||||||
const MinMaxAll *min_max,
|
const MinMaxAll *min_max,
|
||||||
float cap)
|
float cap)
|
||||||
{
|
{
|
||||||
for (MinMax *mm : min_max->range())
|
if (corner == nullptr) {
|
||||||
sdc_->setNetWireCap(net, subtract_pin_cap, corner, mm, cap);
|
for (Corner *corner : *corners_) {
|
||||||
|
for (MinMax *mm : min_max->range())
|
||||||
|
sdc_->setNetWireCap(net, subtract_pin_cap, corner, mm, cap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (MinMax *mm : min_max->range())
|
||||||
|
sdc_->setNetWireCap(net, subtract_pin_cap, corner, mm, cap);
|
||||||
|
}
|
||||||
delaysInvalidFromFanin(net);
|
delaysInvalidFromFanin(net);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,12 +167,13 @@ proc_redirect report_lib_cell {
|
||||||
check_argc_eq1 "report_lib_cell" $args
|
check_argc_eq1 "report_lib_cell" $args
|
||||||
set arg [lindex $args 0]
|
set arg [lindex $args 0]
|
||||||
set cell [get_lib_cell_warn "lib_cell" $arg]
|
set cell [get_lib_cell_warn "lib_cell" $arg]
|
||||||
|
set corner [cmd_corner]
|
||||||
if { $cell != "NULL" } {
|
if { $cell != "NULL" } {
|
||||||
report_lib_cell_ $cell
|
report_lib_cell_ $cell $corner
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc report_lib_cell_ { cell } {
|
proc report_lib_cell_ { cell corner } {
|
||||||
global sta_report_default_digits
|
global sta_report_default_digits
|
||||||
|
|
||||||
set lib [$cell liberty_library]
|
set lib [$cell liberty_library]
|
||||||
|
|
@ -198,7 +199,7 @@ proc report_lib_cell_ { cell } {
|
||||||
if { $func != "" } {
|
if { $func != "" } {
|
||||||
set func " function=$func"
|
set func " function=$func"
|
||||||
}
|
}
|
||||||
report_line " $port_name [liberty_port_direction $port]$enable$func[port_capacitance_str $port $sta_report_default_digits]"
|
report_line " $port_name [liberty_port_direction $port]$enable$func[port_capacitance_str $port $corner $sta_report_default_digits]"
|
||||||
}
|
}
|
||||||
$iter finish
|
$iter finish
|
||||||
}
|
}
|
||||||
|
|
@ -223,39 +224,47 @@ proc report_cell_ { cell } {
|
||||||
$iter finish
|
$iter finish
|
||||||
}
|
}
|
||||||
|
|
||||||
define_cmd_args "report_pin" {pin_path [> filename] [>> filename]}
|
define_cmd_args "report_pin" {[-corner corner] [-digits digits] pin\
|
||||||
|
[> filename] [>> filename]}
|
||||||
|
|
||||||
proc_redirect report_pin {
|
proc_redirect report_pin {
|
||||||
|
global sta_report_default_digits
|
||||||
|
|
||||||
|
parse_key_args "report_pin" args keys {-corner -digits} \
|
||||||
|
flags {-connections -verbose -hier_pins}
|
||||||
|
set corner [parse_corner_or_default keys]
|
||||||
|
set digits $sta_report_default_digits
|
||||||
|
if { [info exists keys(-digits)] } {
|
||||||
|
set digits $keys(-digits)
|
||||||
|
}
|
||||||
check_argc_eq1 "report_pin" $args
|
check_argc_eq1 "report_pin" $args
|
||||||
set pin_path [lindex $args 0]
|
set pin_path [lindex $args 0]
|
||||||
set pin [get_pin_warn "pin" $pin_path]
|
set pin [get_pin_warn "pin" $pin_path]
|
||||||
|
|
||||||
if { $pin != "NULL" } {
|
if { $pin != "NULL" } {
|
||||||
report_pin_ $pin
|
report_pin_ $pin $corner $digits
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
define_cmd_args "report_net" \
|
define_cmd_args "report_net" \
|
||||||
{[-connections] [-verbose] [-digits digits] [-hier_pins]\
|
{[-connections] [-verbose] [-corner corner] [-digits digits] [-hier_pins]\
|
||||||
net_path [> filename] [>> filename]}
|
net_path [> filename] [>> filename]}
|
||||||
|
|
||||||
# -hpins to show hierarchical pins
|
# -hpins to show hierarchical pins
|
||||||
proc_redirect report_net {
|
proc_redirect report_net {
|
||||||
global sta_report_default_digits
|
global sta_report_default_digits
|
||||||
|
|
||||||
parse_key_args "report_net" args keys {-corner -digits -significant_digits} \
|
parse_key_args "report_net" args keys {-corner -digits} \
|
||||||
flags {-connections -verbose -hier_pins}
|
flags {-connections -verbose -hier_pins}
|
||||||
check_argc_eq1 "report_net" $args
|
check_argc_eq1 "report_net" $args
|
||||||
|
|
||||||
set corner [parse_corner keys]
|
set corner [parse_corner_or_default keys]
|
||||||
set digits $sta_report_default_digits
|
set digits $sta_report_default_digits
|
||||||
if { [info exists keys(-digits)] } {
|
if { [info exists keys(-digits)] } {
|
||||||
set digits $keys(-digits)
|
set digits $keys(-digits)
|
||||||
}
|
}
|
||||||
if { [info exists keys(-significant_digits)] } {
|
|
||||||
set digits $keys(-significant_digits)
|
|
||||||
}
|
|
||||||
|
|
||||||
set connections [info exists flags(-connections)]
|
set connections [info exists flags(-connections)]
|
||||||
set verbose [info exists flags(-verbose)]
|
set verbose [info exists flags(-verbose)]
|
||||||
|
|
@ -279,11 +288,6 @@ proc_redirect report_net {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc report_net_ { net } {
|
|
||||||
global sta_report_default_digits
|
|
||||||
report_net1 $net 1 1 1 $corner $sta_report_default_digits
|
|
||||||
}
|
|
||||||
|
|
||||||
proc report_net1 { net connections verbose hier_pins corner digits } {
|
proc report_net1 { net connections verbose hier_pins corner digits } {
|
||||||
report_line "Net [get_full_name $net]"
|
report_line "Net [get_full_name $net]"
|
||||||
if {$connections} {
|
if {$connections} {
|
||||||
|
|
@ -379,7 +383,7 @@ proc report_net_pin { pin verbose corner digits } {
|
||||||
if { $verbose } {
|
if { $verbose } {
|
||||||
set liberty_port [$pin liberty_port]
|
set liberty_port [$pin liberty_port]
|
||||||
if { $liberty_port != "NULL" } {
|
if { $liberty_port != "NULL" } {
|
||||||
set cap [port_capacitance_str $liberty_port $digits]
|
set cap [port_capacitance_str $liberty_port $corner $digits]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
report_line " [get_full_name $pin] [pin_direction $pin] ($cell_name)$cap[pin_location_str $pin]"
|
report_line " [get_full_name $pin] [pin_direction $pin] ($cell_name)$cap[pin_location_str $pin]"
|
||||||
|
|
@ -424,12 +428,10 @@ proc pin_location_str { pin } {
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
proc report_pin_ { pin } {
|
proc report_pin_ { pin corner digits } {
|
||||||
global sta_report_default_digits
|
|
||||||
|
|
||||||
set liberty_port [$pin liberty_port]
|
set liberty_port [$pin liberty_port]
|
||||||
if { $liberty_port != "NULL" } {
|
if { $liberty_port != "NULL" } {
|
||||||
set cap [port_capacitance_str $liberty_port $sta_report_default_digits]
|
set cap [port_capacitance_str $liberty_port $corner $digits]
|
||||||
} else {
|
} else {
|
||||||
set cap ""
|
set cap ""
|
||||||
}
|
}
|
||||||
|
|
@ -463,7 +465,7 @@ proc pin_direction_desc { pin } {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Do not preceed this field by a space in the caller.
|
# Do not preceed this field by a space in the caller.
|
||||||
proc port_capacitance_str { liberty_port digits } {
|
proc port_capacitance_str { liberty_port corner digits } {
|
||||||
set cap_r_min [$liberty_port capacitance "rise" "min"]
|
set cap_r_min [$liberty_port capacitance "rise" "min"]
|
||||||
set cap_r_max [$liberty_port capacitance "rise" "max"]
|
set cap_r_max [$liberty_port capacitance "rise" "max"]
|
||||||
set cap_f_min [$liberty_port capacitance "fall" "min"]
|
set cap_f_min [$liberty_port capacitance "fall" "min"]
|
||||||
|
|
|
||||||
|
|
@ -2491,7 +2491,7 @@ proc set_load { args } {
|
||||||
set pin_load [info exists flags(-pin_load)]
|
set pin_load [info exists flags(-pin_load)]
|
||||||
set wire_load [info exists flags(-wire_load)]
|
set wire_load [info exists flags(-wire_load)]
|
||||||
set subtract_pin_load [info exists flags(-subtract_pin_load)]
|
set subtract_pin_load [info exists flags(-subtract_pin_load)]
|
||||||
set corner [parse_corner_or_default keys]
|
set corner [parse_corner_or_all keys]
|
||||||
set min_max [parse_min_max_all_check_flags flags]
|
set min_max [parse_min_max_all_check_flags flags]
|
||||||
set tr [parse_rise_fall_flags flags]
|
set tr [parse_rise_fall_flags flags]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue