概况
通过学习 GT Wizard 64b66b 万兆网的低延迟解包方案,以及 gearbox 的对齐技术使用
目的
学习 GT Wizard 64b66b 的 IP 基本构架,灵活使用 IP 完成高速数据传输
软件
Vivado 和 modelsim10.7
硬件
支持 10.3125g 的高速接口开发板
1. 软件基本介绍:
Vivado 是 xilinx 推出的集成开发工具主要针对于硬件设计工程师使用,并且集成了 SDK 开发工具,SDK 针对软件工程师开发使用。
Modelsim 10.7 可以支持和 vivado 联合仿真,当使用到 viado 的 IP 时需要使用 modelsim 仿真,应为 vivado sim 工具跑仿真比较慢,所以建议使用 Modelsim。
2. Xilinx kintex 7 系列的 trainsceivers 架构学习
以本课程示例板卡为例,bank 115 116 117 118 四个 bank 都是高速接口专用 bank,每个 bank 有一个 Quad 也就是 4 收 4 发的高速接口,每个 Quad 可以有 2 个参考时钟,这两个参考时钟也可以给上下的相邻的 quad 提供参考时钟。
Quad 在芯片中的位置
K7-325t 的 Quad 在右侧一列 4 个 Quad
Quad 的结构
参考时钟资源以及路由资源
QPLL 和 CPLL 的时钟架构
手动计算 PLL 参数例子:(此部分用于理解原理 xilinx 软件中会自动计算)示例万兆以太网
第一步:确定线速率为 10.3125gbps 线速率第二步:确定内部数据位宽 32bit
第三步:确定参考时钟频率 156.25Mhz第四步:计算 PLL 输出频率,设置 D=1,
Fpllclkout = flineRateD /2= 10.3125g1/2=5.15625g
第四步:根据 Fpllclkout 频率范围求得 VCO 输出频率,选择 QPLL 还是 CPLL Fvcoclkout=Fpllclkout*2;
QPLL VCO 频率范围是参考 UG476 P55
CPLL VCO 频率范围是 参考 UG476 P48
根据手册信息本案例只能选择 QPLL
第五步:先假设 M 等于最小值 1,推到出 N 值,这里是整数分频所以参考时钟选择和 N,M 值推到需要一些计算过程。如果不成立需要设置其他 N,M 值进行计算、
N=( Fpllclkout/Fclkin) (2M)=(5.15625g/156.25m)*(2))=66第六步:根据内部数据位宽计算并行时钟 parallel clock
内部位宽可以根据 IP 核选择 16 bit 32bit
如果选择 32bit 那么 4*8=32 所以 W 值选择 4(意思就是 8bit 需要 4 个串行时钟周期获得 DDR 每个沿获取 1bit)而随后的因子选择 1/4 因为再此基础上进行 4 分频得到 32bit 的数据采样时钟,4 个 8bit 数据组成 32bit。
如果内部数据位宽选择 40bit 请问 W 值和后续的分频因子怎么选择呢? 4*10bit=40bit 所以 W=5,分频因子选择 1/4;
如果内部数据位宽选择 20bit 请问 W 值和后续的分频因子怎么选择呢? 2*10bit=20bit 所以 W=5,分频因子选择 1/2;
3. 建立GTwizard 创建low latency PCSPMA
-
FPGA TX Interface
-
TX 8B/10B Encoder
-
TX Gearbox
-
TX Pattern Generator
-
TX Buffer
-
TX Polarity Control
-
TX Parallel In Serial Out
-
TX Pre- and Post-Emphasis
-
TX Configurable Driver预加重的使用和调试方法:
预加重需要根据实际通信环境,选择不同的预加重值来进行测试误码率,来选择最优的预加重值。不能过度使用预加重导致信号失真。
码间串扰
预加重效果波形
- RX Configurable Equalization (CTLE Continuous Time Linear Equalizer)
- RX Configurable DFE (Decision Feedback Equalization GTX and GTH only)
- RX Clock and Data Recovery
- RX Serial In Parallel Out
- RX Polarity Control
- RX Pattern Checker
- RX Comma Detection and Alignment
- RX 8B/10B Decoder
- RX Elastic Buffer
- RX Gearbox
- RX Fabric Interface RX 链路中的模拟前端
创建 gtwizard ip
搜索 gt wizard ip
设置线速率,quad 位置等配置信息(示例使用 117bank 的第四对,参考时钟选择 117bank 的 ref0)
设置 pcs 用户接口
PMA 优化部分选择默认即可
PCIE SATA PRBS 相关可以默认即可
总览报告
完成生成 IP
4. GT transceivers reset
l GT 的初始化分为两步:
第一步是初始化 TX RX 对应的 PLL
第二步是初始化 TX RX 对应的 PMA PCS复位的两种模式
- 顺序模式顺序完成各个组件的复位。
- 单一复位模式,使用组件的专用复位管脚进行独立复位。
l 发送端的初始化和复位
发送端只支持顺序模式,不支持单一复位模式。
复位流程:gttxreset 有效,进入 TXPMARESET 处理流程复位 PMA,然后进入 TXPCSRESET 处理流程复位 PCS,复位完成产生 TXRESETDONE 指示复位完成。
顺序复位流程中,如果 txpmareset 信号为高需要等待此信号为低触发 TXPMARESET 处理流程。
顺序复位流程中,如果 txpcsreset 信号为高需要等待此信号为低触发 TXPCSRESET 处理流程。
注: 在 FPGA 初始化配置完成之后此流程会自动进行, 即使不给出 soft_tx_reset_in,gttxreset_in 如 下 流 程 也 会 在 gtwizard_64666b_tx_startup_fsm.v 模块中自动驱动产生。
如果希望进行 TX 部分的复位,给出 soft_tx_reset_in 即可。复位 FSM 到 IDLE 状态完成整个复位流程。
复位所该函的模块组件
以可以参考 ug476 p61 复位和初始化章节。
l 接收端的初始化和复位
GT 收发器的接收端的复位状态机要相对 TX 复杂很多,并且支持顺序模式和单一组件复位模式。Rx 接收端具有很多组件组成。
顺序模式的复位流程:(下图复位状态机从上到下)
Gtrxreset 激活复位脉冲之后,就会触发自动状态机流程,会自复位初始化各个状态机对应的组件,该函整个 PMA 和 PCS。
单一组件的复位流程:(下图从左到右)
RXPMARESET, RXDFELPMRESET, EYESCANRESET, RXPCSRESET, and RXBUFRESET
细节独立每个单独组件复位时序详细参考 UG476 P78对应复位使用的一些建议
5. Gearbox 的使用建立数据收发通路以及搜索同步头算法
建立数据通路框图
外部产生序列器的TX Gearbox 变速器的使用以及时序
变速率表
时序关系
外部产生序列器的RX Gearbox 变速器的使用以及时序
这里 SLIP 信号是用来去给 Gearbox 进行滑动搜索同步头的窗,每一次高脉冲会移动一次窗口,直到搜索到同步头。
那么此搜索过程,xilinx 推荐一个搜索状态机用于锁定同步
简化后的状态机:
搜索同步模块状态机:
优化后的状态机定义 5 个状态,分别为
LOCK_INIT:锁定初始化状态,初始化锁定标志 block_lock 为 false RESET_CNT****:计数器复位状态,复位头包计数器 sh_cnt 和无效头计数器 sh_invalid_cnt;
Sh_cnt:在 TEST_SH 状态下有一个头包计数器加 1(有效无效头包都加 1); Sh_invalid_cnt:在 TEST_SH 状态下有一个无效头包计数器加 1; TEST_SH****:监测同步头状态
此状态下当 sh_cnt == 64 并且 sh_invalid_cnt == 0 跳转到 64_GOOD 状态;
此状态下当 sh_cnt == 64 并且 sh_invalid_cnt > 0 跳转到 RESET_CNT 状态重新复位计数器检测头。
此状态下当 sh_invalid_cnt>=16 或者(block_lock0 && invalid_sh1)跳转到 SLIP 状态,
SLIP:产生移位搜索同步头脉冲状态,控制 gearbox 将搜索同步头的窗口进
行移动一拍。
此状态下产生一个时钟节拍的 slip_en 脉冲,并产生计数器 slip_wait_cnt计数 32 拍后跳转到 RESET_CNT 状态。
此状态下拉低 block_lock 信号; 64_GOOD****:稳定检测到同步头产生锁定标志
此状态下拉高 block_lock 标志并跳转到 RESET_CNT 状态进行下一次的检测。
实例项目:
产生 4 路 IQ 100M 采样率的载波信号 I 路 8bit Q 路 8bit,组成 64bit 数据使用高速接口进行传输。
标签:状态,cnt,TX,复位,RX,万兆,PCSPMA,时钟,延迟 From: https://www.cnblogs.com/LiamJacob/p/17920254.html