#介紹:
PCI Express相關組件的集合。包括PCIe至AXI和AXI lite橋接器,簡單的PCIe AXI DMA引擎以及靈活的高性能DMA子系統。當前支持使用64位和512位接口的Xilinx Ultrascale和Ultrascale Plus PCIe硬IP內核。
包括可利用的完整Cocotb測試平臺
#文件:
## PCIe AXI and AXI lite master
pcie_us_axi_master和pcie_us_axil_master模塊提供了PCIe和AXI之間的橋梁。這些可用于實現PCIe BAR。pcie_us_axil_master模塊是一個非常簡單的模塊,用于提供寄存器訪問,僅支持32位操作。pcie_us_axi_master模塊更加復雜,將PCIe操作轉換為AXI突發。它可用于以合理的性能終止設備到設備的DMA操作。pcie_us_axis_cq_demux模塊可用于對基于PCIe的操作進行多路分解。
## PCIe AXI DMA
pcie_us_axi_dma模塊為DMA引擎提供了內部AXI接口。AXI接口寬度必須與PCIe接口寬度匹配。該模塊直接將AXI操作轉換為PCIe操作。結果,它相對簡單,但是由于AXI接口的限制,性能受到了限制。AXI接口上的背壓也傳遞到PCIe接口。
pcie_axi_dma_desc_mux模塊可用于在多個請求源之間共享AXI DMA模塊。
## Flexible DMA subsystem
分離的DMA接口/ DMA客戶端模塊支持高度靈活,高性能的DMA操作。DMA接口和DMA客戶端模塊通過具有高性能分段存儲器接口的雙端口RAM連接。分段存儲器接口是PCIe硬核接口更好的“阻抗匹配”,可以在同一時鐘周期內完成數據重新對齊。沒有突發,地址解碼,仲裁或重新排序簡化了實現,并提供了比AXI高得多的性能。該架構還非常靈活,因為它通過雙端口RAM將DMA接口與客戶端分離,從而可以混合使用不同的客戶端接口類型和寬度,甚至支持在不同時鐘域中運行的客戶端而無需數據路徑FIFO。

dma_if_pcie_us模塊將Xilinx Ultrascale PCIe接口連接到分段存儲器接口。當前,它不支持TLP跨越,但是應該可以通過分段接口來支持它。
dma_psdpram模塊是具有分段接口的雙時鐘,并行簡單雙端口RAM模塊。深度可根據地址寬度獨立調整,從而簡化了分段接口的使用。該模塊還包含一個可參數化的輸出流水線寄存器,以改善時序。
dma_if_mux模塊允許在多個DMA客戶端之間共享DMA接口。該模塊可在描述符和分段存儲器接口上適當地處理標簽和選擇行,以進行即插即用操作,而無需分配地址-路由完全由組件連接決定。該模塊還包含一個FIFO,以維護多個客戶端之間的讀取數據順序。確保均衡所有路徑上的流水線延遲,以實現最佳性能。
DMA客戶端模塊將分段的內存接口連接到不同的內部接口。dma_client_axis_source和dma_client_axis_sink模塊為通過AXI流的DMA流提供支持。AXI流寬度可以是分段存儲器接口寬度的二分之一的任意冪。
## arbiter module
通用可參數化仲裁器。支持優先級和循環仲裁。支持阻塞,直到請求釋放或確認。
## axis_arb_mux module
具有可參數化的數據寬度和端口數的幀感知AXI流仲裁多路復用器。支持優先級和循環仲裁。
## dma_client_axis_sinkmodule
AXI流接收器DMA客戶端模塊。使用分段的內存接口。
## dma_client_axis_source?module
AXI流源DMA客戶端模塊。使用分段的內存接口。
##?dma_if_mux module
DMA接口多路復用器模塊。允許在多個DMA客戶端模塊之間共享DMA接口模塊。dma_if_mux_rd和dma_if_mux_wr的包裝。
## dma_if_mux_rd?module
DMA接口多路復用器模塊。允許在多個DMA客戶端模塊之間共享DMA接口模塊。多路復用器描述符和多路復用器存儲器寫操作。
## dma_if_mux_wr?module
DMA接口多路復用器模塊。允許在多個DMA客戶端模塊之間共享DMA接口模塊。多路復用器描述符,多路復用器存儲器讀取命令和多路復用器讀取數據。
## dma_if_pcie_us?module
用于Xilinx Ultrascale系列FPGA的PCIe DMA接口模塊。支持64,128、256和512位數據路徑。使用雙倍寬度分段存儲器接口。dma_if_pcie_us_rd和dma_if_pcie_us_wr的包裝。
## dma_if_pcie_us_rd?module
用于Xilinx Ultrascale系列FPGA的PCIe DMA接口模塊。支持64,128、256和512位數據路徑。使用雙倍寬度的分段內存接口。
##?dma_if_pcie_us_wr?module
用于Xilinx Ultrascale系列FPGA的PCIe DMA接口模塊。支持64,128、256和512位數據路徑。使用雙倍寬度分段存儲器接口。
## dma_psdpram?module
DMA RAM模塊。分段的簡單雙端口RAM,用于將DMA接口模塊連接到DMA客戶端。
##?pcie_axi_dma_desc_mux?module
用于PCIe AXI DMA模塊的描述符多路復用器/多路分解器。支持在多個請求源之間共享PCIe AXI DMA模塊,交織請求和分配響應。
## pcie_us_axi_dma?module
用于Xilinx Ultrascale系列FPGA的PCIe AXI DMA模塊。支持64、128、256和512位數據路徑??稍O置參數的AXI突發長度。包裝為pcie_us_axi_dma_rd和pcie_us_axi_dma_wr。
## pcie_us_axi_dma_rd?module
用于Xilinx Ultrascale系列FPGA的PCIe AXI DMA模塊。支持64、128、256和512位數據路徑。可設置參數的AXI突發長度。
## pcie_us_axi_dma_wr?module
用于Xilinx Ultrascale系列FPGA的PCIe AXI DMA模塊。支持64、128、256和512位數據路徑。可設置參數的AXI突發長度。
## pcie_us_axi_master module
用于Xilinx Ultrascale系列FPGA的PCIe AXI主模塊。支持64、128、256和512位數據路徑??稍O置參數的AXI突發長度。包裝為pcie_us_axi_master_rd和pcie_us_axi_master_wr。
##?pcie_us_axi_master_rd?module
用于Xilinx Ultrascale系列FPGA的PCIe AXI主模塊。支持64、128、256和512位數據路徑??稍O置參數的AXI突發長度。
## pcie_us_axi_master_wr?module
用于Xilinx Ultrascale系列FPGA的PCIe AXI主模塊。支持64、128、256和512位數據路徑。可設置參數的AXI突發長度。
##?pcie_us_axil_master module
用于Xilinx Ultrascale系列FPGA的PCIe AXI lite主模塊。支持64,128、256和512位PCIe接口。
## pcie_us_axis_cq_demux?module
用于Xilinx Ultrascale CQ接口的Demux模塊??捎糜诟鶕δ?,BAR和其他字段路由傳入的請求。支持64、128、256和512位數據路徑。
## pcie_us_axis_rc_demux?module
用于Xilinx Ultrascale RC接口的Demux模塊??捎糜诟鶕埱笳逫D(函數)路由傳入的完成。支持64、128、256和512位數據路徑。
## pcie_us_cfg?module
Xilinx Ultrascale系列FPGA的配置墊片。
## pcie_us_msi module
用于Xilinx Ultrascale系列FPGA的MSI墊片。
## priority_encoder?module
可設置參數的優先級編碼器。
## pulse_merge?module
可參數化的脈沖合并模塊。將幾個單周期脈沖狀態信號組合在一起。
編輯:黃飛
?
評論