Skip to content

Commit 7bc10be

Browse files
committed
Merge remote-tracking branch 'origin/master' into asap7-dont-use
2 parents b97b845 + 00722fb commit 7bc10be

File tree

85 files changed

+1045
-326
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+1045
-326
lines changed

dev_env.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Set developer paths and environment variables here,
44
# user settings go in ./env.sh
55
function __setpaths() {
6-
local DIR=$(readlink -f "$(dirname "${BASH_SOURCE[0]}")")
6+
local DIR=$(readlink -f "$(dirname "${BASH_SOURCE[0]:-${(%):-%x}}")")
77
[ "$(find $DIR/dependencies -type f -user root)" ] && echo "WARNING! Files set up by sudo found in $DIR"
88
export PATH="$DIR/dependencies/bin:$PATH"
99
export CMAKE_INSTALL_RPATH=$DIR/dependencies/lib:$DIR/dependencies/lib64

docs/user/FlowVariables.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ configuration file.
174174
| <a name="PLATFORM"></a>PLATFORM| Specifies process design kit or technology node to be used.| |
175175
| <a name="PLATFORM_TCL"></a>PLATFORM_TCL| Specifies a Tcl script with commands to run before loading design.| |
176176
| <a name="POST_CTS_TCL"></a>POST_CTS_TCL| Specifies a Tcl script with commands to run after CTS is completed.| |
177+
| <a name="PRE_GLOBAL_ROUTE_TCL"></a>PRE_GLOBAL_ROUTE_TCL| Specifies a Tcl script with commands to run before global route.| |
177178
| <a name="PROCESS"></a>PROCESS| Technology node or process in use.| |
178179
| <a name="PWR_NETS_VOLTAGES"></a>PWR_NETS_VOLTAGES| Used for IR Drop calculation.| |
179180
| <a name="RCX_RULES"></a>RCX_RULES| RC Extraction rules file path.| |
@@ -213,14 +214,17 @@ configuration file.
213214
| <a name="SETUP_SLACK_MARGIN"></a>SETUP_SLACK_MARGIN| Specifies a time margin for the slack when fixing setup violations. This option allows you to overfix or underfix(negative value, terminate retiming before 0 or positive slack). See HOLD_SLACK_MARGIN for more details.| 0|
214215
| <a name="SET_RC_TCL"></a>SET_RC_TCL| Metal & Via RC definition file path.| |
215216
| <a name="SKIP_CTS_REPAIR_TIMING"></a>SKIP_CTS_REPAIR_TIMING| Skipping CTS repair, which can take a long time, can be useful in architectural exploration or when getting CI up and running.| |
217+
| <a name="SKIP_DETAILED_ROUTE"></a>SKIP_DETAILED_ROUTE| Skips detailed route.| 0|
216218
| <a name="SKIP_GATE_CLONING"></a>SKIP_GATE_CLONING| Do not use gate cloning transform to fix timing violations (default: use gate cloning).| |
217219
| <a name="SKIP_INCREMENTAL_REPAIR"></a>SKIP_INCREMENTAL_REPAIR| Skip incremental repair in global route.| 0|
218220
| <a name="SKIP_LAST_GASP"></a>SKIP_LAST_GASP| Do not use last gasp optimization to fix timing violations (default: use gate last gasp).| |
219221
| <a name="SKIP_PIN_SWAP"></a>SKIP_PIN_SWAP| Do not use pin swapping as a transform to fix timing violations (default: use pin swapping).| |
220222
| <a name="SKIP_REPORT_METRICS"></a>SKIP_REPORT_METRICS| If set to 1, then metrics, report_metrics does nothing. Useful to speed up builds.| |
221223
| <a name="SLEW_MARGIN"></a>SLEW_MARGIN| Specifies a slew margin when fixing max slew violations. This option allows you to overfix.| |
224+
| <a name="SWAP_ARITH_OPERATORS"></a>SWAP_ARITH_OPERATORS| Improve timing QoR by swapping ALU and MULT arithmetic operators.| |
222225
| <a name="SYNTH_ARGS"></a>SYNTH_ARGS| Optional synthesis variables for yosys.| |
223226
| <a name="SYNTH_BLACKBOXES"></a>SYNTH_BLACKBOXES| List of cells treated as a black box by Yosys. With Bazel, this can be used to run synthesis in parallel for the large modules of the design.| |
227+
| <a name="SYNTH_CANONICALIZE_TCL"></a>SYNTH_CANONICALIZE_TCL| Specifies a Tcl script with commands to run as part of the synth canonicalize step.| |
224228
| <a name="SYNTH_GUT"></a>SYNTH_GUT| Load design and remove all internal logic before doing synthesis. This is useful when creating a mock .lef abstract that has a smaller area than the amount of logic would allow. bazel-orfs uses this to mock SRAMs, for instance.| |
225229
| <a name="SYNTH_HDL_FRONTEND"></a>SYNTH_HDL_FRONTEND| Select an alternative language frontend to ingest the design. Available option is "slang". If the variable is empty, design is read with the Yosys read_verilog command.| |
226230
| <a name="SYNTH_HIERARCHICAL"></a>SYNTH_HIERARCHICAL| Enable to Synthesis hierarchically, otherwise considered flat synthesis.| 0|
@@ -235,7 +239,7 @@ configuration file.
235239
| <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.| |
236240
| <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.| |
237241
| <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.| |
238-
| <a name="TIE_SEPARATION"></a>TIE_SEPARATION| Distance separating tie high/low instances from the load.| |
242+
| <a name="TIE_SEPARATION"></a>TIE_SEPARATION| Distance separating tie high/low instances from the load.| 0|
239243
| <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|
240244
| <a name="USE_FILL"></a>USE_FILL| Whether to perform metal density filling.| 0|
241245
| <a name="VERILOG_DEFINES"></a>VERILOG_DEFINES| Preprocessor defines passed to the language frontend. Example: `-D HPDCACHE_ASSERT_OFF`| |
@@ -255,7 +259,9 @@ configuration file.
255259
- [MIN_BUF_CELL_AND_PORTS](#MIN_BUF_CELL_AND_PORTS)
256260
- [SDC_FILE](#SDC_FILE)
257261
- [SDC_GUT](#SDC_GUT)
262+
- [SWAP_ARITH_OPERATORS](#SWAP_ARITH_OPERATORS)
258263
- [SYNTH_BLACKBOXES](#SYNTH_BLACKBOXES)
264+
- [SYNTH_CANONICALIZE_TCL](#SYNTH_CANONICALIZE_TCL)
259265
- [SYNTH_GUT](#SYNTH_GUT)
260266
- [SYNTH_HDL_FRONTEND](#SYNTH_HDL_FRONTEND)
261267
- [SYNTH_HIERARCHICAL](#SYNTH_HIERARCHICAL)
@@ -322,9 +328,11 @@ configuration file.
322328
- [SKIP_LAST_GASP](#SKIP_LAST_GASP)
323329
- [SKIP_PIN_SWAP](#SKIP_PIN_SWAP)
324330
- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS)
331+
- [SWAP_ARITH_OPERATORS](#SWAP_ARITH_OPERATORS)
325332
- [TAPCELL_TCL](#TAPCELL_TCL)
326333
- [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT)
327334
- [TIELO_CELL_AND_PORT](#TIELO_CELL_AND_PORT)
335+
- [TIE_SEPARATION](#TIE_SEPARATION)
328336
- [TNS_END_PERCENT](#TNS_END_PERCENT)
329337

330338
## place variables
@@ -346,7 +354,7 @@ configuration file.
346354
- [PLACE_PINS_ARGS](#PLACE_PINS_ARGS)
347355
- [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT)
348356
- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS)
349-
- [TIE_SEPARATION](#TIE_SEPARATION)
357+
- [SWAP_ARITH_OPERATORS](#SWAP_ARITH_OPERATORS)
350358

351359
## cts variables
352360

@@ -382,6 +390,7 @@ configuration file.
382390
- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN)
383391
- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER)
384392
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
393+
- [PRE_GLOBAL_ROUTE_TCL](#PRE_GLOBAL_ROUTE_TCL)
385394
- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW)
386395
- [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT)
387396
- [SETUP_REPAIR_SEQUENCE](#SETUP_REPAIR_SEQUENCE)
@@ -403,6 +412,7 @@ configuration file.
403412
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
404413
- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW)
405414
- [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT)
415+
- [SKIP_DETAILED_ROUTE](#SKIP_DETAILED_ROUTE)
406416
- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS)
407417

408418
## final variables

env.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/usr/bin/env bash
22
function __setpaths() {
33
if [[ "$OSTYPE" == "darwin"* ]]; then
4-
DIR="$(dirname $(perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"))"
4+
DIR="$(dirname $(perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]:-${(%):-%x}}"))"
55
else
6-
DIR="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
6+
DIR="$(dirname $(readlink -f "${BASH_SOURCE[0]:-${(%):-%x}}"))"
77
fi
88

99
export OPENROAD=${DIR}/tools/OpenROAD

etc/DependencyInstaller.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ _help() {
235235
cat <<EOF
236236
237237
All arguments and flags are only applicable for OpenROAD dependencies
238-
Usage: $0
238+
Usage: $0 [-all|-base|-common] [-<ARGS>]
239239
# Installs all of OpenROAD's dependencies no
240240
# need to run -base or -common. Requires
241241
# privileged access.

flow/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ grt: $(RESULTS_DIR)/5_1_grt.odb
550550

551551
# STEP 1: Run global route
552552
#-------------------------------------------------------------------------------
553-
$(eval $(call do-step,5_1_grt,$(RESULTS_DIR)/4_cts.odb $(FASTROUTE_TCL) $(PRE_GLOBAL_ROUTE),global_route))
553+
$(eval $(call do-step,5_1_grt,$(RESULTS_DIR)/4_cts.odb $(FASTROUTE_TCL) $(PRE_GLOBAL_ROUTE_TCL),global_route))
554554

555555
# STEP 2: Run detailed route
556556
#-------------------------------------------------------------------------------

flow/designs/asap7/aes-block/config.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.
88

99
export ABC_AREA = 1
1010

11-
export CORE_UTILIZATION = 20
11+
export CORE_UTILIZATION = 40
1212
export CORE_ASPECT_RATIO = 1
1313
export CORE_MARGIN = 2
14-
export PLACE_DENSITY = 0.60
14+
export PLACE_DENSITY = 0.53
1515

1616
export BLOCKS ?= aes_rcon aes_sbox
1717
export SYNTH_HIERARCHICAL = 1
@@ -27,6 +27,6 @@ export GND_NETS_VOLTAGES =
2727
export PWR_NETS_VOLTAGES =
2828

2929
# The macros are very small so use a smaller halo
30-
export MACRO_PLACE_HALO ?= 5 5
30+
export MACRO_PLACE_HALO ?= 3 3
3131

3232
export ROUTING_LAYER_ADJUSTMENT = 0.3
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
{
22
"synth__design__instance__area__stdcell": {
3-
"value": 2131.37,
3+
"value": 2130.06,
44
"compare": "<="
55
},
66
"constraints__clocks__count": {
77
"value": 1,
88
"compare": "=="
99
},
1010
"placeopt__design__instance__area": {
11-
"value": 7290,
11+
"value": 7258,
1212
"compare": "<="
1313
},
1414
"placeopt__design__instance__count__stdcell": {
15-
"value": 11004,
15+
"value": 10666,
1616
"compare": "<="
1717
},
1818
"detailedplace__design__violations": {
1919
"value": 0,
2020
"compare": "=="
2121
},
2222
"cts__design__instance__count__setup_buffer": {
23-
"value": 957,
23+
"value": 928,
2424
"compare": "<="
2525
},
2626
"cts__design__instance__count__hold_buffer": {
27-
"value": 1561,
27+
"value": 985,
2828
"compare": "<="
2929
},
3030
"globalroute__antenna_diodes_count": {
3131
"value": 0,
3232
"compare": "<="
3333
},
3434
"detailedroute__route__wirelength": {
35-
"value": 75984,
35+
"value": 62805,
3636
"compare": "<="
3737
},
3838
"detailedroute__route__drc_errors": {
@@ -48,23 +48,23 @@
4848
"compare": "<="
4949
},
5050
"finish__timing__setup__ws": {
51-
"value": -152.45,
51+
"value": -63.56,
5252
"compare": ">="
5353
},
5454
"finish__design__instance__area": {
5555
"value": 7348,
5656
"compare": "<="
5757
},
5858
"finish__timing__drv__setup_violation_count": {
59-
"value": 478,
59+
"value": 464,
6060
"compare": "<="
6161
},
6262
"finish__timing__drv__hold_violation_count": {
6363
"value": 100,
6464
"compare": "<="
6565
},
6666
"finish__timing__wns_percent_delay": {
67-
"value": -18.47,
67+
"value": -17.84,
6868
"compare": ">="
6969
}
7070
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Remove rvfi_probes_o interface since contributes 4k ports and connections
2+
# (many of which are buffers tied to tie cells)
3+
4+
delete cva6/o:rvfi_probes_o*

flow/designs/asap7/cva6/config.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,6 @@ export SYNTH_HDL_FRONTEND = slang
105105
export ASAP7_USE_VT = RVT LVT SLVT
106106

107107
export CTS_LIB_NAME = asap7sc7p5t_INVBUF_SLVT_FF_nldm_211120
108+
109+
# Remove rvfi_probes_o interface
110+
export SYNTH_CANONICALIZE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/canonicalize.tcl

flow/designs/asap7/cva6/rules-base.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
{
22
"synth__design__instance__area__stdcell": {
3-
"value": 19725.15,
3+
"value": 18975.35,
44
"compare": "<="
55
},
66
"constraints__clocks__count": {
77
"value": 1,
88
"compare": "=="
99
},
1010
"placeopt__design__instance__area": {
11-
"value": 20690,
11+
"value": 19709,
1212
"compare": "<="
1313
},
1414
"placeopt__design__instance__count__stdcell": {
15-
"value": 136421,
15+
"value": 123443,
1616
"compare": "<="
1717
},
1818
"detailedplace__design__violations": {
1919
"value": 0,
2020
"compare": "=="
2121
},
2222
"cts__design__instance__count__setup_buffer": {
23-
"value": 11863,
23+
"value": 10734,
2424
"compare": "<="
2525
},
2626
"cts__design__instance__count__hold_buffer": {
27-
"value": 11863,
27+
"value": 10734,
2828
"compare": "<="
2929
},
3030
"globalroute__antenna_diodes_count": {
3131
"value": 0,
3232
"compare": "<="
3333
},
3434
"detailedroute__route__wirelength": {
35-
"value": 1074578,
35+
"value": 716033,
3636
"compare": "<="
3737
},
3838
"detailedroute__route__drc_errors": {
@@ -48,15 +48,15 @@
4848
"compare": "<="
4949
},
5050
"finish__timing__setup__ws": {
51-
"value": -139.89,
51+
"value": -82.95,
5252
"compare": ">="
5353
},
5454
"finish__design__instance__area": {
55-
"value": 20850,
55+
"value": 19864,
5656
"compare": "<="
5757
},
5858
"finish__timing__drv__setup_violation_count": {
59-
"value": 5931,
59+
"value": 5367,
6060
"compare": "<="
6161
},
6262
"finish__timing__drv__hold_violation_count": {

0 commit comments

Comments
 (0)