目录
2.3.2 配置核IP生成
2.3.2.1 Base模式
2.3.2.2 Advanced模式
本文主要介绍Xilinx 7系列FPGA的 IP 核配置与应用,使用的工具版本为VIVADO 2019。
2.3.2 配置核IP生成
打开VIVADO工具,点击 IP Catalog 搜索“PCIE”,双击打开”7 Series Integrated Block for Express(3.3)”.在7系列的PCIe IP核的配置包括两种模式:Base模式和Advanced模式,接下来我们主要介绍这两种模式的页面配置。
2.3.2.1 Base模式
Base模式的配置页面如下。该模式用来定义IP核的基本参数,包括组建名称、通道数和链路速率。
- Basic 页面设置详解
在Mode中选择Basic。
Device /Port Type:选择终端模式还是Root Port模式。
PCIe Block Location:选择PCIe所在quad,该选择会生成特定的引脚和区域约束文件和引脚分配。
Xilinx Development Board:选择Xilinx开发板来生成开发板专用的约束文件,比如可以选择官方的KC705 REVA开发板。
Silicon Revision:选择Silicon版本,有Initial_ES或者GES_and_Production。
Number of Lanes:通道数。
Maximum Link Speed:最大的链路速率。
AXI Interface Frequency:AXI接口速率。也是用户的时钟速率。推荐使用默认的速率。参见下图。
1. 接口的数据位宽为静态选择的,不能通过动态链路的更改而改变。
2. Artix-7设备不支持250MHz。
AXI Interface Width:AXI接口的数据位宽。
Reference Clock Frequency:参考时钟频率,请根据sys_clk提供的参考时钟的频率进行选择。
Tandem Configuration:Tandem配置方式,分为None,PROM和PCIe三种。Tandem支持的设备有K325T,K410T,K420T,V485T和K160T。
PIPE Mode Simulations:管道模式仿真。该选项组提供了三个单选按钮,用来选择两种仿真机制中的一种。
1. None:不启用仿真的PIPE模型。(默认)。
2. Enable Pipe Simulation:该选项产生一个连接到IP核的用来仿真的PIPE接口。该选项适用于终端和Root Port模式,并且只有在配置了Shared Logic (clocking) in example design option。才能被选中。
3. Enable External PIPE Interface:该选项使用了外部第三方的总线功能模块(BFM)连接到PIPE接口。
Enable External Startup Primitive:启用STARTUP元件。
Enable External GT Channel DRP: 启用额外的GT和DRP 端口
Additional Transceiver Control and Status Ports:额外的收发器的监控接口。
- IDs 页面设置详解
IDs标签页用来配置IP核的初始化参数,分类代码和卡总线CIS指针信息。
Vendor ID:供应商ID,Xilinx默认的Vendor ID为10EEh, 表示该IP核是Xilinx的产品。
Device ID:设备识别码,默认的设值为70<链路速度><链路宽度>h。该属性可以根据实际的应用被设置为任意值。如图中所示配置PCIE IP 核为2.5 Gps,X1 模式,其Device ID的只即为0x7011
Revision ID:设备或应用的版本号。默认为00h。
Subsystem Vendor ID:子系统供应商号,默认10EE。默认与Vendor ID相同。
Subsystem ID:子系统号,是Vendor的补充信息,默认与Device ID相同。
Class Code Look-up Assistant:提供了辅助设置Class Code的工具,可以根据设备通用的功能,自动设置Class Code中的参数。(建议选择)。
Class Code标签页是IP核的按用途分类信息,分类代码寄存器是只读的,用于标识设备的总体功能。有如下三部分组成。
Base Class:设备的基本类型,如选择内存控制 (Memory controller) 则对应的值为05。
Sub-Class:类型的进一步的细分类型,如选择RAM 则对应的值为00。
Interface:定义了专用的寄存器级的编程接口。允许不依赖于设备的软件,与该设备通讯。
Cardbus CIS Pointer:用于cardbus系统,并指向cardbus卡的卡片信息结构。如果该字段非零,则必须在正确的位置存在适当的卡片信息结构。默认值是0000_0000h;值范围是0000_0000h-FFFF_FFFFh。
- BARs 页面配置详解
Base Address Registers (BARs)页面如下,用来配置基地址寄存器,BAR0~5为32bit的参数。
终端模式的IP核的配置空间,支持6个32-bit的BAR或者3个64
bit的BAR(如Bar0使用了64bit则Bar1将会被自动disable),以及扩展的ROM BAR。
而Root Port配置空间支持2个32bit的BAR,或则1个64bit的BAR,以及扩展的ROM BAR。
32-bit BAR:存储和I/O寻址空间在128B—2GB之间。
64-bit BAR:存储和I/O寻址空间在128B—8GB之间。
BARx Enabled:使能该BAR。
Type:该BAR为存储还是I/O类型。
Size:BAR大小。
BAR的大小的设置参考下图。
Prefetchable:存储空间是否具有预读取的能力。
Value:BARx基地址。
Expansion ROM Base Address Register:扩展的ROM基地址寄存器。按照PCI 3.0的总线规范,该BAR的大小不能超过16MB。
建议在新的设计中避免使用I/O类型的BAR。
建议将不使用的BAR disable掉。
Core Capabilities 页面设置详解
Core Capabilities 页面用来配置IP的初始化参数,Class Code和Cardbus CIS指针信息。
Capabilities Register:
- Capability Version:定义了PCI-SIG®定义的PCIe capability structure的版本号,该值不能更改。
- Device Port Type:定义了PCI Express逻辑设备的类型。
- Slot Implemented:指定与该端口链路连接的槽。(只在Root Port模式下使用)。
- Capabilities寄存器:表示Capabilities寄存器的值,不可修改。
Device Capabilities Register:
- Max Payload Size:设置PCIE支持的最大数据包,可配置128B、256B、512B、1024B。
- Device Capabilities Register:设备功能寄存器的值,不可修改。
Block RAM配置选项:
- Buffering Optimized for Bus Mastering Applications:该选项将会告诉远端设备,其授权机制专门为总线管理应用而优化过。
- Performance Level:选择性能的级别,该选项将会决定接收器和发送器的大小尺寸。性能越高,相对地消耗的资源越大。
Device Capabilities2 Register:显示Device Capabilities2寄存器的值,不可修改。
- Interrupt 页面配置详解
Interrupt页面用来设置PCI兼容的中断和MSI中断仿真的参数。PCIE支持两种中断方式,第一种是PCI总线的中断方式,模拟中断 引脚INTx的中断通知方式,与现行的PCI总线驱动程序核操作系统兼容;第二种是MSI(Message Signaled Interrupt)方式。MSI中断是通过存储器写操作边沿触发的,和原来的INTx方式驱动不兼容。
Enable INTX:使能INTX(PCI兼容传统的PCI中断信号)。
Interrupt PIN:只支持INTA的中断信号。
Enable MSI Capability Structure:使能MSI功能结构。
64 bit Address Capable:该选项可以发送64-bit的消息地址。
Multiple Message Capable:选择向Root Complex请求的中断矢量的数量,最大256个。
Per Vector Masking Capable:该选项可以指定为每个中断矢量启用掩码功能。
2.3.2.2 Advanced模式
- Basic页面设置详解
Basic标签页,中的Mode选择Advanced模式,即进入高级配置模式
与Basic模式相同。
Enable External GT Channel DRP:该选项将产生一个DRP接口,用来给用户动态配置IP核属性。(不建议用户使用,需要在Xilinx技术支持的指导下操作)。
- Identifiers (IDs)
与Basic模式相同。
- Address Registers (BARs)
与Basic模式相同。
- Core Capabilities页面配置
本节仅描述和base模式不一样的部分:
- Device Capabilities寄存器配置参数有:
- Extended Tag Field:扩展的发送包的标志字段,启用时为Tag字段为8-bit,不启用时Tag字段为5-bit。
- Extended Tag Default:默认的扩展标记。启用时Device Control寄存器的第8Bit位被设置为1,用来支持拓展的Tag使能(ECN)。
- Phantom Functions:表示支持使用未声明的函数号,以通过逻辑地将未声明的函数号(称为Phantom函数)与标记标识符结合,来扩展未完成的事务数。
- Acceptable L0s Latency:表示由于从L0s状态转换到L0状态,端口能够承受的可接受的总延迟。
- Acceptable L1 Latency:表示从L1状态转换到L0状态时,端点可以承受的可接受延迟。
- PCIe 2.1 Specific:
- UR Atomic:如果选中,内核将自动响应原子操作请求,并发出不支持的请求。如果未选中,内核将原子操作TLPs传递给用户。
- 32-bit AtomicOp Completer Support:表示支持32-bit的原子响应完成机制。
- 64-bit AtomicOp Completer Support:表示支持64-bit的原子响应完成机制。
- 128-bit CAS Completer Support:表示支持128-bit的比较和交换的完成机制。
- TPH Completer Supported:表示支持TPH的完成机制。
- Link Registers页面配置
- Supported Link Speed:链路速率,不可修改。
- Maximum Link Width:链路通道数:不可修改。
- ASPM Optionality:是否使能ASPM(活动状态的电源管理)。
- DLL Link Active Reporting Capability:是否启用报告数据链路控制和管理状态机的DL_Active状态信号。
- Link Capabilities Register:Link Capabilities寄存器的值,不可修改。
- Hardware Autonomous Speed Disable:该选项禁止硬件因设备特定原因改变链路速度,而不是试图通过降低链路速度来纠正不可靠的链路操作。
- Read Completion Boundary:Root Port模式下,读包的边界。
- Target Link Speed:设置链路运行速度的上限。这用于设置远端设备需要遵从的速度模式。该值在链接速度设置为5.0 Gb/s时才能进行编辑。
- Compliance De-emphasis:链路为5.0Gb/s时上游设备的预强调的级别。不可修改。
- Link Control Register 1:Link Control寄存器的值。不可修改。
- Link Control Register 2:Link Control 2寄存器的值。不可修改。
- Link Status Register(链路状态寄存器)的参数:
Enable Slot Clock Configuration:表示终端模式下使用的是连接器提供的物理的参考时钟,如果使用的是独立的参考时钟,则必须不能选中该选项。
- Interrupts页面配置详解
- Enable MSIx Capability Structure:是否使能MSIx功能结构。
- MSIx Table Setting:定义MSI-X表的结构。
Table Size:表的大小。
Table Offset:表基地址相对基地址寄存器的偏移。
BAR Indicator:表示在配置空间中映射MSI-X表的基地址寄存器。如果基地址寄存器为64-bit,则由低的DW来表示。
- MSIx Pending Bit Array (PBA) Settings:定义了MSI-X的PBA结构。
PBA Offset:MSI-X PBA基地址相对基地址寄存器的偏移。
PBA BAR Indicator:表示在配置空间中映射MSI-X PBA的基地址寄存器。
其他选项通base 模式。
- Power Management页面配置
该标签页用来设置电源管理寄存器的参数,功率消耗(power consumption包括整个应用的功率消耗,如I/O扇出的功率等)和功率耗散(power dissipation 只包括芯片自身的热消耗和电阻压降等)的参数。
- Device Specific Initialization:是否需要使用特殊的设备初始化功能,如果启用该选项,则设备进入D0未初始化状态后由专门的初始化程序来对设备进行初始化。标准的通用PCI设备,通常不会用到该选项。
- D1 Support:支持D1的电源状态。
- D2 Support:支持D2的电源状态。
- PME Support From:表示可以通过置位cfg_pm_wake信号来切换电源状态。
- Power Consumption:7系列总是将功率消耗报告为0W。
- Power Dissipated:7系列总是将功率耗散报告为0W。
- Extended Capabilities页面配置
(暂略)。
- Extended Capabilities 2页面配置
(暂略)。
- TL Settings页面配置
(暂略)。
- DL and PL Settings 页面配置
(暂略)。
- Shared Logic页面配置
设置在example中的多个实例中共享时钟还是共享GT_COMMON。
- Core Interface Parameters页面配置
用户可以选择要使用的核心接口参数。默认情况下,所有端口都被取出。对于某些情况,如果不使用某些接口,您可能会选择禁用它们。当禁用时,接口(端口)将从核心顶部删除。
- Add. Debug Options 页面配置
该选项使能JTAG调试功能。