Skip to content

Commit d81ce70

Browse files
committed
Merge branch 'master' into secure-repair_antennas
Signed-off-by: Eder Monteiro <[email protected]>
2 parents 01a5c08 + 74df8de commit d81ce70

File tree

26 files changed

+427
-362
lines changed

26 files changed

+427
-362
lines changed

build_openroad.sh

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
set -eu
66

77
# Make sure we are on the correct folder before beginning
8-
cd "$(dirname $(readlink -f $0))"
8+
DIR="$(dirname $(readlink -f $0))"
9+
cd "$DIR"
910

1011
# Set up paths to dependencies, such as cmake and boost. Safe no-op
1112
# if tools were set up elsewhere in the path.
@@ -62,13 +63,13 @@ Options:
6263
--yosys-args-overwrite Do not use default flags set by this scrip during
6364
Yosys compilation.
6465
65-
--yosys-args STRING Aditional compilation flags for Yosys compilation.
66+
--yosys-args STRING Additional compilation flags for Yosys compilation.
6667
6768
--openroad-args-overwrite
6869
Do not use default flags set by this scrip during
6970
OpenROAD app compilation.
7071
71-
--openroad-args STRING Aditional compilation flags for OpenROAD app
72+
--openroad-args STRING Additional compilation flags for OpenROAD app
7273
compilation.
7374
7475
--install-path PATH Path to install tools. Default is ${INSTALL_PATH}.
@@ -84,7 +85,7 @@ Options:
8485
Options valid only for Docker builds:
8586
-c, --copy-platforms Copy platforms to inside docker image.
8687
87-
--os=DOCKER_OS_NAME Choose beween ubuntu22.04 (default), ubuntu20.04.
88+
--os=DOCKER_OS_NAME Choose between ubuntu22.04 (default), ubuntu20.04.
8889
8990
This script builds the OpenROAD tools: openroad, yosys and yosys plugins.
9091
By default, the tools will be built from the linked submodule hashes.
@@ -128,14 +129,14 @@ while (( "$#" )); do
128129
DOCKER_COPY_PLATFORMS=1
129130
;;
130131
--yosys-args-overwrite)
131-
YOSYS_OVERWIRTE_ARGS=1
132+
YOSYS_OVERWRITE_ARGS=1
132133
;;
133134
--yosys-args)
134135
YOSYS_USER_ARGS="$2"
135136
shift
136137
;;
137138
--openroad-args-overwrite)
138-
OPENROAD_APP_OVERWIRTE_ARGS=1
139+
OPENROAD_APP_OVERWRITE_ARGS=1
139140
;;
140141
--openroad-args)
141142
OPENROAD_APP_USER_ARGS="$2"
@@ -189,14 +190,14 @@ if [ -n "$CMAKE_INSTALL_RPATH" ]; then
189190
fi
190191

191192
__args_setup() {
192-
if [ ! -z "${YOSYS_OVERWIRTE_ARGS+x}" ]; then
193+
if [ ! -z "${YOSYS_OVERWRITE_ARGS+x}" ]; then
193194
echo "[INFO FLW-0014] Overwriting Yosys compilation flags."
194195
YOSYS_ARGS="${YOSYS_USER_ARGS}"
195196
else
196197
YOSYS_ARGS+=" ${YOSYS_USER_ARGS}"
197198
fi
198199

199-
if [ ! -z "${OPENROAD_APP_OVERWIRTE_ARGS+x}" ]; then
200+
if [ ! -z "${OPENROAD_APP_OVERWRITE_ARGS+x}" ]; then
200201
echo "[INFO FLW-0015] Overwriting OpenROAD app compilation flags."
201202
OPENROAD_APP_ARGS="${OPENROAD_APP_USER_ARGS}"
202203
else
@@ -246,7 +247,7 @@ __local_build()
246247
${NICE} make install -C tools/yosys -j "${PROC}" ${YOSYS_ARGS}
247248

248249
echo "[INFO FLW-0018] Compiling OpenROAD."
249-
eval ${NICE} cmake tools/OpenROAD -B tools/OpenROAD/build ${OPENROAD_APP_ARGS}
250+
eval ${NICE} ./tools/OpenROAD/etc/Build.sh -dir="$DIR/tools/OpenROAD/build" -threads=${PROC} -cmake=\'${OPENROAD_APP_ARGS}\'
250251
${NICE} cmake --build tools/OpenROAD/build --target install -j "${PROC}"
251252
}
252253

docs/user/FlowVariables.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ Note:
7272
| `PDN_TCL` | ?= | ?= | ?= | ?= | ?= |
7373
| `IO_PLACER_H` | = | = | = | = | ?= |
7474
| `IO_PLACER_V` | = | = | = | = | ?= |
75+
| `FILL_CELLS` | = | = | = | = | = |
7576
| Placement | | | | | |
7677
| `CELL_PAD_IN_SITES_GLOBAL_PLACEMENT` | ?= | ?= | ?= | ?= | ?= |
7778
| `CELL_PAD_IN_SITES_DETAIL_PLACEMENT` | ?= | ?= | ?= | ?= | ?= |
@@ -85,7 +86,6 @@ Note:
8586
| `EQUIVALENCE_CHECK` | ?= | ?= | ?= | ?= | ?= |
8687
| `REMOVE_CELLS_FOR_EQY` | ?= | ?= | ?= | ?= | ?= |
8788
| Routing | | | | | |
88-
| `FILL_CELLS` | = | = | = | = | = |
8989
| `KLAYOUT_TECH_FILE` | = | = | = | = | = |
9090
| `MAX_ROUTING_LAYER` | = | = | = | = | ?= |
9191
| `MIN_ROUTING_LAYER` | = | = | = | = | ?= |
@@ -147,6 +147,8 @@ Note:
147147
| `GUI_NO_TIMING` | Skip loading timing for a faster GUI load. |
148148
| `GUI_SOURCE` | Source the script. |
149149
| `GUI_ARGS` | OpenROAD command line options for gui_ and open_ targets, typically set tup `-exit` in combination with GUI_SOURCE to run a script and exit. |
150+
| `FILL_CELLS` | Fill cells are used to fill empty sites. If not set or empty, fill cell insertion is skipped. |
151+
| `TAP_CELL_NAME` | Name of the cell to use in tap cell insertion. |
150152

151153

152154
### Placement
@@ -189,7 +191,6 @@ Note:
189191

190192
| Variable | Description |
191193
|-----------------------|---------------------------------------------------------------------------------------------------|
192-
| `FILL_CELLS` | Fill cells are used to fill empty sites. |
193194
| `MIN_ROUTING_LAYER` | The lowest metal layer name to be used in routing. |
194195
| `MAX_ROUTING_LAYER` | The highest metal layer name to be used in routing. |
195196
| `DETAILED_ROUTE_ARGS` | Add additional arguments for debugging purpose during detail route. |
@@ -264,16 +265,18 @@ configuration file.
264265

265266
| Variable | Description |
266267
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
267-
| `CORE_UTILIZATION` | The core utilization percentage (0-100). Overrides `DIE_AREA` and `CORE_AREA`. |
268-
| `CORE_ASPECT_RATIO` | The core aspect ratio (height / width). This values is ignored if `CORE_UTILIZATION` undefined. |
269-
| `CORE_MARGIN` | The margin between the core area and die area, in multiples of SITE heights. The margin is applied to each side. This variable is ignored if `CORE_UTILIZATION` is undefined. |
270-
| `DIE_AREA` | The die area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2). This variable is ignored if `CORE_UTILIZATION` and `CORE_ASPECT_RATIO` are defined. |
271-
| `CORE_AREA` | The core area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2). This variable is ignored if `CORE_UTILIZATION` and `CORE_ASPECT_RATIO` are defined. |
268+
| `CORE_UTILIZATION` | The core utilization percentage (0-100). |
269+
| `CORE_ASPECT_RATIO` | The core aspect ratio (height / width). This values is ignored if `CORE_UTILIZATION` undefined. |
270+
| `CORE_MARGIN` | The margin between the core area and die area, in multiples of SITE heights. The margin is applied to each side. This variable is ignored if `CORE_UTILIZATION` is undefined. |
271+
| `DIE_AREA` | The die area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2). |
272+
| `CORE_AREA` | The core area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2). |
272273
| `RESYNTH_AREA_RECOVER` | Enable re-synthesis for area reclaim. |
273274
| `RESYNTH_TIMING_RECOVER` | Enable re-synthesis for timing optimization. |
274275
| `MACRO_HALO_X` | Set macro halo for x-direction. Only available for ASAP7 PDK. |
275276
| `MACRO_HALO_Y` | Set macro halo for y-direction. Only available for ASAP7 PDK. |
276277

278+
The various methods to specify the die and core area(`FLOORPLAN_DEF`, `FOOTPRINT`, `DIE_AREA` and `CORE_UTILIZATION`) are mutually exclusive. If two methods are specified, floorplan.tcl will exit with an error requiring that a single method is used.
279+
277280
#### Placement
278281

279282

etc/DependencyInstaller.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ while [ "$#" -gt 0 ]; do
278278
;;
279279
-ci)
280280
CI="yes"
281+
OR_INSTALLER_ARGS="${OR_INSTALLER_ARGS} -save-deps-prefixes=/etc/openroad_deps_prefixes.txt"
281282
;;
282283
-prefix=*)
283284
OR_INSTALLER_ARGS="${OR_INSTALLER_ARGS} $1"

flow/Makefile

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ export RECOVER_POWER ?= 0
145145
export SKIP_INCREMENTAL_REPAIR ?= 0
146146
export DETAILED_METRICS ?= 0
147147
export EQUIVALENCE_CHECK ?= 0
148+
export CORE_UTILIZATION ?=
149+
export DIE_AREA ?=
150+
export CORE_AREA ?=
148151

149152
# If we are running headless use offscreen rendering for save_image
150153
ifndef DISPLAY
@@ -259,10 +262,6 @@ export RESULTS_DIR = $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)/$(FLOW_
259262
export MACROS ?= $(BLOCKS)
260263

261264
ifdef BLOCKS
262-
ifeq ($(MAKELEVEL),0)
263-
$(info [INFO][FLOW] Invoked hierarchical flow.)
264-
$(foreach block,$(BLOCKS),$(info Block ${block} needs to be hardened.))
265-
endif
266265
$(foreach block,$(BLOCKS),$(eval BLOCK_LEFS += ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef))
267266
$(foreach block,$(BLOCKS),$(eval BLOCK_LIBS += ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lib))
268267
$(foreach block,$(BLOCKS),$(eval BLOCK_GDS += ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/6_final.gds))
@@ -391,7 +390,7 @@ endef
391390
.PHONY: build_macros
392391
build_macros: $(BLOCK_LEFS) $(BLOCK_LIBS)
393392

394-
$(foreach block,$(BLOCKS),$(eval $(call GENERATE_ABSTRACT_RULE,./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef,./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lib,./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/${block}/config.mk)))
393+
$(foreach block,$(BLOCKS),$(eval $(call GENERATE_ABSTRACT_RULE,./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef,./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lib,$(shell dirname $(DESIGN_CONFIG))/${block}/config.mk)))
395394
$(foreach block,$(BLOCKS),$(eval ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/6_final.gds: ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef))
396395

397396
# Utility to print tool version information
@@ -716,7 +715,11 @@ $(eval $(call do-step,2_4_floorplan_macro,$(RESULTS_DIR)/2_3_floorplan_tdms.odb
716715

717716
# STEP 5: Tapcell and Welltie insertion
718717
#-------------------------------------------------------------------------------
718+
ifeq ($(TAPCELL_TCL),)
719+
$(eval $(call do-copy,2_5_floorplan_tapcell,2_4_floorplan_macro.odb))
720+
else
719721
$(eval $(call do-step,2_5_floorplan_tapcell,$(RESULTS_DIR)/2_4_floorplan_macro.odb $(TAPCELL_TCL),tapcell))
722+
endif
720723

721724
# STEP 6: PDN generation
722725
#-------------------------------------------------------------------------------
@@ -835,6 +838,10 @@ clean_cts:
835838
.PHONY: route
836839
route: $(RESULTS_DIR)/5_route.odb \
837840
$(RESULTS_DIR)/5_route.sdc
841+
842+
.PHONY: grt
843+
grt: $(RESULTS_DIR)/5_1_grt.odb
844+
838845
# ==============================================================================
839846

840847

@@ -852,7 +859,11 @@ endif
852859

853860
# SEP 3: Filler cell insertion
854861
# ------------------------------------------------------------------------------
862+
ifeq ($(FILL_CELLS),)
863+
$(eval $(call do-copy,5_3_fillcell,5_2_route.odb))
864+
else
855865
$(eval $(call do-step,5_3_fillcell,$(RESULTS_DIR)/5_2_route.odb,fillcell))
866+
endif
856867

857868
$(eval $(call do-copy,5_route,5_3_fillcell.odb))
858869

flow/designs/gf180/uart-blocks/config.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ export MACRO_PLACE_CHANNEL = 20 20
2121
export PDN_TCL = ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/BLOCKS_grid_strategy.tcl
2222
export PLACE_DENSITY = 0.60
2323

24-
export TAPCELL_TCL = ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/tapcell.tcl
24+
export TAPCELL_TCL ?= ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/tapcell.tcl
2525
export MACRO_HALO_X = 14
2626
export MACRO_HALO_Y = 14

0 commit comments

Comments
 (0)