Skip to main content

PCI express simulation framework for Cocotb

Regression Tests codecov PyPI version Downloads

GitHub repository: https://github.com/alexforencich/cocotbext-pcie

Introduction

PCI express simulation framework for cocotb.

Installation

Installation from pip (release version, stable):

$ pip install cocotbext-pcie

Installation from git (latest development version, potentially unstable):

$ pip install https://github.com/alexforencich/cocotbext-pcie/archive/master.zip

Installation for active development:

$ git clone https://github.com/alexforencich/cocotbext-pcie
$ pip install -e cocotbext-pcie

Documentation and usage examples

See the tests directory, taxi, verilog-pcie, and corundum for complete testbenches using these modules.

Core PCIe simulation framework

The core PCIe simulation framework is included in cocotbext.pcie.core. This framework implements an extensive event driven simulation of a complete PCI express system, including root complex, switches, devices, and functions, including support for configuration spaces, capabilities and extended capabilities, and memory and IO operations between devices. The framework includes code to enumerate the bus, initialize configuration space registers and allocate BARs, route messages between devices, perform memory read and write operations, allocate DMA accessible memory regions in the root complex, and handle message signaled interrupts. Any module can be connected to a cosimulated design, enabling testing of not only isolated components and host-device communication but also communication between multiple components such as device-to-device DMA and message passing.

PCIe IP core models

Xilinx UltraScale and UltraScale+

Models of the Xilinx UltraScale and UltraScale+ PCIe hard cores are included in cocotbext.pcie.xilinx.us. These modules can be used in combination with the PCIe BFM to test an HDL design that targets Xilinx UltraScale, UltraScale+, or Virtex 7 series FPGAs, up to PCIe gen 3 x16 or PCIe gen 4 x8. The models currently only support operation as a device, not as a root port.

Intel Stratix 10 H-Tile/L-Tile

Models of the Intel Stratix 10 H-Tile/L-Tile PCIe hard cores are included in cocotbext.pcie.intel.s10. These modules can be used in combination with the PCIe BFM to test an HDL design that targets Intel Stratix 10 GX, SX, TX, and MX series FPGAs that contain H-Tiles or L-Tiles, up to PCIe gen 3 x16. The models currently only support operation as a device, not as a root port.

Intel P-Tile

Models of the Intel P-Tile PCIe hard cores are included in cocotbext.pcie.intel.ptile. These modules can be used in combination with the PCIe BFM to test an HDL design that targets Intel Stratix 10 DX or Agilex F series FPGAs that contain P-Tiles, up to PCIe gen 4 x16. The models currently only support operation as a device, not as a root port.

Metadata

Release files for cocotbext-pcie 0.2.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cocotbext-pcie 0.2.16
File Size Uploaded
cocotbext_pcie-0.2.16.tar.gz 149.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cocotbext-pcie 0.2.16
File Interpreter ABI Platform
cocotbext_pcie-0.2.16-py3-none-any.whl Python 3 none any Details

Total release size: 283.3 kB

Release files / cocotbext_pcie-0.2.16.tar.gz

Download URL cocotbext_pcie-0.2.16.tar.gz
Size 149.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a276b1499c9f66ab6541f670cd888b740318bcbb676ae5e04f5ce09a99fc2847
BLAKE2b-256 checksum
How to use checksums
e0aa4fccd287a9c4bd06af173ef617787884ddca5e9cb8f244ede05aadfefa3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / cocotbext_pcie-0.2.16-py3-none-any.whl

Download URL cocotbext_pcie-0.2.16-py3-none-any.whl
Size 133.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
41fc32ba4681ce1dd3f0a1c7c9e6b2f3cd2f1c275ecce3192d4bae78454466b5
BLAKE2b-256 checksum
How to use checksums
e2ce8e6c20f0ca3ac177446d05b17ce1e2d0c5f822ee678fe308149284638435
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.2.16 This release

2 release files

0.2.14

2 release files

0.2.12

2 release files

0.2.8

2 release files

0.2.6

2 release files

0.2.4

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.22

2 release files

0.1.20

2 release files

0.1.12

2 release files

0.1.10

2 release files

0.1.8

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page