Skip to the content
4 layers51.3 × 40.4 mmOpenCAPI to PCIe, the printed circuit board in 3D

OpenCAPI to PCIe

mwrnd/OpenCAPI-to-PCIe2

OpenCAPI-Compatible SlimSAS 8x to PCIe Endpoint Adapter

Size
51.3 × 40.4 mm
Copper layers
4
Thickness
1.61 mm
Parts
9
Nets
68
Pads
192
Tracks, vias
1,607, 145
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
23 Jul 2026
Updated
24 Jul 2026

Overview

OpenCAPI to PCIe is an open-source printed circuit board by mwrnd, from the mwrnd/OpenCAPI-to-PCIe repository on GitHub, published under the GPL-2.0 licence. It is a 4-layer board of 51.3 × 40.4 mm with 9 parts on 68 nets, routed with 1,607 tracks and 145 vias.

Its parts include 3 connectors, 1 capacitor and 1 resistor. It belongs with the computers and single-board computers and interfaces and adapters boards of this library.

README

README.md

PCIe to OpenCAPI-Compatible SlimSAS 8x

The Open Coherant Accelerator Processor Interface (OpenCAPI) was a standard that had FPGA-based Advanced Accelerated Cable (AAC) Add-In cards such as ADM-PCIE-9H3, ADM-PCIE-9H7, ADM-PCIE-9V3, ADM-PCIE-9V5, BittWare XUP-VV4, BittWare XUP-VVH, and Nvidia Innova-2 Flex.

The OpenCAPI SlimSAS interface is based on PCI-Express. This project is an adapter capable of connecting such FPGA boards to host systmes with PCIe.

OpenCAPI-to-PCIe Adapter

This design uses the OpenCAPI pinout from the ADM-PCIE-9V5 User Manual (Pg15-19of38):

OpenCAPI Pinout from

The only OpenCAPI board I have to test against is the Innova-2 MNV303212A-ADLT Rev:A2 and I designed the OpenCAPI-to-PCIe_for_MNV303212A_RevA2 project as an optimized variant of this design for that board.

Issues when used with the Innova-2 MNV303212A RevA2

The current v0.2 release of this project worked with the First Release of the innova2_xdma_opencapi project:

text
git clone --revision=348716249bafc39514cb1a422a8e2fb5f301f859 https://github.com/mwrnd/innova2_xdma_opencapi.git
wget https://github.com/mwrnd/innova2_xdma_opencapi/releases/download/v0.1/innova2_xdma_opencapi_bitstream.zip

But, it required a non-standard GTY Channel to PCIe Lane mapping that Vivado complains about:

Vivado Critical Warning about Lane Ordering

The OpenCAPI-to-PCIe_for_MNV303212A_RevA2 project is a version of this adapter optimized for the Innova-2 MNV303212A Rev:A2.

PCB Layout

4-Layer PCB. Inner 2 layers are GND planes. Differential pairs are matched to a length of 65mm +/- 1mm both inter-pair and intra-pair (N-to-P).

OpenCAPI to PCIe x8 PCB Layout

Schematic

OpenCAPI to PCIe x8 Schematic

Design Notes

Refer to the ADM-PCIE-9V5 User Manual (Pg15-19of38). Useful High Speed Design presentation.

Only a single component is needed for the adapter, a U10A474200T/U10A474240T SlimSAS 8x Right-Angle SMD Connector.

A SlimSAS 8x Cable such as the 3M 8ES8-1DF21(Datasheet) is required to use the adapter with an OpenCAPI FPGA Board.

Resistor R1 is shorted to connect nPRSNT1 to nPRSNT2_x8. The trace can be scratched off and nPRSNT1 can be connected to nPRSNT2_x1 or nPRSNT2_x4 to limit the PCIe lane width.

Additional useful signals from the OpenCAPI connector are routed to a 6x1 0.1" Header (DigiKey). The pinout matches a TC74 I2C Temperature Sensor (DigiKey) for testing I2C. I2C pull-ups are on the AAC Add-in card. Note 3.3V is from the PCIe connector. PRE is a Presence Detect pin which is connected to GND via a 50-Ohm resistor on the OpenCAPI AAC Add-In card. RST is connected to PCIe/OpenCAPI RESET.

PCB Stackup

I am using values from JLCPCB.

4-Layer Stackup

Trace Impedance Control

OpenCAPI uses 85ohm impedance cables. I played with the values until I got the loosest differential pair coupling that is manufacturable with larger tolerances.

85ohm Differential Impedance in DigiKey Calculator

Parts

9
QtyValueFootprintReferences
10u1Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1
1Bus_PCI_Express_x8Connector_PCBEdge:BUS_PCIexpress_x8J3
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ2
1OpenCAPI_AAC_HostSlimSAS_8x:SlimSAS_8x_RA_U10-A474J1
1nPRSNT1TestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP1
1nPRSNT2_x1TestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP2
1nPRSNT2_x4TestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP3
1nPRSNT2_x8TestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP5
1x8Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1

Similar boards

  • 4 layers39.3 × 61.8 mmMCL64, the printed circuit board in 3D

    MCL64

    MicroCoreLabs/Projects

    Ted Fried's MicroCore Labs Projects - FPGA CPU cores and emulators for the 8088, 8086, 8051, 6502, 68000, Z80, Risc-V, and also Typewriter and EPROM Emulator projects.

    9 parts534
  • 4 layers79.2 × 26.3 mmHPE FlexibleLOM adapter x4, the printed circuit board in 3D

    HPE FlexibleLOM adapter x4

    TobleMiner/HPE-FlexibleLOM-adapter

    Adapter for using HPE FlexibleLOM cards in full height PCIe slots

    9 parts246GPL-3.0
  • 4 layers74 × 42 mmCoupler isolation, the printed circuit board in 3D

    Coupler isolation

    azonenberg/starshipraider

    Open hardware test equipment

    9 parts193BSD-3-Clause
  • 4 layersErOled096 1 1, the printed circuit board in 3D

    ErOled096 1 1

    BerkeleyHCI/PolymorphicBlocks

    A Python-based hardware description language for PCBs for higher-level (block-diagram / system-architecture level) PCB design through libraries of directly reusable subcircuit generators.

    9 parts94BSD-3-Clause
  • 4 layers108 × 31.8 mmSimm72 rom plcc, the printed circuit board in 3D

    Simm72 rom plcc

    agranlund/raven

    Homemade MC68060 + DSP56303 Atari-compatible computer. Hardware, firmware, and software stack

    9 parts87
  • 4 layers36.3 × 21.1 mmBoard main xiao, the printed circuit board in 3D

    Board main xiao

    m-kozlowski/airbridge

    Wireless adapter for AirSense/AirCurve 10 devices

    9 parts26GPL-3.0
  • 4 layers151.9 × 99.8 mmNqvme template, the printed circuit board in 3D

    Nqvme template

    thorpej/pg68k

    The 68k Playground, a 680x0-based home-brew computer with multiple CPU options

    9 parts15
  • 4 layers27 × 56 mmReceiver, the printed circuit board in 3D

    Receiver

    will127534/CSI-2-FourLane-HDMI-Extender

    A simple MIPI CSI-2 extender with 4-lane support through HDMI cable

    9 parts15MIT

Questions

How big is the OpenCAPI to PCIe PCB?

It measures 51.3 × 40.4 mm and has 4 copper layers, 1.61 mm thick.

What parts does the OpenCAPI to PCIe use?

9 parts. 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 OpenCAPI to PCIe KiCad files?

From the mwrnd/OpenCAPI-to-PCIe repository on GitHub, at the commit this page was made from: the board is OpenCAPI-to-PCIe.kicad_pcb and its schematic OpenCAPI-to-PCIe.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the OpenCAPI to PCIe design in my own project?

Its repository publishes it under the GPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).