Expand description
Packing EVERY signed-off macro into ONE Caravel shuttle submission.
A shuttle slot buys one 2920 x 3520 um user area, and until now exactly one block has ever occupied it. The other fifteen signoff-clean macros were “manufacturable” only in the sense that each could be packaged — none was, and sixteen slots is not a plan.
They do not need sixteen slots. Measured from their hardened LEFs, the sixteen clean macros
total 4.771 mm^2 against the 10.278 mm^2 user area: 46% occupancy, all of them, in one
submission. Every one already has a hardened .lef/.gds/.lib from the run its signoff
ledger entry vouches for, so nothing has to be re-hardened to do this — only placed, powered
and wired.
WIRING IS THE REAL WORK. Caravel speaks Wishbone; these macros do not. Their ports are small
and regular though (3 to 18, mostly clk/rst plus a couple of data words), so the bridge is
mechanical: give each macro an address window, map its inputs to write registers and its
outputs to read registers, and share the clock and reset. That is generated here rather than
hand-written sixteen times, because hand-writing it sixteen times is how a submission ends up
instantiating a module nothing defines.
Structs§
- Macro
Port - One port of a macro, as its RTL declares it.
- Placement
- Where a macro sits in the user area, in LEF orientation terms.
- Shuttle
Macro - A hardened, signoff-clean macro and the footprint its LEF reports.
Enums§
- Shuttle
Unplaceable - Why a set of macros cannot share one user area.
Constants§
- CLEAN_
MACROS - Every signoff-clean macro, with the footprint its own hardened LEF reports.
- MACRO_
ADDR_ STRIDE - Address window per macro. 0x100 gives 64 registers — far more than the widest macro here needs (18 ports), and keeps each base a readable multiple in a memory map a human debugs.
- MACRO_
KEEPOUT_ UM - Micrometres of keep-out around every macro.
Functions§
- emit_
macro_ cfg - OpenLane
macro.cfglines:<instance> <x> <y> <orientation>. - emit_
pdn_ hooks FP_PDN_MACRO_HOOKS— every macro must be hooked to the user-area supply, or the power connections check fails the submission outright.- plan_
shuttle - Shelf-pack the macros into the user area, tallest first.