Power delivery network
The cards come in more than one shape: a command to explain, and a description whose command you name. 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 12 cards in this section, with answers
-
add_global_connection -net VDD -inst_pattern .* -pin_pattern VDD -powerDeclares that every instance's VDD pin belongs to the VDD net.
Hint: Standard cells have supply pins but no supply nets in the netlist. The patterns are regular expressions.
-powermarks the net as a supply. Synthesis leaves supply pins unconnected, so they are connected by pattern instead of one by one.-powerand-groundsay which kind of supply the net is, which the grid generator and the analysis need. OpenROAD reference -
global_connectApplies the rules, connecting the matching pins to their nets.
Hint: Compare it with add_global_connection, which comes first.
The rules come from
add_global_connection. They are declared first and applied afterwards, so a script can add several and connect once. Commands that build the grid also apply the rules, and-verbosereports how many pins each rule connected. OpenROAD reference -
define_pdn_grid -name main_grid -pins metal7 -voltage_domain COREStarts a grid definition that later straps are added to.
Hint: Nothing is built yet. Ask what the command starts.
It applies to the voltage domain named, here CORE. A grid is described in pieces: the definition, then straps, rings, and connections, and finally
pdngenbuilds it.-pinsnames the layers where block pins for the supplies are made. With-macrothe definition applies to macros instead of the core. OpenROAD reference -
add_pdn_stripe -grid main_grid -layer metal1 -width 0.48 -followpinsCreates the metal1 supply rails that follow the placement rows.
Hint: The -followpins flag ties these stripes to something already in the floorplan.
These are the standard cells' own power and ground rails. With
-followpinsthe pitch and the spacing come from the rows, since one rail runs along each row's supply pins. Without it, straps are regular and need-pitch,-offset, and-width. OpenROAD reference -
add_pdn_stripe -grid main_grid -layer metal4 -width 0.48 -pitch 56.0 -offset 2.0Adds metal4 straps every 56 microns, offset from the corner.
Hint: Two numbers describe the pattern: how often, and from where.
Each strap is a power and ground pair. The pitch is the distance between one pair and the next, and the offset is measured from the core's lower-left corner. A wider pitch leaves more room for signal routing and carries less current.
-spacingsets the gap inside a pair, half the pitch by default. OpenROAD reference -
add_pdn_connect -grid main_grid -layers {metal1 metal4}Declares metal1 and metal4 joined, so vias go where they overlap.
Hint: Straps on different layers cross but do not touch. Ask what is missing.
Each overlapping pair of same-net straps becomes a via stack when
pdngenruns. Via rules from the technology are used unless-fixed_viasnames ready-made vias. Without a connect rule the two layers simply cross. OpenROAD reference -
pdngenBuilds the grid that the definitions describe, adding the straps, rings, and vias.
Hint: Everything so far was description. Ask what turns it into metal.
-report_onlyprints the specification,-check_onlychecks it, and-resetclears it.-ripupremoves a grid built earlier so it can be rebuilt, and the final trim step removes metal stubs unless-skip_trimis given. OpenROAD reference -
repair_pdn_vias -net VDDRemoves power vias that break design rules after routing.
Hint: It runs after detailed routing. Ask what routing can do to a via that was already built.
It runs after detailed routing, because signal routing around a via stack can leave it violating spacing rules. Removing the offending vias keeps the design rule clean at the cost of a little grid connectivity. OpenROAD reference
-
analyze_power_grid -net VDD -voltage_file vdd.rptComputes the IR (current times resistance) drop across the VDD grid.
Hint: The grid has resistance and the cells draw current. Ask what that costs.
-voltage_filewrites the voltage at each instance. Current drawn through the grid's resistance lowers the voltage the cells actually see, which slows them.-enable_emadds the current per segment for electromigration, and-error_filerecords nodes that could not be solved. OpenROAD reference -
check_power_grid -net VDDChecks that the VDD grid is fully connected, with no island cut off from a source.
Hint: It comes before the analysis. Ask what would make the analysis meaningless.
A disconnected piece of grid has no path to a supply source, so the analysis cannot solve for its voltage. The check finds that before the analysis runs. OpenROAD reference
-
add_pdn_ring -grid main_grid -layers {metal6 metal7} -widths 5.0 -spacings 3.0 -core_offsets 5Puts a supply ring around the grid, 5 microns outside the core.
Hint: Two layers are given because a ring has to go in both directions.
The horizontal layer carries the pairs above and below, the vertical layer the pairs left and right, so the four together form the ring. The straps inside are extended to meet it, which is how current gets from the ring into the grid. OpenROAD reference
-
The floorplan exists and you need rings and straps built on the upper layers and dropped onto the standard cell rails.pdngen
Hint: One of these builds the grid; one only measures it afterwards.
The generator builds the grid from a definition written beforehand. Global connections tell the tool which pins belong to which supply, which is a prerequisite rather than the builder, and the analysis command measures the voltage drop on a grid that already exists. OpenROAD reference