一、基本介绍
赛灵思7系列的FPGA都支持PCIe(Integrated Root Port and Endpoint),Artix™-7支持Gen2x4的IP配置,Kintex™-7 和 Virtex-7T支持Gen2x8配置,Virtex-7 XT 和 HT则支持Gen3,通道数支持最大8 lanes。当然,和赛灵思合作的第三方厂商提供对Kintex-7系列和Virtex-7T系列的Gen3x8软核的支持。具体如下表:
本文将基于赛灵思K7325芯片介绍IP核DMA/Bridge Subsystem for PCI Express v4.1,软件使用的是Vivado2018.3,主要介绍内容为,IP的端口功能以及如何配置IP核(各种配置选项的内涵)。
二、IP核介绍
DMA/Bridge Subsystem for PCI Express 提供内存映射接口(AXI4 Memory Mapped/AXI4 MM)和AXI4-Stream接口。
IP核概述
PCI Express®(PCIe®)的桥接子系统可以配置为高性能直接内存访问(DMA)数据移动器(Data Mover),也可以配置为PCI Express和AXI内存空间之间的桥接器。
•DMA Data Mover:作为DMA,可以使用AXI(内存映射)接口或AXI流(AXI streaming)接口配置内核,以允许直接连接到RTL逻辑。使用提供的字符驱动器时,这两个接口均可用于PCIe地址空间和AXI地址空间之间的高性能块数据移动。除了基本的DMA功能外,DMA还支持多达四个上行和下行通道。
•PCIe和AXI内存之间的桥接器:当配置为PCIe桥接器时,接收到的PCIe数据包将转换为AXI流量(AXI traffic),而接收到的AXI流量(AXI traffic)将转换为PCIe流量。桥接功能非常适合需要快速简便的方法来访问PCI Express子系统的AXI外设。网桥功能既可以用作端点(EP),也可以用作根端口(Root Port)。仅UltraScale +™设备支持PCIe Bridge功能。
基本的应用场景:
核心体系结构支持各种计算和通信应用程序,强调性能,成本,可伸缩性,功能可扩展性和关键任务可靠性。典型的应用包括:
•数据通讯网络
•电信网络
•宽带有线和无线应用
•网络接口卡
•芯片对芯片和背板接口卡
•各种应用程序的服务器附加卡
支持的事务类型:
三、IP核接口
顶层接口信号
信号 | 方向 | 功能描述 |
sys_clk | I | 7系列Gen2和Virtex-7 Gen3:PCIe参考时钟。应该从参考时钟IBUFDS_GTE2的O端口输出驱动。 |
sys_rst_n | I | pcie复位 |
axi_aclk | O | PCIe派生的用于m_axi *和s_axi *接口的时钟输出。axi_aclk是来自GT模块的TXOUTCLK引脚的派生时钟;当断言axi_aresetn时,它不应连续运行。 |
axi_aresetn | O |
AXI复位信号 与axi_aclk输出上提供的时钟同步。该复位将驱动所有相应的AXI Interconnectaresetn信号。 |
dma_bridge_resetn | I |
使用时,所有PCIe流量都必须处于静默状态。该信号断言的时间要长于“完成超时”值(通常为50 ms)。 •0:重置所有内部Bridge引擎和寄存器以及在维持PCIe链路的同时声明axi_aresetn信号。 •1:正常运行。 |
user_lnk_up | O | 高电平有效输出标识,PCI Express内核已与主机设备连接。 |
msi_enable | O | 表明msi中断有效 |
msi_vector_width[2:0] | O | 指示MSI字段的大小(分配给设备的MSI向量的数量)。 |
msix_enable | O | 表明msix中端有效 |
pcie接口
信号 | Dir | 描述 |
pci_exp_rxp[PL_LINK_CAP_MAX_LINK_WIDTH-1:0] | I | PCIe RX |
pci_exp_rxn[PL_LINK_CAP_MAX_LINK_WIDTH-1:0] | I | PCIe RX |
pci_exp_txp[PL_LINK_CAP_MAX_LINK_WIDTH-1:0] | O | PCIe TX |
pci_exp_txn[PL_LINK_CAP_MAX_LINK_WIDTH-1:0] | O | PCIe TX |
配置管理端口(pcie_cfg_mgmt接口)
信号 | Dir | Width | 描述 |
cfg_mgmt_addr | I | 19 |
读/写地址。 配置空间双字对齐地址 |
cfg_mgmt_byte_enable | I | 4 |
字节使能 写入数据的字节启用,其中cfg_mgmt_byte_enable [0]对应于cfg_mgmt_write_data [7:0],依此类推 |
cfg_mgmt_read_data | O | 32 |
读出数据 读取数据可提供配置和管理寄存器的配置 |
cfg_mgmt_read | I | 1 |
读使能 声明为读操作,高电平有效 |
cfg_mgmt_read_write_done | O | 1 |
读/写操作完成 操作完成后断言1个周期,高电平有效 |
cfg_mgmt_write_data | I | 32 |
写数据 写入数据用于配置配置和管理寄存器 |
cfg_mgmt_write | I | 1 |
写使能 断言进行写操作,高电平有效 |
M_AXI是AXI-4接口(主)具体请参看相关手册
下一篇主要讲配置