#介紹:
PCI Express相關(guān)組件的集合。包括PCIe至AXI和AXI lite橋接器,簡單的PCIe AXI DMA引擎以及靈活的高性能DMA子系統(tǒng)。當(dāng)前支持使用64位和512位接口的Xilinx Ultrascale和Ultrascale Plus PCIe硬IP內(nèi)核。
包括可利用的完整Cocotb測試平臺
#文件:
## PCIe AXI and AXI lite master
pcie_us_axi_master和pcie_us_axil_master模塊提供了PCIe和AXI之間的橋梁。這些可用于實(shí)現(xiàn)PCIe BAR。pcie_us_axil_master模塊是一個非常簡單的模塊,用于提供寄存器訪問,僅支持32位操作。pcie_us_axi_master模塊更加復(fù)雜,將PCIe操作轉(zhuǎn)換為AXI突發(fā)。它可用于以合理的性能終止設(shè)備到設(shè)備的DMA操作。pcie_us_axis_cq_demux模塊可用于對基于PCIe的操作進(jìn)行多路分解。
## PCIe AXI DMA
pcie_us_axi_dma模塊為DMA引擎提供了內(nèi)部AXI接口。AXI接口寬度必須與PCIe接口寬度匹配。該模塊直接將AXI操作轉(zhuǎn)換為PCIe操作。結(jié)果,它相對簡單,但是由于AXI接口的限制,性能受到了限制。AXI接口上的背壓也傳遞到PCIe接口。
pcie_axi_dma_desc_mux模塊可用于在多個請求源之間共享AXI DMA模塊。
## Flexible DMA subsystem
分離的DMA接口/ DMA客戶端模塊支持高度靈活,高性能的DMA操作。DMA接口和DMA客戶端模塊通過具有高性能分段存儲器接口的雙端口RAM連接。分段存儲器接口是PCIe硬核接口更好的“阻抗匹配”,可以在同一時(shí)鐘周期內(nèi)完成數(shù)據(jù)重新對齊。沒有突發(fā),地址解碼,仲裁或重新排序簡化了實(shí)現(xiàn),并提供了比AXI高得多的性能。該架構(gòu)還非常靈活,因?yàn)樗ㄟ^雙端口RAM將DMA接口與客戶端分離,從而可以混合使用不同的客戶端接口類型和寬度,甚至支持在不同時(shí)鐘域中運(yùn)行的客戶端而無需數(shù)據(jù)路徑FIFO。
![DMA系統(tǒng)框圖](dma_block.svg)
dma_if_pcie_us模塊將Xilinx Ultrascale PCIe接口連接到分段存儲器接口。當(dāng)前,它不支持TLP跨越,但是應(yīng)該可以通過分段接口來支持它。
dma_psdpram模塊是具有分段接口的雙時(shí)鐘,并行簡單雙端口RAM模塊。深度可根據(jù)地址寬度獨(dú)立調(diào)整,從而簡化了分段接口的使用。該模塊還包含一個可參數(shù)化的輸出流水線寄存器,以改善時(shí)序。
dma_if_mux模塊允許在多個DMA客戶端之間共享DMA接口。該模塊可在描述符和分段存儲器接口上適當(dāng)?shù)靥幚?a target="_blank">標(biāo)簽和選擇行,以進(jìn)行即插即用操作,而無需分配地址-路由完全由組件連接決定。該模塊還包含一個FIFO,以維護(hù)多個客戶端之間的讀取數(shù)據(jù)順序。確保均衡所有路徑上的流水線延遲,以實(shí)現(xiàn)最佳性能。
DMA客戶端模塊將分段的內(nèi)存接口連接到不同的內(nèi)部接口。dma_client_axis_source和dma_client_axis_sink模塊為通過AXI流的DMA流提供支持。AXI流寬度可以是分段存儲器接口寬度的二分之一的任意冪。
## arbiter module
通用可參數(shù)化仲裁器。支持優(yōu)先級和循環(huán)仲裁。支持阻塞,直到請求釋放或確認(rèn)。
## axis_arb_mux module
具有可參數(shù)化的數(shù)據(jù)寬度和端口數(shù)的幀感知AXI流仲裁多路復(fù)用器。支持優(yōu)先級和循環(huán)仲裁。
## dma_client_axis_sinkmodule
AXI流接收器DMA客戶端模塊。使用分段的內(nèi)存接口。
## dma_client_axis_source?module
AXI流源DMA客戶端模塊。使用分段的內(nèi)存接口。
##?dma_if_mux module
DMA接口多路復(fù)用器模塊。允許在多個DMA客戶端模塊之間共享DMA接口模塊。dma_if_mux_rd和dma_if_mux_wr的包裝。
## dma_if_mux_rd?module
DMA接口多路復(fù)用器模塊。允許在多個DMA客戶端模塊之間共享DMA接口模塊。多路復(fù)用器描述符和多路復(fù)用器存儲器寫操作。
## dma_if_mux_wr?module
DMA接口多路復(fù)用器模塊。允許在多個DMA客戶端模塊之間共享DMA接口模塊。多路復(fù)用器描述符,多路復(fù)用器存儲器讀取命令和多路復(fù)用器讀取數(shù)據(jù)。
## dma_if_pcie_us?module
用于Xilinx Ultrascale系列FPGA的PCIe DMA接口模塊。支持64,128、256和512位數(shù)據(jù)路徑。使用雙倍寬度分段存儲器接口。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位數(shù)據(jù)路徑。使用雙倍寬度的分段內(nèi)存接口。
##?dma_if_pcie_us_wr?module
用于Xilinx Ultrascale系列FPGA的PCIe DMA接口模塊。支持64,128、256和512位數(shù)據(jù)路徑。使用雙倍寬度分段存儲器接口。
## dma_psdpram?module
DMA RAM模塊。分段的簡單雙端口RAM,用于將DMA接口模塊連接到DMA客戶端。
##?pcie_axi_dma_desc_mux?module
用于PCIe AXI DMA模塊的描述符多路復(fù)用器/多路分解器。支持在多個請求源之間共享PCIe AXI DMA模塊,交織請求和分配響應(yīng)。
## pcie_us_axi_dma?module
用于Xilinx Ultrascale系列FPGA的PCIe AXI DMA模塊。支持64、128、256和512位數(shù)據(jù)路徑??稍O(shè)置參數(shù)的AXI突發(fā)長度。包裝為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位數(shù)據(jù)路徑。可設(shè)置參數(shù)的AXI突發(fā)長度。
## pcie_us_axi_dma_wr?module
用于Xilinx Ultrascale系列FPGA的PCIe AXI DMA模塊。支持64、128、256和512位數(shù)據(jù)路徑??稍O(shè)置參數(shù)的AXI突發(fā)長度。
## pcie_us_axi_master module
用于Xilinx Ultrascale系列FPGA的PCIe AXI主模塊。支持64、128、256和512位數(shù)據(jù)路徑??稍O(shè)置參數(shù)的AXI突發(fā)長度。包裝為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位數(shù)據(jù)路徑??稍O(shè)置參數(shù)的AXI突發(fā)長度。
## pcie_us_axi_master_wr?module
用于Xilinx Ultrascale系列FPGA的PCIe AXI主模塊。支持64、128、256和512位數(shù)據(jù)路徑??稍O(shè)置參數(shù)的AXI突發(fā)長度。
##?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模塊。可用于根據(jù)功能,BAR和其他字段路由傳入的請求。支持64、128、256和512位數(shù)據(jù)路徑。
## pcie_us_axis_rc_demux?module
用于Xilinx Ultrascale RC接口的Demux模塊??捎糜诟鶕?jù)請求者ID(函數(shù))路由傳入的完成。支持64、128、256和512位數(shù)據(jù)路徑。
## pcie_us_cfg?module
Xilinx Ultrascale系列FPGA的配置墊片。
## pcie_us_msi module
用于Xilinx Ultrascale系列FPGA的MSI墊片。
## priority_encoder?module
可設(shè)置參數(shù)的優(yōu)先級編碼器。
## pulse_merge?module
可參數(shù)化的脈沖合并模塊。將幾個單周期脈沖狀態(tài)信號組合在一起。
編輯:黃飛
?
評論