Alex Forencich db183c7bdd Add test durations for pytest-split
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2025-02-17 18:10:01 -08:00
2025-02-16 22:45:19 -08:00
2025-02-03 15:24:38 -08:00
2025-02-03 16:36:26 -08:00
2025-02-03 15:24:47 -08:00
2025-02-17 00:13:51 -08:00
2025-02-17 00:26:06 -08:00

Taxi Transport Library

Regression Tests

AXI, AXI stream, Ethernet, and PCIe components in System Verilog.

GitHub repository: https://github.com/fpganinja/taxi

Introduction

The goal of the Taxi transport library is to provide a set of performant, easy-to-use building blocks in modern System Verilog facilitating data transport and interfacing, both internally via AXI and AXI stream, and externally via Ethernet, PCI express, UART, and I2C. The building blocks are accompanied by testbenches and simulation models utilizing Cocotb and Verilator.

This library is currently under development; more components will be added over time as they are developed.

License

Taxi is provided by FPGA Ninja, LLC under either the CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S 2.0), or a paid commercial license. Contact info@fpga.ninja for commercial use. Note that some components may be provided under less restrictive licenses (e.g. example designs).

Under the strongly-reciprocal CERN OHL, you must provide the source code of the entire digital design upon request, including all modifications, extensions, and customizations, such that the design can be rebuilt. If this is not an acceptable restriction for your product, please contact info@fpga.ninja to inquire about a commercial license without this requirement. License fees support the continued development and maintenance of this project and related projects.

To facilitate the dual-license model, contributions to the project can only be accepted under a contributor license agreement.

Components

  • AXI stream
    • SV interface for AXI stream
    • Register slice
    • Width converter
    • Synchronous FIFO
    • Asynchronous FIFO
    • Combined FIFO + width converter
    • Combined async FIFO + width converter
    • Broadcaster
    • COBS encoder
    • COBS decoder
    • Pipeline register
    • Pipeline FIFO
  • Ethernet
    • 10/100 MII MAC
    • 10/100 MII MAC + FIFO
    • 10/100/1000 GMII MAC
    • 10/100/1000 GMII MAC + FIFO
    • 10/100/1000 RGMII MAC
    • 10/100/1000 RGMII MAC + FIFO
    • 1G MAC
    • 1G MAC + FIFO
    • 10G MAC
    • 10G MAC + FIFO
    • 10G MAC/PHY
    • 10G MAC/PHY + FIFO
    • 10G PHY
    • MII PHY interface
    • GMII PHY interface
    • RGMII PHY interface
  • General input/output
    • Switch debouncer
    • Generic IDDR
    • Generic ODDR
    • Source-synchronous DDR input
    • Source-synchronous DDR differential input
    • Source-synchronous DDR output
    • Source-synchronous DDR differential output
    • Source-synchronous SDR input
    • Source-synchronous SDR differential input
    • Source-synchronous SDR output
    • Source-synchronous SDR differential output
  • Linear-feedback shift register
    • Parametrizable combinatorial LFSR/CRC module
    • CRC computation module
    • PRBS generator
    • PRBS checker
    • LFSR self-synchronizing scrambler
    • LFSR self-synchronizing descrambler
  • Low-speed serial
    • UART
  • Primitives
    • Arbiter
    • Priority encoder
  • Precision Time Protocol (PTP)
    • PTP clock
    • PTP CDC
    • PTP period output
    • PTP TD leaf clock
    • PTP TD PHC
    • PTP TD relative-to-ToD converter
  • Synchronization primitives
    • Reset synchronizer
    • Signal synchronizer

Example designs

Example designs are provided for several different FPGA boards, showcasing many of the capabilities of this library. Building the example designs will require the appropriate vendor toolchain and may also require tool and IP licenses.

  • Digilent Arty A7 (Xilinx Artix 7 XC7A35T)

Testing

Running the included testbenches requires cocotb, cocotbext-axi, cocotbext-eth, cocotbext-uart, cocotbext-pcie, and Verilator. The testbenches can be run with pytest directly (requires cocotb-test), pytest via tox, or via cocotb makefiles.

Description
No description provided
Readme 2.5 MiB
Languages
SystemVerilog 53.9%
Python 20.2%
Tcl 17.2%
Makefile 8.6%
Forth 0.1%