• Stars
    star
    136
  • Rank 267,670 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created about 4 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PCI express simulation framework for Cocotb

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.

More Repositories

1

verilog-ethernet

Verilog Ethernet components for FPGA implementation
Verilog
2,236
star
2

verilog-axi

Verilog AXI components for FPGA implementation
Verilog
1,452
star
3

verilog-pcie

Verilog PCI express components
Verilog
1,091
star
4

verilog-axis

Verilog AXI stream components for FPGA implementation
Python
722
star
5

verilog-i2c

Verilog I2C interface for FPGA implementation
Verilog
522
star
6

verilog-uart

Verilog UART
Verilog
406
star
7

cocotbext-axi

AXI interface modules for Cocotb
Python
208
star
8

verilog-lfsr

Fully parametrizable combinatorial parallel LFSR/CRC module
Python
135
star
9

xboot

XBoot Extensible Bootloader
C
127
star
10

verilog-wishbone

Verilog wishbone components
Python
108
star
11

verilog-cam

Verilog Content Addressable Memory Module
Verilog
100
star
12

verilog-dsp

Verilog digital signal processing components
Python
96
star
13

cocotbext-eth

Ethernet interface modules for Cocotb
Python
55
star
14

xfcp

Extensible FPGA control platform
Verilog
52
star
15

ftjrev

JTAG reverse engineering software for FTDI compatible cables
C
49
star
16

pin-uart

FPGA board-level debugging and reverse-engineering tool
Tcl
28
star
17

cocotbext-i2c

I2C models for cocotb
Python
26
star
18

verilog-ft245

Verilog FT245 to AXI stream interface
Python
26
star
19

dma-bench

Verilog
25
star
20

verilog-mersenne

Verilog implementation of Mersenne Twister PRNG
Python
25
star
21

cocotbext-uart

UART models for cocotb
Python
23
star
22

python-hpgl

Python HPGL parsing library
Python
18
star
23

fpga-utils

Various utilities for working with FPGAs
Python
10
star
24

verilog-flowgen

Ethernet flow generator framework
Python
9
star
25

templates

Templates for Embedded Development
C++
8
star
26

hdg2000

HDG2000
Python
7
star
27

binaryninja-m68k

Motorola 68k architecture support for binary ninja
Python
7
star
28

zigbee-terminal

Cross-platform ZigBee terminal
C++
7
star
29

xgrid

AVR XMEGA Grid Computing
C++
7
star
30

verilog-priorityqueue

3
star
31

groupmgr

Group manager plugin for Dokuwiki
PHP
2
star
32

verilog-hashtable

2
star
33

xmlconf

C
2
star