Skip to the content
4 layers206.6 × 142 mmPower delivery, the printed circuit board in 3D

This is

Size
206.6 × 142 mm
Copper layers
4
Thickness
1.73 mm
Parts
477
Nets
256
Pads
1,468
Tracks, vias
2,240, 174
Pours
68
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
4 Jan 2026
Updated
6 Jan 2026

Overview

Power delivery is an open-source printed circuit board by ddacot, from the ddacot/fpga-cluster-framework repository on GitHub. It is a 4-layer board of 206.6 × 142 mm with 477 parts on 256 nets, routed with 2,240 tracks and 174 vias.

It is built around the B2B-XH-A, CPDQC5V0U-HF and XT90PW-M.G.Y, with the 3SMBJ5925B-TP, SC32S-7PF20PPM and TS02-66-50-BK-100-LCR-D among its other parts. Its parts include 172 capacitors, 97 resistors, 66 ICs, 64 diodes and 38 connectors. It belongs with the power boards and the STM32 boards of this library.

Main components

7

README

README.md

FPGA Cluster Framework

A scalable, FPGA-based cluster framework for parallel data acquisition and repeatable evaluation of hardware primitives (e.g., TRNGs, PUFs, and other custom bitstream-generating DUTs). The framework combines:

  • Host-side automation (programming, orchestration, data collection, metadata logging)
  • A synthesizable FPGA “shell” (control plane + high-throughput capture path)
  • A pluggable DUT interface (drop in your TRNG/PUF/primitive and stream data into DDR-backed capture)

This repository is organized to include technical documentation, scripts, RTL, tooling, and PCB designs for the cluster setup.

If you are using this repository as part of a research portfolio, this README is written to be self-contained and reproducible for third parties who want to understand or rebuild the system.


Contents


What this framework does

This framework is designed to make it practical to collect large, statistically meaningful datasets from hardware primitives across many FPGA instances, enabling you to:

  • Run identical designs on multiple boards and compare results across devices
  • Sweep configuration parameters and capture results consistently
  • Log build + runtime metadata to support repeatable experiments
  • Separate control and data responsibilities cleanly:
    • Control plane: programming, register writes, run control, status
    • Data plane: streaming capture into DDR via DMA (or equivalent)

Typical use cases:

  • TRNG / entropy-source characterization and NIST compliance (throughput, bias, stability, robustness)
  • PUF response collection across many devices
  • Side-channel/physical-variation experiments requiring consistent capture workflows
  • Automated regression testing of DUT changes

Repository structure

  • documentation/ # PDF technical documentation and design notes
  • fpga_cluster_fw/ # Folder containing the firwmare
  • fpga_cluster_scripts/ # Host automation (programming, orchestration, data pulls, metadata)
  • fpga_cluster_hw/ # FPGA design (shell + DUT interface + top-level integration)
  • tools/ # Build helpers (TCL, Makefiles, environment setup, utilities)
  • hardware/ # PCB / hardware design files for the Power Delivery and Communication interface

System overview

Conceptual architecture

Data path (capture pipeline):

  • [DUT / TRNG / PUF] -> (stream) -> [FIFO/Adapter] -> [DMA/Writer] -> [DDR Capture Buffer] -> Host readout

Control path (orchestration):

  • Host scripts program the FPGA, load firmware (if used), configure registers, start/stop capture, and retrieve data.

Design principles

  • Pluggable DUT: DUT logic is isolated so you can swap primitives without rewriting the whole platform.
  • DDR-backed capture: Enables high-throughput collection without requiring real-time USB streaming.
  • Cluster automation: Host scripts should handle multi-board runs, retries, and consistent metadata.

Hardware prerequisites

This framework typically targets FPGA boards with:

  • A Xilinx FPGA (e.g., Artix-7 class or similar)
  • External DRAM (e.g., DDR3/DDR4) accessible from fabric
  • A programming interface (typically JTAG over USB)

Update with your tested hardware:

  • Board(s): Xilinx Artix 7
  • Memory: DDR3
  • Programming interface: JTAG
  • Clocking: 100MHz (Adjustable)

Cluster setup notes (practical considerations):

  • Use a powered USB hub suitable for the number of boards
  • Ensure adequate power delivery and cooling
  • Label boards (serial numbers / device IDs) to support reproducible tracking

Software prerequisites

Typical host environment requirements:

  • Vivado (synthesis/implementation/bitstream)
  • Vitis / XSDK (only if building embedded firmware; optional depending on design)
  • Xilinx cable drivers (for JTAG)
  • XSDB / xsct (common for scripted programming and debug)
  • Python 3 (common for orchestration scripts)
  • Common tools: make, bash, tcl

Tested tool versions (fill in):

  • Vivado: 2023.4
  • Vitis/SDK: [INSERT VERSION]
  • OS: Linux/Windows
  • Python: 3.11

Python requirements:

  • scripts/requirements.txt

Quick start

1) Clone

bash
git clone https://github.com/ddacot/fpga-cluster-framework.git
cd fpga-cluster-framework

Parts

477
QtyValueFootprintReferences
1314.7uFpower_delivery_footprints:C_0603_1608MetricC10, C11, C100, C101, C102, C103, C104, C105, C106, C107, C108, C109, C110, C111, C112, C117 +115
6510kpower_delivery_footprints:R_0603_1608MetricR1, R2, R3, R14, R15, R16, R17, R18, R19, R20, R21, R26, R27, R28, R29, R30 +49
330.1uFpower_delivery_footprints:C_0603_1608MetricC13, C14, C15, C16, C113, C114, C115, C116, C133, C134, C135, C136, C153, C154, C155, C156 +17
33C1T 2.5power_delivery_footprints:0685T2500U1, U10, U15, U16, U17, U18, U23, U24, U25, U26, U31, U32, U33, U34, U39, U40 +17
32100power_delivery_footprints:R_0603_1608MetricR10, R11, R12, R13, R22, R23, R24, R25, R34, R35, R36, R37, R46, R47, R48, R49 +16
32B2B-XH-Apower_delivery_footprints:B2B-XH-AJ10, J11, J12, J13, J14, J15, J16, J17, J18, J19, J20, J21, J22, J23, J24, J25 +16
32CPDQC5V0U-HFpower_delivery_footprints:CPDQC5V0U-HFD1, D2, D3, D10, D11, D12, D17, D18, D19, D20, D25, D26, D27, D28, D33, D34 +16
32LEDpower_delivery_footprints:LED_0603_1608MetricD13, D14, D15, D16, D21, D22, D23, D24, D29, D30, D31, D32, D37, D38, D39, D40 +16
32SW_SP3Tpower_delivery_footprints:DIP4_SP3T-TOP_4P3X8P6_CNKSW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24 +16
32TPS22965NDSGRpower_delivery_footprints:TPS22965NDSGRU3, U11, U12, U13, U14, U19, U20, U21, U22, U27, U28, U29, U30, U35, U36, U37 +16
4XT90PW-Mpower_delivery_footprints:AMASS_XT90PW-MJ35, J36, J37, J38
215pFpower_delivery_footprints:C_0603_1608MetricC4, C6
232pFpower_delivery_footprints:C_0603_1608MetricC1, C2
23SMBJ5925B-TPpower_delivery_footprints:DIODE_DO-214AA_4P38X3P62_MCCCR1, CR2
1100uFpower_delivery_footprints:50ZLH100MEFC8X11.5C169
110uFpower_delivery_footprints:UVC2G100MPDC171
12.2upower_delivery_footprints:400LLE2R2MEFC8X11.5C172
1220uFpower_delivery_footprints:ECA1HM221BC170
13-140-172power_delivery_footprints:FUSE_3-140-172_SCHF1
1Conn_02x03_Top_Bottompower_delivery_footprints:PinSocket_2x03_P2.54mm_VerticalJ2
1ECS-250-18-5PX-F-TRpower_delivery_footprints:CRYSTAL_ECS-250-18-5PX-F-TR_ECSXTAL1
1LP38692MP-3.3_NOPBpower_delivery_footprints:LP38692MP-3.3_NOPBVR1
1SC32S-7PF20PPMpower_delivery_footprints:XTAL_SC32S-7PF20PPM_EPSXTAL2
1STM32F401RCT6TRpower_delivery_footprints:STM32F401RCT6TRU2
1TS02-66-50-BK-100-LCR-Dpower_delivery_footprints:TS02-66-50-BK-100-LCR-DSW1
1USBLC6-2SC6power_delivery_footprints:USBLC6-2SC6CR3
1USB_B_Micropower_delivery_footprints:USB_Micro-B_Amphenol_10103594-0001LF_HorizontalJ1

More from ddacot/fpga-cluster-framework

1
  • 2 layers233.1 × 122.9 mmJtag pcb, the printed circuit board in 3D

    Jtag pcb

    ddacot/fpga-cluster-framework

    This is

    196 parts1

Similar boards

  • 2 layers54 × 34.3 mmPcb v2, the printed circuit board in 3D

    Pcb v2

    hvtran21/SWAN

    UMass Amherst ECE Senior Design Project - SWAN - A more secure and user centered solution to wireless access control.

    15 parts
  • 2 layers121 × 156.5 mmUGV, the printed circuit board in 3D

    UGV

    ugv-dtu/electronics_2026

    This repository contains 2 firmware projects, each for a different operational mode of the Rover. Only one folder is flashed to Teensy at a time — either autonomous or manual.

    99 parts
  • 4 layers45.7 × 76.2 mmNode v5 0 0, the printed circuit board in 3D

    Node v5 0 0

    VTC-WISDOM/node_hardware

    Schematic/PCB designs for WiSDOM nodes, also includes a few other related hardware projects

    107 parts2CERN-OHL-W-2.0
  • 4 layers40 × 75 mmWolf flight compog, the printed circuit board in 3D

    Wolf flight compog

    prs2026/Lyra-flight-computer

    repo for the lyra flight computer

    76 parts3GPL-3.0
  • 4 layers47.8 × 35.1 mmMiniMCU STM32H573RIT6, the printed circuit board in 3D

    MiniMCU STM32H573RIT6

    yilmaz-kaan/OpenPhasedArray

    Rice ECE BEAMFORM Capstone Project Repo

    45 parts
  • 4 layers90.6 × 58.1 mmEcoApi pcb, the printed circuit board in 3D

    EcoApi pcb

    EcoApi/EcoApi_BeeHiveMonitoring

    describ options with 0R resistors. etc ...

    179 parts4GPL-3.0
  • 2 layers58 × 63 mmCamping LightRelay, the printed circuit board in 3D

    Camping LightRelay

    Rustaphor/LightRelay4Camping

    Analog light sensor to night power up LED garland. For Camping use.

    91 parts2GPL-3.0
  • 4 layers70.9 × 75 mmFlagshep Audio Player V1, the printed circuit board in 3D

    Flagshep Audio Player V1

    HYLDAIC/Flagshep-V1_Audio-Player

    A high fidelity semi-portable audio player student project with provided PCB files, 3D files and Code

    77 parts1CERN-OHL-P-2.0

Questions

How big is the Power delivery PCB?

It measures 206.6 × 142 mm and has 4 copper layers, 1.73 mm thick.

What parts does the Power delivery use?

477 parts, built around the B2B-XH-A, CPDQC5V0U-HF, XT90PW-M.G.Y and 3SMBJ5925B-TP. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Power delivery KiCad files?

From the ddacot/fpga-cluster-framework repository on GitHub, at the commit this page was made from: the board is hardware/power_delivery/power_delivery.kicad_pcb and its schematic hardware/jtag_pcb/connectors0.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Power delivery design in my own project?

Its repository states no licence, so its author keeps all rights: ask ddacot before reusing the design.