packages/chip/docs/project/board-package-pd-fpga-critical-gap-audit.md
Date: 2026-05-17
Scope: board/**, package/**, pd/**, scripts/check_fpga_target.py, scripts/check_padframe_contract.py, scripts/check_pd_signoff.py, and scripts/product_check.py.
The current tree is a contract scaffold, not a release-ready board, package, tapeout, or FPGA bitstream package. product-check must be interpreted as a release gate after this audit: it fails while placeholder packages, missing KiCad artifacts, incomplete PD signoff, and FPGA pin-assignment blockers remain.
package/e1-demo-pinout.yaml declares package: qfn64_placeholder and notes that real foundry pad cells, ESD rules, package data, and bond diagrams must replace it before fabrication.docs/package/e1-demo-package.md is explicitly a placeholder QFN64-style planning document and states that it is not a foundry-approved package.docs/package/e1-demo-pad-ring.md states that RTL does not instantiate foundry pad cells; ESD and corner pads are delegated to a future shuttle/package flow.pd/padframe/e1_demo_padframe.yaml has status: contract_scaffold, with release gates blocked for padframe, package, and board fabrication.docs/pd/padframe/e1_demo_padframe.md is a planning contract, not foundry IO-ring release evidence.Required closure:
NC1 through NC11 are intentionally no-connect package positions and have no functional assignment.board/fpga/constraints/e1_demo_ulx3s.lpf lists required logical ports only in comments. There are no active LOCATE COMP package-pin assignments.board/fpga/e1_demo_fpga.yaml records board.exact_revision: unassigned and keeps bitstream_release_blocked_until_pins_assigned: true.Required closure:
e1_chip_top external signal to physical FPGA package pins.LOCATE COMP, IOBUF, and clock constraints.Only docs/board/kicad/e1-demo/fab-notes.md exists under the KiCad project directory. The following release artifacts are missing:
*.kicad_pro*.kicad_sch*.kicad_pcbRequired closure:
pd/signoff/manifest.yaml explicitly marks si_pi and pdn_current_budget as blocked. Missing evidence includes:
VDDCORE and VDDIO.VDDCORE.VDDIO.Required closure:
pd/signoff/manifest.yaml.No complete OpenLane/OpenROAD run directory was found under the manifest run roots:
pd/openlane/runsrunsThe required signoff artifact classes are declared in pd/signoff/manifest.yaml but absent from one complete selected run:
Release gates still blocked in the manifest:
pd_releasetapeout_releaseboard_fabrication_releaseRequired closure:
scripts/check_fpga_target.py validates the current scaffold contract, but it is not a bitstream release check. The release blockers are:
board/fpga/e1_demo_fpga.yaml has status: scaffold.board.exact_revision is unassigned.constraints.bitstream_release_blocked_until_pins_assigned is true.Required closure:
e1_demo_fpga.yaml only after exact hardware is selected.product-check failing until the bitstream release blocker is removed with evidence.fpga-check remains a scaffold consistency check: it should pass while still documenting bitstream blockers.padframe-check remains a scaffold contract check: it should pass while release gates remain blocked.pd-contract-check remains a manifest/preflight contract check: it should pass when required blocking sections are present.product-check is now a release-readiness check: it must fail until package, KiCad, FPGA bitstream, and PD signoff blockers are closed.