Skip to content

Commit 213ea13

Browse files
committed
Merge remote-tracking branch 'private/master' into secure-gpl-extend-iter-by-routability
2 parents 00d111e + d7c7e73 commit 213ea13

File tree

8 files changed

+57
-40
lines changed

8 files changed

+57
-40
lines changed

docs/user/FlowVariables.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ configuration file.
238238
| <a name="TECH_LEF"></a>TECH_LEF| A technology LEF file of the PDK that includes all relevant information regarding metal layers, vias, and spacing requirements.| |
239239
| <a name="TIEHI_CELL_AND_PORT"></a>TIEHI_CELL_AND_PORT| Tie high cells used in Yosys synthesis to replace a logical 1 in the Netlist.| |
240240
| <a name="TIELO_CELL_AND_PORT"></a>TIELO_CELL_AND_PORT| Tie low cells used in Yosys synthesis to replace a logical 0 in the Netlist.| |
241-
| <a name="TIE_SEPARATION"></a>TIE_SEPARATION| Distance separating tie high/low instances from the load.| |
241+
| <a name="TIE_SEPARATION"></a>TIE_SEPARATION| Distance separating tie high/low instances from the load.| 0|
242242
| <a name="TNS_END_PERCENT"></a>TNS_END_PERCENT| Default TNS_END_PERCENT value for post CTS timing repair. Try fixing all violating endpoints by default (reduce to 5% for runtime). Specifies how many percent of violating paths to fix [0-100]. Worst path will always be fixed.| 100|
243243
| <a name="USE_FILL"></a>USE_FILL| Whether to perform metal density filling.| 0|
244244
| <a name="VERILOG_DEFINES"></a>VERILOG_DEFINES| Preprocessor defines passed to the language frontend. Example: `-D HPDCACHE_ASSERT_OFF`| |
@@ -331,6 +331,7 @@ configuration file.
331331
- [TAPCELL_TCL](#TAPCELL_TCL)
332332
- [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT)
333333
- [TIELO_CELL_AND_PORT](#TIELO_CELL_AND_PORT)
334+
- [TIE_SEPARATION](#TIE_SEPARATION)
334335
- [TNS_END_PERCENT](#TNS_END_PERCENT)
335336

336337
## place variables
@@ -353,7 +354,6 @@ configuration file.
353354
- [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT)
354355
- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS)
355356
- [SWAP_ARITH_OPERATORS](#SWAP_ARITH_OPERATORS)
356-
- [TIE_SEPARATION](#TIE_SEPARATION)
357357

358358
## cts variables
359359

flow/designs/nangate45/gcd/config.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,6 @@ export CORE_UTILIZATION ?= 55
1212
export PLACE_DENSITY_LB_ADDON = 0.20
1313
export TNS_END_PERCENT = 100
1414
export REMOVE_CELLS_FOR_EQY = TAPCELL*
15+
16+
# This needs a smaller pitch to accomodate a small block
17+
export PDN_TCL ?= $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/grid_strategy-M1-M4-M7.tcl
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
####################################
2+
# global connections
3+
####################################
4+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDD$} -power
5+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDDPE$}
6+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDDCE$}
7+
add_global_connection -net {VSS} -inst_pattern {.*} -pin_pattern {^VSS$} -ground
8+
add_global_connection -net {VSS} -inst_pattern {.*} -pin_pattern {^VSSE$}
9+
global_connect
10+
####################################
11+
# voltage domains
12+
####################################
13+
set_voltage_domain -name {CORE} -power {VDD} -ground {VSS}
14+
####################################
15+
# standard cell grid
16+
####################################
17+
define_pdn_grid -name {grid} -voltage_domains {CORE}
18+
add_pdn_stripe -grid {grid} -layer {metal1} -width {0.17} -pitch {2.4} -offset {0} -followpins
19+
add_pdn_stripe -grid {grid} -layer {metal4} -width {0.48} -pitch {28.0} -offset {2}
20+
add_pdn_stripe -grid {grid} -layer {metal7} -width {1.40} -pitch {15.0} -offset {2}
21+
add_pdn_connect -grid {grid} -layers {metal1 metal4}
22+
add_pdn_connect -grid {grid} -layers {metal4 metal7}

flow/scripts/floorplan.tcl

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,19 @@ source_env_var_if_exists FOOTPRINT_TCL
9797

9898
# This needs to come before any call to remove_buffers. You could have one
9999
# tie driving multiple buffers that drive multiple outputs.
100-
repair_tie_fanout_helper
100+
# Repair tie lo fanout
101+
puts "Repair tie lo fanout..."
102+
set tielo_cell_name [lindex $::env(TIELO_CELL_AND_PORT) 0]
103+
set tielo_lib_name [get_name [get_property [lindex [get_lib_cell $tielo_cell_name] 0] library]]
104+
set tielo_pin $tielo_lib_name/$tielo_cell_name/[lindex $::env(TIELO_CELL_AND_PORT) 1]
105+
repair_tie_fanout -separation $::env(TIE_SEPARATION) $tielo_pin
106+
107+
# Repair tie hi fanout
108+
puts "Repair tie hi fanout..."
109+
set tiehi_cell_name [lindex $::env(TIEHI_CELL_AND_PORT) 0]
110+
set tiehi_lib_name [get_name [get_property [lindex [get_lib_cell $tiehi_cell_name] 0] library]]
111+
set tiehi_pin $tiehi_lib_name/$tiehi_cell_name/[lindex $::env(TIEHI_CELL_AND_PORT) 1]
112+
repair_tie_fanout -separation $::env(TIE_SEPARATION) $tiehi_pin
101113

102114
if { [env_var_exists_and_non_empty SWAP_ARITH_OPERATORS] } {
103115
estimate_parasitics -placement

flow/scripts/global_place.tcl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,14 @@ if { ![env_var_exists_and_non_empty FOOTPRINT] } {
1818
}
1919
}
2020

21-
fast_route
21+
if { [env_var_exists_and_non_empty FASTROUTE_TCL] } {
22+
log_cmd source $::env(FASTROUTE_TCL)
23+
} else {
24+
log_cmd \
25+
set_global_routing_layer_adjustment \
26+
$::env(MIN_ROUTING_LAYER)-$::env(MAX_ROUTING_LAYER) $::env(ROUTING_LAYER_ADJUSTMENT)
27+
log_cmd set_routing_layers -signal $::env(MIN_ROUTING_LAYER)-$::env(MAX_ROUTING_LAYER)
28+
}
2229

2330
set global_placement_args {}
2431

flow/scripts/util.tcl

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -13,39 +13,6 @@ proc log_cmd { cmd args } {
1313
return $result
1414
}
1515

16-
proc repair_tie_fanout_helper { } {
17-
if { [env_var_exists_and_non_empty TIE_SEPARATION] } {
18-
set tie_separation $env(TIE_SEPARATION)
19-
} else {
20-
set tie_separation 0
21-
}
22-
23-
# Repair tie lo fanout
24-
puts "Repair tie lo fanout..."
25-
set tielo_cell_name [lindex $::env(TIELO_CELL_AND_PORT) 0]
26-
set tielo_lib_name [get_name [get_property [lindex [get_lib_cell $tielo_cell_name] 0] library]]
27-
set tielo_pin $tielo_lib_name/$tielo_cell_name/[lindex $::env(TIELO_CELL_AND_PORT) 1]
28-
repair_tie_fanout -separation $tie_separation $tielo_pin
29-
30-
# Repair tie hi fanout
31-
puts "Repair tie hi fanout..."
32-
set tiehi_cell_name [lindex $::env(TIEHI_CELL_AND_PORT) 0]
33-
set tiehi_lib_name [get_name [get_property [lindex [get_lib_cell $tiehi_cell_name] 0] library]]
34-
set tiehi_pin $tiehi_lib_name/$tiehi_cell_name/[lindex $::env(TIEHI_CELL_AND_PORT) 1]
35-
repair_tie_fanout -separation $tie_separation $tiehi_pin
36-
}
37-
38-
proc fast_route { } {
39-
if { [env_var_exists_and_non_empty FASTROUTE_TCL] } {
40-
log_cmd source $::env(FASTROUTE_TCL)
41-
} else {
42-
log_cmd \
43-
set_global_routing_layer_adjustment \
44-
$::env(MIN_ROUTING_LAYER)-$::env(MAX_ROUTING_LAYER) $::env(ROUTING_LAYER_ADJUSTMENT)
45-
log_cmd set_routing_layers -signal $::env(MIN_ROUTING_LAYER)-$::env(MAX_ROUTING_LAYER)
46-
}
47-
}
48-
4916
proc repair_timing_helper { args } {
5017
set additional_args "$args -verbose"
5118
append_env_var additional_args SETUP_SLACK_MARGIN -setup_margin 1

flow/scripts/variables.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,8 @@ TIE_SEPARATION:
232232
description: |
233233
Distance separating tie high/low instances from the load.
234234
stages:
235-
- place
235+
- floorplan
236+
default: 0
236237
EARLY_SIZING_CAP_RATIO:
237238
description: |
238239
Ratio between the input pin capacitance and the output pin load during initial gate sizing.

flow/test/test_helper.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ cd "$(dirname "$(readlink -f "$0")")/../"
88
DESIGN_NAME=${1:-gcd}
99
PLATFORM=${2:-nangate45}
1010
CONFIG_MK=${3:-config.mk}
11-
if [ $# -eq 4 ]; then
11+
if [ $# -ge 4 ]; then
1212
FLOW_VARIANT=$4
1313
fi
14+
TARGET=${5:-'finish metadata'}
1415
DESIGN_CONFIG=./designs/$PLATFORM/$DESIGN_NAME/$CONFIG_MK
1516
LOG_FILE=./logs/$PLATFORM/$DESIGN_NAME.log
1617
mkdir -p "./logs/$PLATFORM"
@@ -26,12 +27,16 @@ $__make clean_all clean_metadata 2>&1 | tee "$LOG_FILE"
2627
# turn off abort on error so we can always capture the result
2728
set +e
2829

29-
$__make finish metadata 2>&1 | tee -a "$LOG_FILE"
30+
eval $__make "${TARGET}" 2>&1 | tee -a "$LOG_FILE"
3031

3132
# Save the return code to return as the overall status after we package
3233
# the results
3334
ret=$?
3435

36+
if [ "${TARGET}" != "finish metadata" ]; then
37+
exit $ret
38+
fi
39+
3540
if [ -z "${PRIVATE_DIR+x}" ]; then
3641
PRIVATE_DIR="../../private_tool_scripts"
3742
fi

0 commit comments

Comments
 (0)