GTHE3开发记录3

IP Core内部有一个top顶层结构跟两个看不到结构(没看明白怎么生效)的GTHE4_powergood跟GTY4_powergood模块,可能是因为设置的是GTHE3所以没用到吧,暂时先不管了,在顶层结构向下找,找到gtwizard_ultrascale_0_gtwizard_gthe3.v文件,之前被顶层设置的参数都被传递到了这里,在调用的过程中,该文件的某些输入管脚被赋了特定值,但鉴于数量太多,不再在此赘述。该文档中使用了大量的generate语句,从文件层次树中可以看到主要分为一系列的复位机制、common、channel、data_tx及data_rx,由于部分模块比较复杂,下面按照ug576中划分的功能依次进行分析:

1.复位机制

  • 在GTH上电并配置之后,需要对GTH进行初始化复位。TX/RX链路可以选择使用CPLL或QPLL,在初始化相关的PLL之后(时钟锁定),TX与RX可以同时进行复位。
  • RX链路可以使用顺序复位或独立复位模式,而TX链路只能使用顺序复位模式,初始化复位也必须是顺序复位模式。GTRESETSEL用于选择顺序复位还是独立复位模式,官方推荐使用顺序复位模式(置低)。

1.1 CPLL复位

若启用CPLL,则需要使用CPLLPD对CPLL进行复位,CPLLRESET保留不用,CPLLPD至少保持高电平2us

1.2 QPLL0/1复位

若启用QPLL0/1,则需要使用QPLL0/1RESET对QPLL0/1进行复位,官方推荐QPLL0/1RESET保持一个参考时钟周期的高电平(内部的真正的复位时长远大于此)

1.3 TX链路复位

  • TX链路只能使用顺序复位,使用GTTXRESET 进行全链路复位,复位状态机可以自动完成后续的各模块复位,大致顺序如下:GTTXRESET置高,在GTTXRESET置低后开始TX链路复位,TXPMARESET置高,在TXPMARESET 置低后开始PMA模块复位,TXPCSRESET置高,在TXPCSRESET置低后等待TXUSERRDY为高开始PCS模块复位,最后以TXRESETDONE置高标志着TX链路复位的完成。
  • TXUSERRDY信号置高的条件是:1. 所有用到的时钟包括TXUSRCLK与TXUSRCLK2信号都处于稳定状态;2.用户接口侧准备好传输数据给GTH
  • 一般情况下,PMA与PCS复位所需时间跟数据链路速率有关,虽然有可配置参数影响PMA与PCS复位时长,但官方不推荐自由配置。

1.3.1 TX链路初始化复位

TX链路的初始化复位需要满足以下要求:

  1. 必须使用顺序模式
  2. 必须用GTTXRESET进行复位
  3. 整个初始化复位期间,TXPMARESET与TXPCSRESET必须全程置低,直至TXRESETDONE置高标志着复位完成
  4. GTTXRESET要等到相关的PLL稳定后才能置低(开始初始化复位)
  5. 在GTTXRESET 为高的情况下,才能让C/QPLLRESET或GTTXRESET 置低
  • 若上电初始化配置后,复位模式为独立复位模式,则需要执行以下操作:
  1. 更改为顺序复位模式
  2. 等待300-500ns
  3. 按照下图分别对QPLLRESET、CPLLPD 及GTTXRESET信号进行赋值
    初始化复位TX链路

1.3.2 TX链路全复位

  • 使用GTTXRESET信号可以对TX链路进行全复位,使用要求如下:
  1. 必须为顺序复位模式
  2. 全复位期间,TXPMARESET与TXPCSRESET信号须全程置低,直至TXRESETDONE置高
  3. 相关的PLL必须提前处于锁定状态
  4. 官方建议GTTXRESET置高一个参考时钟周期

1.3.3 TX链路部件复位

  • TX链路又分为PMA与PCS两大部件,可以简单认为PMA主要负责串行化,PCS主要负责8B/10B编码。PMA与PCS也可以分别复位,PMA或PCS复位前,须保证GTTXRESET为低
  • TXPMARESET由高置低则启动PMA复位,在此期间TXPCSRESET须全程置低。顺序复位模式下,PMA复位后,若TXUSERRDY为高则自动开始PCS复位
  • 在TXUSERRDY为高的情况下TXPCSRESET由高置低则启动PCS复位,再次期间TXPMARESET须全程置低。顺序复位模式下,该操作只对PCS进行复位
    ug576中还列举了很多种需要复位的情况下推荐使用何种复位,此处不再赘述

1.4 RX链路复位

  • RX链路复位除了比TX链路复位多出一个独立复位模式,并无太大区别,部件复位部分也只是分成更多个部件进行复位,列举如下:PMA、DFELPM、EYESCAN、PCS、BUFR。另外还有一个不在部件范围之内的OOB,不受顺序复位或独立复位模式的影响。
  • RX链路的初始化复位也必须使用顺序复位模式

2 下电机制

  • 每条通道都可以分别使用RXPD/TXPD对收发链路进行下电,CPLLPD可以下电CPLL,QPLL0/1PD可以下电QPLL0/1
  • RXPD/TXPD可选0-3四个值,分别对应PCIE协议中的四种模式(正常工作、快恢复、慢恢复与低功耗)

2.1 PLL下电

  • 置高QPLL0/1PD或CPLLPD信号则可对相应模块进行下电操作,在上电初始化及配置过程中,官方建议用CPLLPD对CPLL下电,直到检测到参考时钟变化沿且频率正确

2.2 TX与RX下电

  • 在非PCIE应用中,可以用TXPD与RXPD分别对TX/RX链路进行下电,但TXPD与RXPD只有两个值可选0、3,为0时正常工作,为3时下电

3 回环机制

  • 回环机制可以分为近端回环与远端回环,近端回环为收发器通道内部回环,远端回环为收发器通道外部(占用一个还是多个收发通道?),近端远端又各自分为PCS回环与PMA回环
  • 回环机制既可用来开发测试,也可用来定位问题所在。回环测试常用PRBS(伪随机二进制序列),每个GTH收发器内嵌PRBS生成器与检测器
  • 近端PCS回环(下图路径1):需使能RX链路buffer,将RX_XCLK_SEL设置为RXDES。使用该回环时,使用TX侧的PMA平行时钟(TX XCLK) 驱动RX侧的XCLK时钟,如果RXOUTCLK用以驱动复联逻辑(interconnect logic) 并且RXOUTCLKSEL别设置为RXOUTCLKPMA,若想使用该回环,则需要执行以下任一条件:
  1. 将RXOUTCLKSEL改为RXOUTCLKPCS
  2. 将RXCDRHOLD设置为1
  • 近端PMA回环(下图路径2):在开始或结束该回环后都需要用GTRXRESET进行复位。
  • 远端PMA回环(下图路径3):需使能TX链路buffer,将TX_XCLK_SEL设置为TXOUT。TX链路的写一侧(write side) 需要用RX链路的PMA平行时钟(RX XCLK)驱动。需将TXPIPPMEN与TXPIPPMSEL都置低以关闭TX链路的高精度相位调整控制器。在开始或结束该回环后都需用GTTXRESET复位该回环。需将TXGEARBOX_EN置低以关闭TX链路的变速器。
  • 远端PCS回环(下图路径4):若没开启时钟校正功能,该回环需与回环数据使用同一个参考时钟。任何情况下,TXUSRCLK与RXUSRCLK都要由同一个时钟源(BUFG_GT)进行驱动。启用该回环时需关闭变速器

4. DRP动态重配

  • Channel原语与Common原语都可以使用动态重配功能,使用9位地址(U+系列为10位)与同为16位的数据输入与数据输出接口实现动态重配参数功能。读写操作时序图如下所示:
    DRP写操作
    ![DRP读操作(https://img-blog.csdnimg.cn/20181127111841766.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FoeTAw,size_16,color_FFFFFF,t_70)
    DRP寄存器地址及功能可见ug576附录,此处不再赘述

5. 监视功能

说是可以监视LPM/DFE的状态,LPM(Low-Power mode)与DFE(Decision Feedback Equalizer)是接收端均衡器的两种工作模式,该内容留到后面再分析。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值