The following table defines the PIO design file structure. Based on the specific core targeted, not all files delivered by the AMD Vivado™ IP Core catalog are necessary, and some files might not be delivered. The major difference is that some of the Endpoint for PCIe® solutions use a 32-bit user datapath, others use a 64-bit datapath, and the PIO design works with both. The width of the datapath depends on the specific core being targeted.
File | Description |
---|---|
PIO.v | Top-level design wrapper |
PIO_INTR_CTRL.v | PIO interrupt controller |
PIO_EP.v | PIO application module |
PIO_TO_CTRL.v | PIO turn-off controller module |
PIO_RX_ENGINE.v | 32-bit Receive engine |
PIO_TX_ENGINE.v | 32-bit Transmit engine |
PIO_EP_MEM_ACCESS.v | Endpoint memory access module |
PIO_EP_MEM.v | Endpoint memory |
PIO_EP_XPM_SDRAM_WRAP.v | Endpoint Memory in case of dword align mode |
Four configurations of the PIO design are provided: PIO_64, PIO_128, and PIO_256 with 64-, 128-, 256-bit, and 512-bit AXI4-Stream interfaces, respectively. The PIO configuration that is generated depends on the selected Endpoint type, the number of PCI Express lanes, and the interface width selected. The following table identifies the PIO configuration generated based on your selection.
Core | x1 | x2 | x4 | x8 |
---|---|---|---|---|
Integrated Block for PCIe | PIO_64 | PIO_64, PIO_128 | PIO_64, PIO_128, PIO_256 | PIO_64, PIO_128 1 , PIO_256 |
|
The following figure shows the various components of the PIO design, which is separated into four main parts: the TX Engine, RX Engine, Memory Access Controller, and Power Management Turn-Off Controller.