Skip to content

Commit 58398cf

Browse files
authored
Merge pull request #3064 from jeffng-or/at-cts-buf-list
added CTS_BUF_LIST flow variable & prep for CTS arg fixes
2 parents c1fb9a6 + 8c671f4 commit 58398cf

File tree

9 files changed

+26
-0
lines changed

9 files changed

+26
-0
lines changed

docs/user/FlowVariables.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ configuration file.
7575
| <a name="CORNER"></a>CORNER| PVT corner library selection. Only available for ASAP7 and GF180 PDKs.| | |
7676
| <a name="CTS_ARGS"></a>CTS_ARGS| Override `clock_tree_synthesis` arguments.| | |
7777
| <a name="CTS_BUF_DISTANCE"></a>CTS_BUF_DISTANCE| Distance (in microns) between buffers.| | |
78+
| <a name="CTS_BUF_LIST"></a>CTS_BUF_LIST| List of cells used to construct the clock tree.| | |
7879
| <a name="CTS_CLUSTER_DIAMETER"></a>CTS_CLUSTER_DIAMETER| Maximum diameter (in microns) of sink cluster.| 20| |
7980
| <a name="CTS_CLUSTER_SIZE"></a>CTS_CLUSTER_SIZE| Maximum number of sinks per cluster.| 50| |
8081
| <a name="CTS_SNAPSHOT"></a>CTS_SNAPSHOT| Creates ODB/SDC files prior to clock net and setup/hold repair.| | |
@@ -304,6 +305,7 @@ configuration file.
304305
- [CELL_PAD_IN_SITES_DETAIL_PLACEMENT](#CELL_PAD_IN_SITES_DETAIL_PLACEMENT)
305306
- [CTS_ARGS](#CTS_ARGS)
306307
- [CTS_BUF_DISTANCE](#CTS_BUF_DISTANCE)
308+
- [CTS_BUF_LIST](#CTS_BUF_LIST)
307309
- [CTS_CLUSTER_DIAMETER](#CTS_CLUSTER_DIAMETER)
308310
- [CTS_CLUSTER_SIZE](#CTS_CLUSTER_SIZE)
309311
- [CTS_SNAPSHOT](#CTS_SNAPSHOT)

flow/designs/asap7/riscv32i/config.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,6 @@ export IO_CONSTRAINTS = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/io.tcl
2828
export MACRO_PLACE_HALO = 2 2
2929

3030
export TNS_END_PERCENT = 100
31+
32+
export CTS_CLUSTER_SIZE = 10
33+
export CTS_CLUSTER_DIAMETER = 50

flow/designs/nangate45/bp_be_top/config.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ export MACRO_PLACE_HALO = 10 10
2525
export PLACE_DENSITY_LB_ADDON = 0.10
2626
export TNS_END_PERCENT = 100
2727

28+
export CTS_CLUSTER_SIZE = 30
29+
export CTS_CLUSTER_DIAMETER = 50
2830
export SYNTH_MINIMUM_KEEP_SIZE = 3000
2931

3032
export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/fastroute.tcl

flow/designs/sky130hd/aes/config.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,5 @@ export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.t
1818

1919
export REMOVE_ABC_BUFFERS = 1
2020

21+
export CTS_CLUSTER_SIZE = 20
22+
export CTS_CLUSTER_DIAMETER = 50

flow/designs/sky130hd/ibex/config.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,6 @@ export TNS_END_PERCENT = 100
5252
export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.tcl
5353

5454
export REMOVE_ABC_BUFFERS = 1
55+
56+
export CTS_CLUSTER_SIZE = 20
57+
export CTS_CLUSTER_DIAMETER = 50

flow/designs/sky130hs/aes/config.mk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@ export PLACE_DENSITY_LB_ADDON = 0.25
1313
export TNS_END_PERCENT = 100
1414

1515
export REMOVE_ABC_BUFFERS = 1
16+
17+
export CTS_CLUSTER_SIZE = 10
18+
export CTS_CLUSTER_DIAMETER = 50
19+

flow/designs/sky130hs/jpeg/config.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ export CORE_MARGIN = 2
1414
export PLACE_DENSITY_LB_ADDON = 0.25
1515
export TNS_END_PERCENT = 100
1616

17+
export CTS_CLUSTER_SIZE = 30
18+
export CTS_CLUSTER_DIAMETER = 50

flow/scripts/cts.tcl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,12 @@ set cts_args [list \
1818
-sink_clustering_enable \
1919
-balance_levels]
2020

21+
# TODO: The first three are no-ops since the arg order is wrong, but hard to get
22+
# through CI since nine designs change metrics and the PR is blocked
2123
append_env_var cts_args -distance_between_buffers CTS_BUF_DISTANCE 1
2224
append_env_var cts_args -sink_clustering_size CTS_CLUSTER_SIZE 1
2325
append_env_var cts_args -sink_clustering_max_diameter CTS_CLUSTER_DIAMETER 1
26+
append_env_var cts_args CTS_BUF_LIST -buf_list 1
2427

2528
if {[env_var_exists_and_non_empty CTS_ARGS]} {
2629
set cts_args $::env(CTS_ARGS)

flow/scripts/variables.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,11 @@ CTS_BUF_DISTANCE:
718718
Distance (in microns) between buffers.
719719
stages:
720720
- cts
721+
CTS_BUF_LIST:
722+
description: |
723+
List of cells used to construct the clock tree.
724+
stages:
725+
- cts
721726
CTS_CLUSTER_DIAMETER:
722727
description: >
723728
Maximum diameter (in microns) of sink cluster.

0 commit comments

Comments
 (0)