Floorplan
Each card shows a command to explain. A missed card returns later in the round and starts the schedule over. A card answered correctly moves up the schedule and next appears after 1, 3, 7, then 21 days. Keys 1 to 4 choose an option, h shows a hint, and Enter moves on. A hint keeps the card where it is on the schedule. An ordering card is answered by clicking its items in order, and one wrong click ends it. Time values are in nanoseconds. Progress is stored in this browser.
All 13 cards in this section, with answers
-
export CORE_UTILIZATION = 40Sizes the core so the cells fill 40% of it, leaving the rest free.
Hint: It is a percentage, and it decides a size rather than reporting one.
The die size follows from the cell area and this number, together with
CORE_ASPECT_RATIOandCORE_MARGIN. Low utilization eases routing and wastes area; high utilization does the opposite. GivingDIE_AREAandCORE_AREAinstead sets the size directly. OpenROAD-flow-scripts reference -
export CORE_ASPECT_RATIO = 2.0Makes the core twice as tall as it is wide.
Hint: Read the ratio in the documented order: height over width.
It only applies when the size comes from
CORE_UTILIZATION. A shape other than square is used to fit a block into a fixed slot at the top level, or to suit a design's pin sides. OpenROAD-flow-scripts reference -
export CORE_MARGIN = 2Leaves 2 microns between the core area and the die edge.
Hint: It is the space between two boundaries, and something has to live there.
The margin is where the power ring and the boundary pins go, so a core pressed against the die edge leaves nowhere to bring power in. One value sets all four sides; four values set them separately. OpenROAD-flow-scripts reference
-
export DIE_AREA = 0 0 100.13 100.8 export CORE_AREA = 10.07 11.2 90.25 91Sets the die and the core rectangles directly, in microns.
Hint: Four numbers each: two corners. Ask which rectangle sits inside the other.
Each is a lower-left and an upper-right corner. Giving both replaces the utilization-based sizing, which is how a block gets the exact size a top-level floorplan has reserved for it. OpenROAD-flow-scripts reference
-
export PLACE_SITE = FreePDK45_38x28_10R_NP_162NW_34ONames the site whose height and width the placement rows are built from.
Hint: It comes from the technology file, and it decides the shape of a row.
A site is the smallest legal cell footprint in the technology. Rows are one site high, and every cell's width is a whole number of sites, which is what makes legalization possible. OpenROAD-flow-scripts reference
-
export MACRO_PLACE_HALO = 10 10Keeps a 10 micron band clear around each macro, in x and y.
Hint: Two numbers, and the space they describe stays empty.
Cells packed against a macro leave no room to reach the macro's pins or to add buffers later. The halo reserves that room. It is used by automatic macro placement. OpenROAD-flow-scripts reference
-
export MACRO_PLACEMENT_TCL = ./designs/nangate45/bp/macro.tclPlaces named macros by hand, leaving the rest to the automatic placer.
Hint: You can use it for some macros and leave the others alone.
The file holds
place_macrocommands. Any macro it does not place is left tortl_macro_placer, which is how a floorplan fixes the macros that matter and lets the tool handle the rest. OpenROAD-flow-scripts reference -
export IO_CONSTRAINTS = ./designs/nangate45/gcd/io.tclRestricts where the boundary pins may be placed, by edge or by name.
Hint: Ask which stage reads it, and what it would otherwise decide for itself.
The file holds
set_io_pin_constraintand related commands, read beforeplace_pins. Without it the pin placer is free to put any pin anywhere on the boundary. The layers are set separately byIO_PLACER_HandIO_PLACER_V. OpenROAD-flow-scripts reference -
export PDN_TCL = $(PLATFORM_DIR)/grid_strategy-M1-M4-M7.tclGives the script that describes the power grid to build.
Hint: The file name names three layers. Ask what is built across them.
The script holds the grid definition commands: the rails, the straps per layer, and the layer pairs to connect, which
pdngenthen builds. It usually comes from the platform, since the grid depends on the metal stack. OpenROAD-flow-scripts reference -
export TAPCELL_TCL = $(PLATFORM_DIR)/tapcell.tclGives the script that inserts the well taps and the endcap cells.
Hint: Two kinds of cell, both about the rows rather than the logic.
The script calls
tapcellwith the platform's masters and spacing. The spacing comes from the foundry's rule on how far a transistor may be from a well tap, so the script belongs to the platform. OpenROAD-flow-scripts reference -
export FLOORPLAN_DEF = ./designs/nangate45/bp/floorplan.defStarts from a ready-made floorplan instead of creating one.
Hint: Ask what it replaces, rather than what it adds.
The file brings the die and core areas, the rows, and often the pin and macro placement. It is mutually exclusive with sizing by utilization or by explicit areas, and it is how an externally agreed floorplan enters the flow. OpenROAD-flow-scripts reference
-
export MACRO_WRAPPERS = ./designs/src/bp/wrappers.tclSwaps each macro for a wrapped version of it before placement.
Hint: Ask why a macro would be replaced by another version of itself.
A wrapper adds what the macro itself does not carry, such as pin access structures or a keepout, so the flow can treat a bare macro as a well-behaved block. OpenROAD-flow-scripts reference
-
export RTLMP_MAX_MACRO = 12Allows at most 12 macros in one cluster of the macro placer.
Hint: The macro placer groups things first. Ask what the number limits.
The placer clusters the netlist into a hierarchy of blocks and shapes them before placing macros. The cluster limits,
RTLMP_MAX_MACRO,RTLMP_MIN_MACRO, and their instance counterparts, control how coarse that hierarchy is. Unset, the tool derives values from the design. OpenROAD-flow-scripts reference