首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

《Xilinx可编程逻辑器件设计与开发(基础篇)》连载26:Spartan-6的GTX模块

《Xilinx可编程逻辑器件设计与开发(基础篇)》连载26:Spartan-6的GTX模块

5.1.7 GTX模块
Virtex-6支持多种高速串行接口,其中高速串行模块GTX收发器可以实现150Mbit/s~6.5Gbit/s的线速率。GTX收发器是芯片与芯片之间、板与板之间进行串行通信的首选解决方案。GTX收发器具有以下特性。
灵活的SERDES支持多速率应用。功能强大的发射预加重和接收均衡功能,具有最佳的信号完整性。集成式“变速箱”可以实现灵活编码:8B/10B、64B/66B、64B/67B。高度灵活的时钟控制,接收与发送独立。可以与片上PCI Express和三态以太网MAC模块连接。相比以前的产品,收发器功耗降低了25%,在6.5Gbit/s下,功率低于150mW(典型值)。符合常用标准,如10/40/100G以太网、PCI Express、OC-48、XAUI、SRIO和HD-SDI。
Virtex-6器件中包含12~36个GTX收发器模块,GTX发射与接收模块框图如图5-37所示。GTX收发器包含物理编码子层(PCS)和物理媒体接入子层(PMA)。PMA包含串行/解串器(SERDES)、TX和RX输入/输出缓冲、时钟产生器和时钟恢复电路。PCS包含8B/10B编码/解码器、弹性缓冲器。


(a)GTX发射模块框图



(b)GTX接收模块框图
图5-37 MGT内部结构图
发送的并行数据经过8B/10B编码后,写入发送端FIFO,然后转换成串行差分数据发送出去。接收端接收到的串行差分信号首先经过接收端缓冲,然后经过串并转化器转换成并行数据,再经过8B/10B解码,写入弹性缓冲,最后并行输出。
PCS具有8B/10B编码器/解码器。MGT可以工作在32位或40位操作模式,可以在配置或者运行过程中更改PMA速率和PCS协议,可以根据时钟来配置内部数据宽度和外部数据宽度。
PMA提供与外部媒体的模拟接口,其中包括:20倍时钟倍频器、发送端时钟生成器、发送缓冲器、串行器、接收端的时钟恢复电路、接收缓冲器、解串器、可变速率的全双工收发器、可编程的五级差分输出幅度(摆率)控制和可编程的四级输出预加重模块等。
MGT中的几个重要模块说明如下。
(1) 8B/10B编解码器。
8B/10B编码机制是由IBM公司开发的,已经被广泛采用。它是一种数值查找类型的编码机制,可将8位的字符转化为10位字符。转化后的字符可以保证有足够的跳变用于时钟恢复。8B/10B编码具有“0”和“1”出现的概率相等,直流基线漂移小,低频分量小,功率谱带宽较窄,抖动小,以及能够检测输入数据中的错误等许多优点。
8B/10B编码可以分为256个数据字符和12个控制字符。数据字符标识为D,用于传输数据;控制字符标识为K,用于传输控制序列。12个控制字符用于对齐、控制,以及将带宽划分为子通道。
(2) comma字符检测和对齐。
Virtex-6 RrocketIO有可编程的逗号检测,以便于实现10位字符的各种通信协议和检测,通过对MCOMMA_10B_VALUE、DEC_MCOMMA_DETECT、PCOMMA_10B_VALUE、DEC_PCOMMA_DETECT和COMMA_10B_MASK这些参数的设置,可以实现任意的8位或10位符号检测。
接收器在输入数据流中扫描搜寻comma字符。如果找到,解串器就调整序列边界以匹配检测到的comma字符序列,且扫描是连续进行的。一旦对齐确定,所有后续comma字符的对齐均已确定。在任意的序列组合里,comma字符序列必须是唯一的。常用的K字符是12个K字符中的一个或多个。由于K28.1、K28.5、K28.7这些字符的头7位都是1100000,这种比特序列模式只可以在这些控制字符中出现,因此,这些控制字符是非常理想的对齐序列。
(3) 时钟修正。
在时钟/数据恢复电路的作用下,从接收的串行数据流中解出时钟的频率和相位,一般将它的20分频时钟作为恢复时钟。在恢复时钟作用下从串行数据经过解串器产生并行数据作为8B/10B译码的输入,译码后的数据进入16×52位的接收缓冲器。输入缓冲器的输入数据速率是由PCS RXCLK的频率决定的,而从缓冲器读取端输出的数据速率是由RXUSRCLK的频率决定的。由于两个时钟会有差异,所以需要进行时钟修正。
时钟修正的基本原理是:在发送端,当数据发送了一定的字节或数个数据包后,通过插入和发送一些特定的字节修正字符;在接收端,当接收到这些字符后会自动地丢弃或者重复来补偿时钟的差异。时钟修正的核心工作是在比特流中搜寻特定的字符序列。
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表