Problems
Real physical-design tasks, the kind an engineer is actually handed, each graded by a tool run on the layout you produce. Grouped by the six Education topics, in flow order. This is the plan: the problem types below are being built out.
Logic Synthesis
8 problem types
Technology-independent optimization
3
Shrink the Boolean logic before any library is chosen: fewer product terms, shared subexpressions, and no redundant gates.
-
Two-level minimization interactive
Cover every 1 of a function with the fewest prime implicants, essentials first. Open the lab →
-
Constant propagation and dead-logic sweep interactive
Tie inputs to constants, propagate, and remove the gates that go constant or unused. Open the lab →
-
Common-subexpression extraction interactive
Factor a shared term so it is built once, cutting gate and literal count. Open the lab →
Technology mapping
2
Cover the optimized network with real standard-cell library gates, trading area against delay.
-
Technology mapping for area interactive
Cover a NAND/inverter subject graph with library cells at the least total area. Open the lab →
-
Technology mapping: area vs delay interactive
Cover the same graph for delay: spend area on the critical path to meet the target. Open the lab →
Sequential optimization
2
Place and encode the state elements so the pipeline is balanced and the state logic is small.
-
Retiming interactive
Move flip-flops across logic to balance stages and shrink the clock period, behavior unchanged. Open the lab →
-
FSM state encoding interactive
Assign state codes so related states are close, minimizing next-state logic. Open the lab →
Datapath synthesis
1
Choose the gate-level implementation of an arithmetic operator to hit the delay target at least area.
-
Datapath operator selection interactive
Pick an adder architecture (ripple, carry-select, lookahead) for the delay target at least area. Open the lab →
Floorplanning
19 problem types
Macro placement
6
Position a block's hard macros on the die - the core skill of floorplanning. Each lab is a distinct chip and a distinct constraint, worked entirely in the browser: drag the macros, run the checks, place and route, and submit for a score.
-
Manual macro placement interactive
Place a RISC-V core's macros by hand so the design routes with no congestion overflow and closes timing. Open the lab →
-
Macro placement around fixed IP interactive
Place an image-signal-processor's logic around three locked hard-IP blocks you cannot move. Open the lab →
-
Placement with a keepout interactive
Place a wireless-modem's macros around two reserved analog guard regions (the RF/ADC and PLL) they cannot overlap. Open the lab →
-
Congestion relief interactive
Fix a network-switch floorplan with a routing hotspot by spreading the unlocked macros to reopen the routing channels. Open the lab →
-
Fixed-outline packing interactive
Pack 25 macros into a deliberately small, tall die at high utilization, where fitting them legally is the challenge. Open the lab →
-
Macro orientation and pin access interactive
Rotate each macro so its pin edge faces what it connects to, instead of forcing the wire to wrap around the block. Open the lab →
Pin placement
2
Place a block's boundary I/O pins on the die edge so the nets to the logic that drives and receives them stay short.
-
DDR PHY pin placement interactive
Place a DDR memory PHY's I/O pins on the die edge next to the byte lane, clock, or controller each one serves, to minimize wirelength and close the high-speed nets. Open the lab →
-
SerDes bus and I/O placement interactive
The hard one: a wide SerDes die with two data buses that must each be packed as a contiguous block by their datapath, plus lane and clock pins, around fixed power pins. Open the lab →
Power grid design
7
Build the power delivery network that feeds the block without starving it or blocking the signal routing, then close it against the voltage-drop and reliability budgets.
-
Power ring and mesh sizing interactive
Size the core power ring and the upper-metal stripe width and pitch so the network meets its static IR (current times resistance) drop budget without eating the routing tracks. Open the lab →
-
Regional mesh: per-domain IR drop interactive
The hard one: a die split into power regions with different currents and different IR-drop budgets. Reinforce the mesh per region, since a uniform grid either starves the hot core or over-blocks the routing-heavy logic. Open the lab →
-
Standard-cell rail hookup interactive
Size the metal-1 power rails and the via straps up to the mesh so every cell meets its local IR (current times resistance) drop without walling off the M1 tracks. Open the lab →
-
Power bump placement (flip-chip) interactive
Place the power bump array that feeds the mesh from the package so current enters evenly and no region is starved of it. Open the lab →
-
Static IR-drop closure interactive
Close a flagged IR-drop violation on a non-uniform current map by sizing the whole metal stack: lean on the cheap coarse top straps for the global drop and thread just enough routing-hungry mid straps for the local hotspots. Open the lab →
-
Decap insertion for dynamic droop interactive
Place decoupling capacitors on the switching hotspots to hold the rail voltage during peak current, meeting the dynamic voltage-droop budget. Open the lab →
-
Electromigration-safe sizing interactive
Widen the high-current stripes and grow their via arrays so the current density stays under the electromigration (EM) limit for the grid's rated lifetime. Open the lab →
Block sizing
1
Choose the die and core geometry before placement: area, aspect ratio, and how densely to pack.
-
Die and utilization sizing interactive
Choose the utilization and aspect ratio to hit an area target while staying routable and meeting timing: the tightest routable square wins. Open the lab →
Partitioning
1
Split the design into regions for hierarchy, keeping tightly-connected logic together so few nets cross the cuts.
-
Min-cut partitioning interactive
Sort the sub-blocks into two balanced regions so as few nets as possible are cut across the boundary. Open the lab →
Power domains
1
Floorplan multiple voltage domains: keep each domain contiguous and keep the level-shifter nets between them short.
-
Voltage-domain floorplanning interactive
Group each voltage domain into its own contiguous region and place the cross-domain blocks near the shared boundary so the level-shifter nets stay short. Open the lab →
Thermal
1
Place blocks so the die stays under its temperature limit while timing still closes.
-
Thermal-aware placement interactive
Spread the high-power blocks to cool the hotspot while keeping the critical nets short: two hot blocks wired together can be neither too close nor too far. Open the lab →
Placement
12 problem types
Global placement
5
Arrange the standard cells across the die - short wires, closed timing, and a routable density.
-
Wirelength-driven placement interactive
Drag the cells to minimize total wirelength: cluster connected cells and pull them toward the pins they reach. Open the lab →
-
Timing-driven placement interactive
Pull the cells on the critical nets tightly together so those paths come under their delay budget. Open the lab →
-
Congestion-driven placement interactive
Spread the cells so no region's density exceeds the routable limit, while keeping wirelength under target. Open the lab →
-
Full global placement (all three) interactive
The real job: hit the wirelength target, close the critical path, and stay under the density limit all at once, balancing objectives that pull against each other. Open the lab →
-
Mixed-size placement interactive
Place the standard cells in the channels around fixed hard macros, threading the wires past the blockages. Open the lab →
Clock-aware placement
1
Place with the clock network in mind, not just the data nets - group the flip-flops so the clock tree stays short.
-
Register clustering (clock-aware) interactive
Pack the registers that share a clock into one tight cluster to shorten the clock tree, while their data nets still reach the boundary pins. Open the lab →
Legalization
1
Snap the global-placement result onto the legal rows with no overlap, disturbing it as little as possible.
-
Row legalization interactive
Drag the overlapping, off-grid cells onto the rows with no overlap and minimal displacement from their global spots. Open the lab →
Detailed placement
3
Local, discrete moves that shave the last of the wirelength after global placement and legalization.
-
Cell swapping interactive
Swap cells between legal slots to reorder them and shrink the total wirelength under target. Open the lab →
-
Cell flipping (orientation) interactive
Mirror cells in place so their input and output pins face the cells they connect to, shortening the wires. Open the lab →
-
Cell padding for routability interactive
Pad the pin-heavy cells in a congestion hotspot to spread their pins, trading a little wirelength for a routable local density. Open the lab →
Filler and tap insertion
1
The finishing pass after cells are placed and legalized: close the gaps and tie the wells so the rows are manufacturable.
-
Filler and tap-cell insertion interactive
Fill every gap for rail and well continuity, and drop well taps so every site is within the latch-up reach, with as few taps as possible. Open the lab →
Constrained placement
1
Place cells under region and fence constraints, not just for wirelength.
-
Region-constrained placement interactive
Keep the fenced cells inside their region box while minimizing wirelength for the rest. Open the lab →
Clock Tree Synthesis
13 problem types
Clock tree structure
6
Distribute the clock from the source to every flip-flop with balanced path lengths - the root of low skew.
-
Clock source balancing interactive
Place the clock root so a star clock's path lengths to every sink are as equal as possible, minimizing skew. Open the lab →
-
H-tree construction interactive
Position the tap points of an H-tree over a sink grid so every root-to-sink path matches, the classic zero-skew structure. Open the lab →
-
X-tree construction interactive
The H-tree's diagonal cousin: balance four quadrant taps with straight-line (Euclidean) routing instead of right-angle segments. Open the lab →
-
Clustered buffer tree interactive
Cluster irregularly-placed sinks and balance a buffered tree over them, compact clusters with equal arms - what a real CTS tool builds. Open the lab →
-
Clock mesh interactive
Inject drivers into a shorted clock grid; the fewest, best-spread drivers that bring the covering radius (skew) under target, trading power for robustness. Open the lab →
-
Clock spine (fishbone) interactive
Place a central spine and its drive point so the ribbed rows of sinks arrive balanced, the ASIC middle ground between tree and mesh. Open the lab →
Buffering and skew
3
Drive the tree cleanly and equalize arrival times across the sinks.
-
Clock buffer insertion interactive
Insert buffers to split the tree into regions so no driver's transition (slew) blows the load limit, with as few buffers as possible. Open the lab →
-
Skew balancing (delay matching) interactive
Add delay on the early branches to lift them up to the latest sink, using shared edges to spend the fewest buffers. Open the lab →
-
Buffer-level balancing (OCV) interactive
Give every sink the same number of buffer stages so on-chip variation tracks across paths, adding matching buffers on the shallow branches without over-raising deep sinks. Open the lab →
Clock power
2
The clock is often the largest power sink - cut its dynamic and switching power.
-
Clock gating insertion interactive
Gate idle register banks with ICG cells, sharing one gate per enable domain, for the most net power saved. Open the lab →
-
Multi-bit flip-flop banking interactive
Merge nearby flops into multi-bit banks that share a clock buffer, without stretching their data nets past budget. Open the lab →
Advanced clock techniques
2
Trade skew deliberately and route the clock with special rules.
-
Useful skew interactive
Skew one flip-flop's clock to borrow time and close a failing setup path, without breaking hold or the next path. Open the lab →
-
Non-default-rule clock routing interactive
Size the clock trunk's width, spacing, and shielding to meet slew and crosstalk within a routing-track budget. Open the lab →
Routing
12 problem types
Global routing and congestion
2
Decide the coarse routes and relieve congestion before the detailed router runs.
-
Global routing and congestion interactive
Choose each net's coarse route so no routing tile exceeds its track capacity. Open the lab →
-
Rip-up and reroute interactive
Reroute the offending nets of a congested design until every tile is back within capacity. Open the lab →
Layer and track assignment
2
Assign nets to metal layers and to tracks within a channel.
-
Layer assignment interactive
Put long, critical nets on the fast upper layers to meet delay, within each layer's scarce track count. Open the lab →
-
Track assignment interactive
Pack the channel's wires onto tracks with no two overlapping spans on the same track. Open the lab →
Detailed routing and design rules
6
Find the actual paths and lay the real geometry: shortest-path routing, design-rule clean, few vias, no antennas.
-
Maze routing interactive
Lee's algorithm: flood a distance wave from the source, then backtrace the shortest path down the gradient around blockages. Open the lab →
-
Multi-pin (Steiner) routing interactive
Connect a net's several pins through a shared branch point, placed at the median for the least total wire. Open the lab →
-
Design-rule-clean routing interactive
Fix minimum-spacing and blockage violations so the wires pass design-rule checks. Open the lab →
-
Via minimization interactive
Route with the fewest layer changes: every turn in a preferred-direction route is a via. Open the lab →
-
Antenna-rule fixing interactive
Fix antenna-ratio violations with diodes or layer jumps at minimum cost. Open the lab →
-
Pin access interactive
Give every crowded cell pin its own access track so the router can drop a via onto each one. Open the lab →
Special-net routing
2
The nets that need extra care: matched buses and crosstalk-sensitive signals.
-
Bus length matching interactive
Tune a matched group (a source-synchronous / DDR byte-lane bus) with serpentine detours so every bit arrives within the skew tolerance. Open the lab →
-
Crosstalk-aware routing interactive
Space or shield victim nets to keep crosstalk under the limit within a track budget. Open the lab →
Static Timing Analysis
11 problem types
Slack and timing paths
4
The fundamentals: what slack is, the two checks, and the path that limits the clock.
-
Slack and maximum frequency interactive
Push the clock period down until setup slack reaches zero - that is the path's max frequency. Open the lab →
-
Setup and hold interactive
Land the data-path delay in the window where both setup (not too slow) and hold (not too fast) are met. Open the lab →
-
Critical path interactive
Identify the least-slack path among several - the one that sets the design's speed. Open the lab →
-
Interface (I/O) timing interactive
Budget the off-chip part of an input/output path (set_input_delay / set_output_delay), and register the boundary to reclaim frequency. Open the lab →
Clocking
3
How real clock behaviour and timing constraints shape the analysis.
-
Clock uncertainty interactive
Budget the clock-uncertainty guardband (jitter/skew) into the period and see the max frequency drop. Open the lab →
-
Timing exceptions interactive
Apply multicycle and false-path exceptions so real paths are analyzed and false alarms cleared - without hiding real bugs. Open the lab →
-
Time borrowing (latches) interactive
See how a transparent latch lets a slow stage borrow time past the clock edge, where a flip-flop would fail. Open the lab →
Variation and signal integrity
3
Sign-off across corners and the effects that steal timing margin.
-
Multi-corner sign-off interactive
Meet setup at every corner; the slow corner limits the frequency, not the typical one. Open the lab →
-
On-chip variation and CPPR interactive
Recover pessimistic OCV margin with common-path pessimism removal. Open the lab →
-
Crosstalk delta-delay interactive
Add the worst-case crosstalk delta to the path and re-close timing. Open the lab →
Report literacy
1
Reading the timing report - most of the day-to-day STA job.
-
Reading a timing report interactive
Read the arrival and required paths and compute the slack. Open the lab →
Physical Verification
10 problem types
Design rule checks
4
The geometric rules a layout must obey to be manufacturable: width, spacing, enclosure, area, and density.
-
Minimum width and spacing interactive
Find the shapes that violate minimum width or spacing, checking the rule values, not by eye. Open the lab →
-
Via enclosure and minimum area interactive
Find the under-enclosed vias and the shapes below minimum area. Open the lab →
-
Width-dependent and end-of-line spacing interactive
Triage each spacing against the width-keyed table and the end-of-line rule. Open the lab →
-
Density and metal fill interactive
Add fill so every window lands in the density band for CMP (Chemical Mechanical Polishing) planarity. Open the lab →
Layout versus schematic
2
Proving the extracted layout netlist matches the intended schematic: connectivity and devices.
-
Shorts and opens interactive
Find the short (merged nets) or open (broken net) against the schematic. Open the lab →
-
Device matching interactive
Find the device that does not match: wrong size, wrong type, or missing. Open the lab →
Antenna and manufacturability
2
Charge-damage protection and yield-oriented recommended rules, checked before tapeout.
-
Antenna ratio and diodes interactive
Read each net's antenna ratio; layer-jump where it clears the limit, add a diode only where it cannot. Open the lab →
-
Redundant vias (via doubling) interactive
Double every via that has room for a redundant cut; leave boxed-in vias single. Open the lab →
Electrical rules and sign-off
2
Electrical correctness and the final go / no-go gate before tapeout.
-
Floating nodes and tie cells interactive
Find floating gate inputs and insert tie-high / tie-low cells. Open the lab →
-
Tapeout sign-off gate interactive
Mark the design ready only when DRC (Design Rule Check), LVS (Layout Versus Schematic), antenna, and density all pass. Open the lab →
ECO
12 problem types
Setup timing ECO
6
Speed up a path that arrives too late, in place, without changing the logic.
-
Gate sizing to close a setup path interactive
Size the cells on a path so data reaches the capture flip-flop with positive setup slack. Open the lab →
-
Buffer insertion interactive
Split a long, high-load net with a buffer so each segment drives less. Open the lab →
-
Threshold-voltage swap interactive
Swap critical cells to a faster low-Vt variant, spending the least leakage. Open the lab →
-
Pin swap interactive
Put the late signal on the faster input pin, shortening the path with no new area. Open the lab →
-
Driver cloning and load split interactive
Clone a high-fanout driver and split its load. Open the lab →
-
Logic restructuring interactive
Reshape the logic into a balanced tree with the late signal nearest the output, same function. Open the lab →
Electrical ECO
1
Fix electrical design-rule violations (max fanout, capacitance, and transition), not slack.
-
Electrical DRV fix (fanout, cap, transition) interactive
Split a high-fanout net with buffers until every driver meets all three electrical rules. Open the lab →
Hold timing ECO
1
Add delay so early-arriving data clears the hold requirement.
-
Hold fixing (delay insertion) interactive
Insert delay cells on fast paths to meet hold without breaking setup. Open the lab →
Clock ECO
1
Shift a clock arrival to move slack between stages.
-
Useful-skew clock ECO interactive
Retard or advance a flop's clock to lend slack to the tighter stage. Open the lab →
Functional ECO
2
Change the logic itself with the least disturbance, metal-only where the spare cells allow it.
-
Metal-only spare-cell ECO interactive
Implement a logic change by rewiring nearby spare cells, metal and via only. Open the lab →
-
Metal-only vs all-layer decision interactive
Decide per change whether it fits the spares (metal-only) or needs a full respin. Open the lab →
Placement ECO
1
Legalize ECO-inserted cells back onto the site grid with the least displacement.
-
Placement ECO and legalization interactive
Snap inserted cells into the nearest legal gap, no overlap, minimal displacement from ideal. Open the lab →