原创 xilinx V5 gtp 的使用摸索

2013-12-19 23:23 4552 28 31 分类: FPGA/CPLD

 


最近在摸索  V5的 rocket io 的使用   ,主要收获如下

  1  GTP  时钟

   GTP 的时钟源可以有 三种提供方式    1,  相邻的  GTP_TILE   2.  从差分端 经过 IBUFDS输入,应为 GTP 为  一对 公用 一个PMA_PLL,则GTP0 可以直接使用GTP1的用户时钟,如TXUSRCLK时钟,但在接收端需要使用自己独立的时钟   RERXCCLK   恢复时钟,或则使用公共的TXUSRCLK  但必须使用频率矫正,如为16bit 端口宽度  则 useclk2  =useclk/2

 

qq图片20131219002023.jpg

2 复位 

所有的GTP  设计必须复位,使用 PLLLKDET_OUT做DCM  及PLL 的复位信号,PLLKDET_OUT完成 后 变高,则DCM退出复位,  然后 RXRECCLK 时钟锁定,DCM锁定,LOCKED 信号有效,rxusrclk 被锁定,而此时 DCM及PLL的LOCKED 信号作为 GTP TX与RX 的复位信号, RX-TX退出复位状态,开始工作

 

qq图片20131219002940.jpg

 

 3 对齐

comma对齐是必须的,对齐的序列由ALIGN_COMMA_WORD设置,合法边带间隔由INTDATAWIDTH定义,边带位置数由RXDATA字节数定义,通常不GTP默认的对齐序列 为 K28.5,接收机在字符中搜寻对齐序列字符,一旦找到 ,将对齐到此字符边界,并将通常此序列也作为时钟修正序列,将RXENMCOMMAALIGN拉高,使能负命令对齐功能,任何符合对齐命令的模块都将引起命令重对齐,在成功对齐后,RXBYTEISALIGNED 将拉高,此时将命令对齐使能关闭以保持此时的对齐,

4时钟修正

对于非同源时钟驱动的TX与RX,时钟修正是必须的,使用rxrecclk可以不修正 由于任何两个不同源的时钟总存在一定的频率差,对于 GTP来说 由于频率不同步,将产生字符丢失

     1,CLK_CORRECT_USE  设为 TRUE

     2,设置时钟校正序列 CLK-COR_SEQ_1

    3,RXbuffer  极限值设置

    4, CLK_COR_ADJ_LEN用于设置子序列数目,如果内部数据位宽为10bit,则时钟校正电路适配所有10bit 大的每个子序列

 

 

4.8B/10B

    1,字符运行一致性检查

    2,K码指示RXCHARISK

    3,命令检查 DEC_PCOMMA_DETECT is TRUE,RXCHARISCOMMA有效

    4,限制命令触发 DEC_VALID_COMMA_ONLY   K28.1 , K28.5,K28.7 因为他们都有一样的8/10B头

 

5,通道绑定

  1,发送器同时在所有线上发送一个虚序列模式,来调整每路LANE的延迟

   2,使能每个GTP收发器的通道绑定功能

   3,设置主通道  CHAN_BOND_MODE 为TRUE   主通道 CHAN_BOND_LEVEL设为1

  4, 设置 从通道为CHAN_BOND_MODE=SLAVE     从通道 CHAN_BOND_LEVEL设为 0

 

    5,连接通道绑定端从 MADTER到 每个SLAVE,或者直接使用菊花链

    6,设置通道绑定序列 和检测参数 CHAN_BOND_SEQ_LEN设置子序列长度 1-4

CHAN_BOND_SEQ_1*设置序列值,如CHAN_BOND_SEQ_2_USE 为TRUE,CHAN_BOND_SEQ_2*设置2的序列值,子序列有效激活的位数由 内部数据宽度和RX_DECODE_SEQ_MATCH决定, 设置最大偏移 ----当主通道接收到通道绑定序列 ,将不立即触发通道绑定,猪头感到必须等待一些时钟,否则 慢的通道可能还未接收到绑定序列,时钟校正和通道绑定电路一起执行,正常的他们不会冲突,除非通道绑定事假和时钟校正同时发生,这种情况,一个电路必须优先,确保时钟校正有更高的优先级,CLK_COR_PRECEDENCE设置为TRUE

   

 

 

6 使用 TX/RX phase Alignment

   1   bypass buffer  减少延迟,但此时 时钟校正和通道绑定无效,RX 时钟源必须使用RXRECCLK,

  2, RX_SXCLK_SEL设置为  RXUSR

  3,由 RXRECCLK驱动 RXUSECLK

 4,使用GTPRESET或 CDRreset 复位RX数路径

 5,等待 PMA PLL好 RXUSRCLK  DCM 或PLL  LOCK

 6 等待CDR锁定 提供一个稳定的RXRECCLK

 7,驱动RXPMASETPHASE 为高32个用户周期后,释放

 

,

 

   

 

 

 

 

 

 

 

 

文章评论3条评论)

登录后参与讨论

用户377235 2015-9-21 21:50

高手,再详细点就好了

用户1703205 2014-5-21 19:43

很好

用户1534968 2013-12-19 06:33

学习了!
相关推荐阅读
用户1431377 2016-06-29 16:16
sata host and PCIE
      前段时间在做PCIE的DMA,完成了X4与X8的 基于V5平台的dma 操作,实际测试速度(X4 LANE)为DMA READ   610MB/S   ,DMA WRITE  760M...
用户1431377 2014-12-15 22:00
FPGA GTP V5
FPGA GTP及PCIe使用     ...
用户1431377 2014-10-25 10:57
vivado xdc约束
XDC和UCF约束的区别主要包括: (1) XDC是顺序语言,它是一个带有明确优先级的规则。 (2) 一般来说,UCF应用于网络,而XDC可以应用到引脚、端口和单元对象 (...
用户1431377 2014-05-04 20:41
DDR2 虚拟FIFO设计
最近由于需要做了基于FIFO的DDR2的设计,在实际调试后工作正常...
用户1431377 2013-10-25 22:11
verilog 的 FOR语句
module pcie( input clk, input rst_n,output reg [15:0]numout,input [12:0]data     ); reg [4:0]i;...
我要评论
3
28
关闭 站长推荐上一条 /2 下一条