每一个收发器具有一个独立的发送端,发送端有PMA(Physical Media Attachment,物理前言适配层)和PCS(Physical Coding Sublayer,物理编码子层)组成,其间PMA子层包括高速串并转化(Serdes)、预/后加剧、接纳均衡、时钟发生器及时钟康复等电路。PCS子层包括8B/10B编解码、缓冲区、通道绑定和时钟批改等电路。关于GTX的发送端来说,结构如图1所示。
图1
FPGA内部并行数据经过FPGA TX Interface进入TX发送端,然后经过PCS和PMA子层的各个功用电路处理之后,终究从TX驱动器中以高速串行数据输出,下面将介绍各个功用电路。
FPGA TX Interface(TX用户接口):TX Interface是用户数据发往GTX的接口,该接口的信号如表1所示。
表1
发送数据接口是TXDATA,采样时钟是TXUSRCLK2,在TXUSRCLK2的上升沿对TXDATA进行采样。TXUSRCLK2的速率由线速率、TX Interface接口位宽和8B/10B是否使能决议(TXUSRCLK2频率 = 线速率 / TX_DATA_WIDTH ;比方线速率是10Gb/s,TX_DATA_WHDTH等于80,那么TXUSRCLK2的频率是125MHz)。TXDATA的位宽能够装备成16/20/32/40/64/80位宽,经过TX_DATA_WIDTH 、TX_INT_DATAWIDTH、TX8B10BEN三个特点设置能够装备成不同的位宽,详细特点如表2所示。
表2
GTX的TX Interface分红内部数据位宽和FPGA接口位宽,其间内部数据归属于TXUSRCLK时钟域,FPGA接口数据归属于TXUSRCLK2时钟域,而内部数据位宽支撑2byte/4byte,FPGA接口数据位宽支撑2byte/4byte/8byte,因而,决议了TXUSRCLK和TXUSRCLK2有必定的时钟倍数联系,TXUSRCLK和TXUSRCLK2的时钟倍数联系如表3所示,其间TX_INT_DATAWIDTH特点设置为“0”,表明内部数据位宽为2byte,假如设置为“1”,则表明内部数据位宽为4byte(线速率大于6.6Gb/s的时分应当置“1”)。
表3
TXUSRLK和TXUSRCLK2时钟是相关联的,在时钟这两个时钟时应该遵从下面两个原则:
1. TXUSRCLK和TXUSRCLK2有必要是上升沿对齐的,误差越小越好,因而应该运用BUFGs或许BUFRs来驱动这两个时钟(由于TX Interface和PCS子层之间没有相位校对电路或许FIFO,所以需求严厉对齐,自己自己的了解)。
2. 即便TXUSRCLK、TXUSRCLK2和GTX的参阅时钟运行在不同的时钟频率,有必要确保三者有必要运用同源时钟。
发送端的时钟结构:为了能够更好的了解GTX的发送端怎么作业,了解发送端的时钟结构很有必要,图2是发送端的时钟结构图。
图2
其间红框部分和黄底部分的内容是咱们需求要点了解的当地,图中的MGTREFCLK是上一篇中说到的GTX的参阅时钟,经过一个IBUFDS_GTE2源语之后进入GTX,用以驱动CPLL或许QPLL。关于TX PMA来说,首要完成的功用是并串转化,其并串转化的时钟能够由CPLL供给,也能够由QPLL供给,由TXSYSCLKSEL挑选,TX PMA子层里边有三个赤色方框部分是串行和并行时钟分频器,效果是发生并行数据的驱动时钟,其间D分频器首要用于将PLL的输出分频,以支撑更低的线速率。
÷2/÷4这个选项由TX_INT_DATAWIDTH决议,假如TX_INT_DATAWIDTH为“0”,则挑选÷2,反之挑选÷4。
关于÷4/÷5,则由TX_DATA_WIDTH决议,假如是位宽是16/32/64,则挑选÷4,假如位宽是20/40/80,则挑选÷5。
关于TXUSRCLK和TXUSRCLK2由谁驱动呢,官方引荐运用TXOUTCLK驱动,这样做能精简规划,一起安稳,怎么运用TXOUTCLK来做TXUSRCLK和TXUSRCLK2的驱动时钟呢,依据TXUSRCLK和TXUSRCLK2的频率联系,以一个Lane为例,图3表明TXUSRCLK=TXUSRCLK2的驱动办法,图4表明TXUSRCLK = 2*TXUSRCLK2的驱动办法。
图3 图4
关于图4,CLKOUT0的值为CLKOUT1的2倍。
TX 8B/10B Encoder:高速收发器的发送端一般都带有8b/10b编码器。意图是确保数据有满足的切换供给给时钟康复电路,编码器还供给一种将数据对齐到字的办法,一起线路能够坚持杰出的直流平衡。在GTX运用中,假如发送的是D码,则需求将TXCHARISK拉低,假如是K码,则将相应的TXCHARISK拉高。
TX Buffer:了解发送的TX Buffer的效果,首先得搞清楚TX发送端的时钟域,TX发送端的时钟域如图5所示。
图5
图5中赤色方框便是TX Buffer,咱们都知道FIFO具有阻隔时钟域的功用,在这里也不破例,咱们从图中能够知道,TX Buffer衔接着两个不同的时钟域XCLK和TXUSRCLK,在发送端的PCS子层内部包括两个时钟域,XCLK(PMA并行时钟域)TXUSRCLK时钟域,为了数据发送的安稳,XCLK和TXUSRCLK有必要是速率匹配,相位差能够消除的,TX Buffer首要用于匹配两时钟域的速率和消除两时钟域之间的相位差。
TX Buffer也能够被旁路,TX发送端供给了一个相位对齐电路,能够处理XCLK和TXUSRCLK时钟域之间的相位差,可是TX_XCLK_SEL需设置为“TXUSR”来坚持XCLK时钟域和TXUSRCLK坚持同频。
TX Pattern Generator:GTX具有伪随机数列发生电路,伪随机数列是之中看似随机,可是是有规则的周期性二进制数列,有杰出的随机性和挨近白噪声的相关函数,所以伪随机数列能够用来做误码率丈量、时延丈量、噪声发生器、通讯加密和扩频通讯等等范畴,在GTX中能够用来测验高速串行通道传输的误码率,图6是GTX的PRBS生成电路。
图6
能够使能或许旁路这个PRBS生成电路,假如旁路的话TXDATA会传输到发送端的PMA。一般运用PRBS形式测验模型如图7所示。
图7
TX Polarity Control:TX发送端支撑对TX发送的数据进行极性操控,从PCS子层输出的编码数据在进入PISO串行化之前进行极性翻转,这部分功用首要是用来补偿PCB的规划过错,假如PCB规划时不小心将TXP和TXN穿插衔接的话,能够经过设置TXPOLARITY为“1”来翻转信号的极性。