- 1 概览
- 1.4 不支持的功能
- 2 产品说明
- 3 用IP核进行设计
- 3.1 通用设计向导
- 3.2 时钟
- 3.3 复位
- 4 设计流程
- 4.1 生成IP核
- 4.2 约束IP核
- 5 例程
- 5.3 例程文件结构
介绍: The 7 series FPGAs Transceivers Wizard LogiCORE™ IP 自动创建配置7系列fpga 收发器的HDL封装。向导可以配置一个或多个支持行业主流标准的高速串行收发器。或者从零开始支持各种自定义协议。 功能:
- 创建配置7系列fpga 收发器的HDL封装。
- 自动对模拟设置进行配置。
- 预定义了提供Aurora 8B/10B, Aurora 64B/66B, CEI-6G,DisplayPort, Interlaken, Open Base StationArchitecture Initiative (OBSAI), OC192,OC48, SRIO, 10GBASE-R, Common PacketRadio Interface (CPRI), Gigabit Ethernet,10 Gb Attachment Unit Interface (XAUI),RXAUI, and XLAUI, OTU3, 10GH SmallForm-factor Pluggable Plus (SFP+), OpticalTransport Network OTU3, V-by-One, SDI或者其他自定义的协议。
关于向导: 可以创建收发器、设计实例、testbench以快速整合以及验证自定义功能的串行接口。
功能概览:
这个图有1个重要的点:
- 第二步,在选完协议后,下一步应确定收发器的位置。因为这个是跟引脚有映射关系的硬核,位置必须确定。
收发器的HDL封装、设计示例、testbench的结构:
向导可以在TX和RX生成不对称数据位宽的设计(内部和外部不相等)的设计,但是不支持这样的功能或时序仿真。 向导不允许用户从两列中选择收发器(如果器件中有)。向导仅为GTZ收发器生成Verilog封装。
2 产品说明7系列的收发器是低功耗的,GTP线速率高达6.6Gb/s,GTX 12.5Gb/s,GTH 13.1 Gb/s。
端口描述(不同协议端口数不一样):
端口方向时钟域描述GTREFCLK_PAD_N_IN/GTREFCLK_PAD_P_INInput-fpga收发器块的差分时钟输入。某一个块中有好几个收发器SYSCLK_INInput-设计示例的系统时钟。如果DRP(dynamic reconfiguration port )接口使能了,DRP_CLK_IN与SYSCLK_IN连接DRP_CLK_IN_P/DRP_CLK_IN_NInput-外部输入的DRP差分时钟对,给DRP接口TRACK_DATA_OUTOutputrxusrclk表示在RX端接收到有效数据。这是一个电平信号。RXN_IN/RXP_INInputRX serial clkRXP和RXN是7系列FPGA收发器块中每个接收器的差分输入对。TXN_OUT/TXP_OUTOutputTX serial clkTXP和TXN是7系列FPGA收发器块中每个发射器的差分输出对。 3 用IP核进行设计 3.1 通用设计向导串行收发器的位置: 根据所选串行收发器的总数,提供打算使用的每个串行收发器的具体位置。面板中显示的区域指示了串行收发器在器件中的位置。区域的划分是基于串行收发器相对于每个设备可用bufg的中位数的物理位置。
基于设计示例进行设计: IP核的示例程序可以进行仿真和实现,自己的设计可以在此基础上进行,也可以作为排除自己的程序故障的参考。
保留寄存器: 用户程序和IP 核所有的输入和输出之间的寄存器可以简化时序以及提高系统性能。打拍很大程度的简化了时序分析以及让工具可以更好的布局布线。
识别关键时序路径: 示例的XDC文件说明了关键信号以及时序约束。
别瞎改IP核文件: 7 series FPGA transceiver core不允许用户修改,任何更改都可能造成系统时序以及协议问题。只能通过IDE的选项更改然后生成文件。
3.2 时钟 时钟描述GTREFCLK_PAD_N_IN/GTREFCLK_PAD_P_IN收发器块的外部差分时钟DRP_CLK_IN_P/DRP_CLK_IN_N外部差分时钟,DRP接口时钟,即ip核设计中MMCM的输入时钟SYSCLK系统时钟用于驱动FPGA逻辑。当DRP接口使能时,DRP_CLK连接到syscclk。这个时钟需要在XDC中被约束。PLLLOCKDETCLK给反馈检测的稳定参考时钟,PLL的参考时钟,PLL的输入参考时钟或从PLL产生的任何输出时钟(例如TXOUTCLK)不能用来驱动这个时钟。此时钟仅在使用PLLFBCLKLOST和PLLREFCLKLOST端口的时候需要.在示例设计中,PLLLOCKDETCLK连接到DRPCLK或syscclk。PLLREFCLKLOST在TX/RX启动FSM模块中使用。TX / RXUSRCLK和TX / RXUSRCLK2 的产生:
-
TXUSRCLK 和 TXUSRCLK2用TXOUTCLK产生,收发器的输出。
-
TXOUTCLK的源可以是参考时钟或PMA时钟。
-
RXUSRCLK and RXUSRCLK2可以使用TXOUTCLK 或 RXOUTCLK产生。
-
RXOUTCLK的源可以是参考时钟或者恢复时钟。
TX/RXOUTCLK通过一个混合模式时钟管理器(MMCM)或BUFG路由到FPGA逻辑。当TXUSRCLK和TXUSRCLK2不匹配、RXUSRCLK和RXUSRCLK2不匹配时,需要配置MMCM,在示例设计中则会根据情况自动配置MMCM。
3.3 复位设计示例中的FSM复位的目的:
- 初始化FSM以满足要求。
- 用于解决诸如fpga配置和RX数据中断或更换(如电缆插头或拔出)等问题。
第1页:
Component Name
: GT Type:收发器类型,取决于器件是否支持。 Shared Logic:选择收发器块PLL、差分参考时钟缓冲器、时钟和复位逻辑是包含在IP 核中还是在示例程序中。
第2页:
Protocal
: 从下拉列表选择协议。
选择收发器的位置和时钟,左下会显示所有器件支持的收发器。7系列收发器具体位置在《UG476:7 Series FPGAs GTX/GTH Transceivers》有写。
TX
:
RX
:
Use Common DRP
: 选择此选项将应用COMMON block的动态重新配置端口(DRP)信号。 Advanced Clocking Option :使用此复选框可将所有可能的参考时钟端口调出到生成的封装。用于动态时钟切换。 *Vivado Design Suite Debug Feature:使用此复选框可以打开IP中的ILA和VIO核,用于硬件调试和控制。
选择收发器及参考时钟: TX/RX Clock Source:确定提供给每个选定收发器的参考时钟信号的源。两对差分时钟信号输入引脚对REFCLK0和REFCLK1分别给四个收发器提供时钟,一共有四组,标签从下到上为Q0~Q4(k7 325 900为例,分别Q0Q3对应115118组)。每个收发机都可以访问本地信号组的时钟和相邻1或2组的时钟,这取决于收发器的位置。【一般都是选择本组的时钟,不要离太远】
各时钟域收发器分组对应关系
选项说明REFCLK0/1 Q0本地参考时钟到收发器Y0-Y3REFCLK0/1 Q1本地参考时钟到收发器Y4-Y7REFCLK0/1 Q2本地参考时钟到收发器Y8-Y11REFCLK0/1 Q3本地参考时钟到收发器Y12-Y15REFCLK0/1 Q4本地参考时钟到收发器Y16-Y19REFCLK0/1 Q5本地参考时钟到收发器Y20-Y23REFCLK0/1 Q6本地参考时钟到收发器Y24-Y27REFCLK0/1 Q7本地参考时钟到收发器Y28-Y31REFCLK0/1 Q8本地参考时钟到收发器Y32-Y35PLL selection
:
第3页:
TX/RX
:
- External Data Width: 设定发射机应用接口的数据宽度
- Encoding: 编码方式
- Internal Data Width : 内部数据位宽,我们关注外部就行,内部位宽给我们计算相关时钟频率提供参考。 注意:RX设置应与TX设置相同
DRP/System Clock Frequency
: 选择此选项使应用程序可以使用CHANNEL块的动态重新配置端口信号。
Optional Ports
:
Synchronization and Clocking
:
TXUSRCLK / RXUSRCLK Source
: TX:TXOUTCLK: TXUSRCLK由TXOUTCLK驱动 RX:TXOUTCLK: RXUSRCLK由TXOUTCLK驱动。如果RX缓冲区被绕过,则此选项不可用。对于RX缓冲旁路模式,使用RXOUTCLK作为RXUSRCLK的源。
TXOUTCLK / RXOUTCLK Source
: TX:Use TXPLLREFCLK: 如果勾选,TXOUTCLK由输入参考时钟生成;否则向导将为TXOUTCLK选择适当的源。 RX:Use RXPLLREFCLK: 如果勾选,RXOUTCLK由输入参考时钟生成;否则向导将为RXOUTCLK选择适当的源。
Optional Ports
:
第4页:
设置comma字符和控制接收均衡和终端电压。 Comma Detection
:
Differential Swing and Emphasis Mode
:指定发射pre-cursor pre-emphasis模式设置。选择自定义模式,使能设置的差异摆动和 pre-emphasis级别。
RX Equalization
:
RX Termination
: Termination Voltage:
- 选择GND接地内部终端网络。
- 选择Floating隔离网络。
- 选择AVTT将一个内部电压参考源应用到终端网络。
- 选择Programmable可编程选项,从下拉菜单中选择RX终止电压。
Optional Ports
:
第5页:
Enable PCI Express
: 选择该选项可开启PCI Express的某些特定操作,包括开启PCI Express省电模式和PCIe通道绑定选项。当PCI Express使用收发器时,此选项应该被勾选。
SATA COM Sequence
:
- Bursts:0到7之间的整数值,表示声明COM匹配的突发序列数。该值默认为4,这是SATA规范中为COMINIT、COMRESET和COMWAKE指定的突发计数。
- Idles:0到7之间的整数值,表示声明a的空闲序列的数目COM匹配。每个空闲信号都是一个长度与COMINIT/匹配的OOB信号COMRESET或COMWAKE。
Transition Time
:
- To P2::0到65,535之间的整数值。设置一个计数器,以确定PCI Express到P2电源状态的转换时间。
- From P2:0到65,535之间的整数值。设置一个计数器,以确定PCI Express从P2电源状态转换的时间。
- To/From non-P2:0到65,535之间的整数值。设置一个计数器,以确定PCI Express从P2以外的电源状态转换到或从电源状态转换的时间。
PCI Express Parameters:Optional Ports
:
OOB Signal Detection
:
- Use RX OOB Signal Detection:启用内部OOB信号检测器。OOB信号检测用于PCIe和SATA。
第6页:
Channel Bonding
:
Clock Correction
:
Sequences Didinition
:
第7页:
IP核根据自定义的参数产生了对应的时序和位置约束。
时钟频率约束 create_clock
错误路径 系统时钟和用户时钟与其他时钟没有关联,这两时钟也没有确定的相位关系,这两个始终与需要设置位 false path。 set_false_path
收发器布局 根据自己选的的位置会生成对应的约束,如:
##---------- Set placement for gt0_gth_wrapper_i/GTHE2_CHANNEL ------
set_property LOC GTHE2_CHANNEL_X0Y0 [get_cells xaui_wrapper_support_i/xaui_wrapper_init_i/
IO约束 包括参考时钟这些都是固定的位置,所以上面的约束就已经对参考时钟、输入输出引脚之类的IO进行约束了。
5 例程 5.3 例程文件结构对应的模块结构:
这里我的是
gtwizard_0
IP核文件结构_srcs\sources_1\ip\
文件说明.v收发器的主HDL封装。实例化单个收发器的封装用于目标设计.[veovho].xci来自Vivado工具的日志文件,描述用于生成收发器封装的选项。Vivado工具为它在当前项目目录中创建的每个Wizard封装生成XCI文件。XCI文件还可以用作Vivado工具的输入。_gt.v[hd]要在主收发器封装中实例化的单个收发器封装。使用所选协议的设置实例化所选收发器。_octal0.v仅限于GTZ收发器。要在主收发器封装中实例化的单个收发器封装。使用所选协议的设置实例化所选收发器。_octal1.v同上gtwizard_v3_4_beachfront.v个文件应该用于将用户逻辑与GTZ收发器连接起来。tx_startup_fsm.v[hd]发射器复位模块。这个文件不是为GTZ收发器生成的。rx_startup_fsm.v[hd]接收器复位模块。这个文件不是为GTZ收发器生成的。