PCI express simulation framework for cocotb
Project description
PCI express simulation framework for Cocotb
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cocotbext-pcie-0.1.22.tar.gz
.
File metadata
- Download URL: cocotbext-pcie-0.1.22.tar.gz
- Upload date:
- Size: 109.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48ba126ee4aac507fbe9cec2d4cdd797141994ddbdef6a0afe0a0c26dbd9ac80 |
|
MD5 | a0267662ded5cbdada71f44ab60f4f05 |
|
BLAKE2b-256 | 1db99b9b170df858de510f70ba41a9457b72f0cc1ab1c96d14bcf67b9a3c824d |
File details
Details for the file cocotbext_pcie-0.1.22-py3-none-any.whl
.
File metadata
- Download URL: cocotbext_pcie-0.1.22-py3-none-any.whl
- Upload date:
- Size: 107.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0afbade51c6c340b30161bd66be5cd1e6aa117e088832477a7ffdf12f39359e5 |
|
MD5 | 96cbb147da5a2a6e0204de9d2a2804bd |
|
BLAKE2b-256 | b248747489e8a8d5abe85bca61efb6d32f1354069f2e1b287a9d9236e8b41cbb |