Skip to main content

PCI express simulation framework for cocotb

Project description

PCI express simulation framework for Cocotb

Build Status 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, 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cocotbext-pcie-0.2.8.tar.gz (143.4 kB view details)

Uploaded Source

Built Distribution

cocotbext_pcie-0.2.8-py3-none-any.whl (129.1 kB view details)

Uploaded Python 3

File details

Details for the file cocotbext-pcie-0.2.8.tar.gz.

File metadata

  • Download URL: cocotbext-pcie-0.2.8.tar.gz
  • Upload date:
  • Size: 143.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.3 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.5

File hashes

Hashes for cocotbext-pcie-0.2.8.tar.gz
Algorithm Hash digest
SHA256 3a494a04934b8b8abd0c9152d090cf68334ae4488720c641071fdca8f74b41cf
MD5 84a239a1ab6b736348e0ddcc7bb55649
BLAKE2b-256 1575b70026400b69428ed411f5ec3a35ee9e0e1fd3f16ecb2a22497118d5c2a2

See more details on using hashes here.

File details

Details for the file cocotbext_pcie-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: cocotbext_pcie-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 129.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.3 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.5

File hashes

Hashes for cocotbext_pcie-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 415ff0d83c80250b161fe72ed1f34b0fd87b774b2c2580d8894554f9ac7ac264
MD5 99738a6bc37758d5d34dee15a8ef55e0
BLAKE2b-256 80bf5687a7028bf0388a9facfd84e2ca2d91a78e9eb23141bc800f9f24c5e1f4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page