一、TX 综述
本部分内容主要介绍如何配置与使用发送器内部的各个功能模块。每一个发送器包括一个独立的Transmitter,其由PCS和PMA两部分组成。如下图所示,我们应用中并行的数据先后通过FPGA发送接口(FPGA TX interface)、PCS、PMA等部分发送至高速串行总线。
以上过程关键的功能如下:
- FPGA TX Interface
- TX 8B/10B Encoder
- TX Gearbox
- TX Buffer
- TX Buffer Bypass
- TX Pattern Generator
- TX Polarity Control
- TX Fabric Clock Output Control
- TX Phase Interpolator PPM Controller
- TX Configurable Driver
- TX Receiver Detect Support for PCI Express Designs
- TX Out-of-Band Signaling
1、FPGA TX Interface
1.1 概述
该功能为FPGA应用数据与发送器驱动交互的接口,应用数据通过TXUSRCLK2的上升沿写入至TXDATA 端口。其中TXDATA数据位宽可以通过TX_DATA_WIDTH、TX_INT_DATAWIDTH、TX8B10BEN等端口将其配置为16、20、32、40、64、80bit。TXUSRCLK2时钟的速率由线速率、TXDATA 位宽以及TX8B10BEN使能决定。与之类似的时钟TXUSRCLK,必须为PCS层逻辑提供。
1.2 接口位宽的配置
接口配置如下表所示。
注意:当TX8B/10BEN = 0 ,TX_DATA_WIDTH位宽为20、40、80bit时,由TXCHARDISPMODE和TXCHARDISPVAL两个端口与其16、32、64bit数据拼接组成20、40、80bit。具体如下:
![](https://img-blog.csdnimg.cn/direct/c066890914d84855a2425bb8cabdc122.png)
1.3 恢复时钟生成
- TXUSRCLK
该时钟用于PCS层内部逻辑运行,其速率由线速率和内部数据位宽(Internal Datapath Width,详见1.2节)决定。
- TXUSRCLK2
该时钟为所有数据发送的主同步时钟,大多数为上升沿驱动。
TXUSRCLK和TXUSRCLK2的关系由TX_DATA_WIDTH和TX_INT_DATAWIDTH属性决定,详细见下表所示。特别的,当速率大于 6.6Gb/s时,内部数据位宽要求为4byte,TX_INT_DATAWIDTH属性设置为1。
时钟要求: (1)两时钟之间的时钟抖动需尽可能的小,需使用BUFG,BUFHs等时钟资源驱动。
(2)两时钟必须由参考时钟分频或倍频生成,且上升沿边沿对齐。
2、TX 8B/10B Encoder
2.1 概述
8B/10B编码是一种工业标准编码,其每个字节额外传输2个BIT以实现直流平衡(DC-balance)。
2.2 8B/10B位和字节顺序
8B/10B编码要求从a0开始传输,GT transceiver总是从最右边第一个bit开始传输;为了与8B/10B编码顺序匹配,GT transceiver内可以自动转换数据bit顺序。当8B/10B编码使能后,TX_DATA_WIDTH可设置为20、40、80,其具体传输顺序如下图所示。
2.3 K Characters(K字符)
K字符是用于控制功能的一个特殊字符。其中TXCHARISK ports 用于指示当前的TXDATA 为正常数据还是K字符。8B/10B编码在传输过程中会持续检测K字符,当检测到设置的特点K字符时,TXCHARISK会拉高,以TXDATA为32bit为例。
TXDATA | 0x000000BC | 0x0000BC00 | 0x00BC0000 | 0xBC000000 |
TXCHARISK | 4’b0001 | 4’b0010 | 4’b0100 | 4’b1000 |
注:关于8B/10B Valid Characters 和K characters 具体内容,详见ug476的Appendix C。