no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
| — | en:verilog:pcie:readme [2019/07/12 19:33] (current) – created alex | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Verilog PCI Express Components Readme ====== | ||
| + | |||
| + | For more information and updates: http:// | ||
| + | |||
| + | GitHub repository: https:// | ||
| + | |||
| + | ===== Introduction ===== | ||
| + | |||
| + | Collection of PCI express related components. | ||
| + | |||
| + | ===== Documentation ===== | ||
| + | |||
| + | ==== PCIe BFM ==== | ||
| + | |||
| + | A MyHDL transaction layer PCI Express bus functional model (BFM) is included in pcie.py. | ||
| + | |||
| + | A MyHDL model of the Xilinx Ultrascale PCIe hard core is included in | ||
| + | pcie_us.py. | ||
| + | |||
| + | ==== arbiter module ==== | ||
| + | |||
| + | General-purpose parametrizable arbiter. | ||
| + | |||
| + | ==== axis_arb_mux module ==== | ||
| + | |||
| + | Frame-aware AXI stream arbitrated muliplexer with parametrizable data width and port count. | ||
| + | |||
| + | ==== pcie_axi_dma_desc_mux module ==== | ||
| + | |||
| + | Descriptor multiplexer/ | ||
| + | |||
| + | ==== pcie_tag_manager module ==== | ||
| + | |||
| + | PCIe in-flight tag manager. | ||
| + | |||
| + | ==== pcie_us_axi_dma module ==== | ||
| + | |||
| + | PCIe AXI DMA module for Xilinx Ultrascale series FPGAs. | ||
| + | |||
| + | ==== pcie_us_axi_dma_rd module ==== | ||
| + | |||
| + | PCIe AXI DMA module for Xilinx Ultrascale series FPGAs. | ||
| + | |||
| + | ==== pcie_us_axi_dma_wr module ==== | ||
| + | |||
| + | PCIe AXI DMA module for Xilinx Ultrascale series FPGAs. | ||
| + | |||
| + | ==== pcie_us_axi_master module ==== | ||
| + | |||
| + | PCIe AXI master module for Xilinx Ultrascale series FPGAs. | ||
| + | |||
| + | ==== pcie_us_axi_master_rd module ==== | ||
| + | |||
| + | PCIe AXI master module for Xilinx Ultrascale series FPGAs. | ||
| + | |||
| + | ==== pcie_us_axi_master_wr module ==== | ||
| + | |||
| + | PCIe AXI master module for Xilinx Ultrascale series FPGAs. | ||
| + | |||
| + | ==== pcie_us_axil_master module ==== | ||
| + | |||
| + | PCIe AXI lite master module for Xilinx Ultrascale series FPGAs. | ||
| + | |||
| + | ==== pcie_us_axis_cq_demux module ==== | ||
| + | |||
| + | Demux module for Xilinx Ultrascale CQ interface. | ||
| + | |||
| + | ==== pcie_us_axis_rc_demux module ==== | ||
| + | |||
| + | Demux module for Xilinx Ultrascale RC interface. | ||
| + | |||
| + | ==== pcie_us_msi module ==== | ||
| + | |||
| + | MSI shim for Xilinx Ultrascale series FPGAs. | ||
| + | |||
| + | ==== priority_encoder module ==== | ||
| + | |||
| + | Parametrizable priority encoder. | ||
| + | |||
| + | ==== pulse_merge module ==== | ||
| + | |||
| + | Parametrizable pulse merge module. | ||
| + | |||
| + | ==== Common signals ==== | ||
| + | |||
| + | ==== Common parameters ==== | ||
| + | |||
| + | ==== Source Files ==== | ||
| + | |||
| + | < | ||
| + | arbiter.v | ||
| + | axis_arb_mux.v | ||
| + | pcie_axi_dma_desc_mux.v : Descriptor mux for DMA engine | ||
| + | pcie_tag_manager.v | ||
| + | pcie_us_axi_dma.v | ||
| + | pcie_us_axi_dma_rd.v | ||
| + | pcie_us_axi_dma_wr.v | ||
| + | pcie_us_axi_master.v | ||
| + | pcie_us_axi_master_rd.v : AXI Master read module with Xilinx Ultrascale interface | ||
| + | pcie_us_axi_master_wr.v : AXI Master write module with Xilinx Ultrascale interface | ||
| + | pcie_us_axil_master.v | ||
| + | pcie_us_axis_cq_demux.v : Parametrizable AXI stream CQ demux | ||
| + | pcie_us_axis_rc_demux.v : Parametrizable AXI stream RC demux | ||
| + | pcie_us_msi.v | ||
| + | priority_encoder.v | ||
| + | pulse_merge | ||
| + | </ | ||
| + | |||
| + | ===== Testing ===== | ||
| + | |||
| + | Running the included testbenches requires MyHDL and Icarus Verilog. | ||
| + | that myhdl.vpi is installed properly for cosimulation to work correctly. | ||
| + | testbenches can be run with a Python test runner like nose or py.test, or the | ||
| + | individual test scripts can be run with python directly. | ||
| + | |||
| + | ==== Testbench Files ==== | ||
| + | |||
| + | < | ||
| + | tb/ | ||
| + | tb/ | ||
| + | tb/ | ||
| + | </ | ||