Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 11 additions & 14 deletions flow/util/write_rc_helper.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
proc fetch_nets_rc { var_name } {
upvar 1 $var_name var

foreach net [get_nets -hierarchical *] {
set net_name [get_full_name $net]
set wire_res [net_wire_res $net]
set wire_cap [net_wire_cap $net]
set var($net_name) [list $wire_res $wire_cap]
foreach db_net [[ord::get_db_block] getNets] {
set sta_net [sta::db_net_to_sta $db_net]
set wire_res [net_wire_res $sta_net]
set wire_cap [net_wire_cap $sta_net]
set var([$db_net getName]) [list $wire_res $wire_cap]
}
}

Expand Down Expand Up @@ -47,15 +47,14 @@ proc write_nets_rc_csv { filename grt_var rcx_var } {
puts $stream ""

# Then, write the parasitics data of each net.
foreach net [get_nets -hierarchical *] {
set db_net [sta::sta_to_db_net $net]
foreach db_net [[ord::get_db_block] getNets] {
set type [$db_net getSigType]

if { !([string equal $type "CLOCK"] || [string equal $type "SIGNAL"]) } {
continue
}

set net_name [get_full_name $net]
set net_name [$db_net getName]
set net_type [expr { $type eq "CLOCK" ? "clock" : "signal" }]

lassign $grt_net_name_to_rc($net_name) grt_net_res grt_net_cap
Expand All @@ -76,8 +75,7 @@ proc write_nets_rc_csv { filename grt_var rcx_var } {
proc fetch_segments_rc { net_to_segments_var } {
upvar 1 $net_to_segments_var net_to_segments

foreach sta_net [get_nets -hierarchical *] {
set db_net [sta::sta_to_db_net $sta_net]
foreach db_net [[ord::get_db_block] getNets] {
set type [$db_net getSigType]

if { !([string equal $type "CLOCK"] || [string equal $type "SIGNAL"]) } {
Expand Down Expand Up @@ -122,7 +120,7 @@ proc fetch_segments_rc { net_to_segments_var } {
lappend seen_shape_ids $shape_id
}

set net_to_segments([get_full_name $sta_net]) $segments
set net_to_segments([$db_net getName]) $segments
}
}

Expand All @@ -143,14 +141,13 @@ proc write_segments_rc_csv { filename net_to_segments_var } {
puts $stream ""

# Then, write the parasitics data of each wire segment.
foreach sta_net [get_nets -hierarchical *] {
set net_name [get_full_name $sta_net]
foreach db_net [[ord::get_db_block] getNets] {
set net_name [$db_net getName]

if { ![info exists net_to_segments($net_name)] } {
continue
}

set db_net [sta::sta_to_db_net $sta_net]
set type [$db_net getSigType]
set net_type [expr { $type eq "CLOCK" ? "clock" : "signal" }]

Expand Down
Loading