journal 2026-04-30

P17 hardens as a logic-only external-memory shell

p17librelanehardeningriscv

P17 now has a real LibreLane run. The design still uses a behavioral 256 KiB memory model for the official-test batch, but the chip that got hardened is the logic-only CPU/loader shell with an exposed external memory bus.

Command:

make harden PROJECT=17_rv32i_external_mem

Result: PASS

fieldvalue
Run directoryprojects/17_rv32i_external_mem/librelane/runs/RUN_2026-04-30_17-22-47
Final GDSprojects/17_rv32i_external_mem/librelane/runs/RUN_2026-04-30_17-22-47/final/gds/top.gds
Metricsprojects/17_rv32i_external_mem/librelane/runs/RUN_2026-04-30_17-22-47/final/metrics.json
Route DRCPASS (0)
Magic DRCPASS (0)
KLayout DRCPASS (0)
LVSPASS (0)
AntennaPASS (0)
Setup timingPASS (0 violations, worst setup slack 10.306 ns)
Hold timingPASS (0 violations, worst hold slack 0.105 ns)

Before rerunning the flow, the P17 SDC got the same basic treatment as P16: exclude clk from the generic input-delay group, add IO drive/load context, and keep the clock handling explicit. That removed the avoidable clock input-delay warning.

The manufacturability checks are clean. The remaining backend warnings are not fake-zeroed:

warningresult
Max slew checkerPARTIAL (2971 warnings)
Max capacitance checkerPARTIAL (29 warnings)
Floating-net checkerPARTIAL (2 warnings)
IR-drop setupPARTIAL (VSRC_LOC_FILES not provided)

This does not change the architecture result. P17 still has 2 PASS, 37 FAIL, and 0 NOT RUN across the official rv32i/I batch. The value of this run is narrower but useful: the external-memory version is physically buildable as a logic shell, so the next round can focus on architectural debug instead of debating whether the project can reach GDS.