基于FPGA的serdes电路之comma和PRBS检测电路设计说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的Serdes接口电路设计Comma和PRBS检测方案
(仅供内部使用)
拟制:谭宇日期:2013/09/13
审核:姚亚峰日期:
内部资料请勿外传
修订记录
日期修订版本描述作者2012/09/13 1.00初稿完成谭宇
目录
1.Serdes接口电路整体结构图 (3)
2.概述 (5)
2.1.文档版本 (5)
2.2.相关标准 (5)
2.3.开发环境 (5)
3.Serdes接口电路选型 (5)
3.1.Serdes芯片架构选型 (5)
3.2.Serdes主要性能指标 (7)
ma检测电路原理和实现 (7)
ma检测电路原理 (7)
ma的设计思路 (8)
5.PRBS电路原理和实现 (9)
5.1.PRBS电路原理 (9)
5.2.PRBS电路实现过程 (10)
6.说明 (10)
Comma和PRBS检测电路设计说明书
关键词:Serdes接口电路设计
摘要:
随着电子行业技术的发展,特别是在传输接口的发展上,原本用于光纤通信的Serdes 技术成为了为高速串行接口的主流。

它是一种时分多路复用(TDM)、点对点(P2P)的串行通信技术。

即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。

这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,从而大大降低通信成本。

安华高,博通,飞兆等国外半导体公司均已推出基于独立的Serdes 芯片,而国内目前还基本处于预研阶段。

本文就以基于FPGA的Serdes芯片IP core中Comma和PRBS检测电路部分做详细的介绍和说明。

缩略语清单:
Serdes Serializer/Deserializer串行器/解串器
PRBS Pseudo-Random Binary Sequence伪随机二进制序列
1.Serdes接口电路整体结构图
图1.Serdes接口电路整体结构图
Serdes接口电路为一个全双工电路,同时又具有点对点的高效传输。

其中包含以下部分:
1.编码器:主要将并行包数据编码成适应不同线路的格式。

编码器通常会消除长的无转
变位的序列,同时还可以平衡数据中0、1的出现次数。

从而降低并行数据的信道带宽,均衡电平,以便确保并串转换的数据准确传输,极大的降低了误码率。

2.并串转换:主要在core内将速率为y的n位宽并行数据转变成速率为n×y的串行数
据。

由于串行传输方式具有信道容量低,管脚少的特点,使得在core内的布局布线变得交为容易。

但同时这种时分复用的点对点传输方式,需要高速率的PLL采样时钟相频的高度一致,同时增加了校验的难度。

3.发送/接收器:主要在core内完成数据的发送/接收。

在Serdes电路中采用低摆幅的差
分信号传输。

原因是差分电路具有严格的阻抗匹配,同时输出晶体管工作在放大区域,使得有更快的开关速度。

但是由于不具有较强的驱动能力,为减少信号的衰减,在布局布线时需要严格控制等长长度。

4.串并转换:主要在core内将速率为n×y的串行数据转变成速率为y的n位宽并行数
据。

由于在core外,提高数据传输速率目前依然都采用并行的传输方式,以达到兼容其他器件的接口方式。

5.解码器:为了保证数据格式的一致性,需要将编码后的规则还原。

6.时钟恢复电路:修正发送时钟和接收时钟之间的偏差,同时也可实现多通道间的歪斜
修正。

ma电路:由于编码和串并转换后,在并串转换时用来指示字节边界,获取和验
证字节同步,以便能判断数据有效。

8.预加重处理:当信道带宽小于信号带宽时,信道的低通滤波特性会衰减信号的高频分
量,使信号的上升和下降时间变长。

如果串行流包含多个比特位时间的相同数值数据,而其后跟着短比特位时间的相反数据数值时,会发生符号间干扰。

介质(传输通道电容)在短位时间过程中没有足够的充电时间,因此产生了较低的幅度。

为了减少这种码间干扰,采用预加重处理,将高低电平均衡。

2.概述
2.1.文档版本
该文档为设计方案概要V1.0版本。

2.2.相关标准
JESD204B,JESD204A
2.3.开发环境
Debbusy代码调试软件、Modelsim电路仿真软件、Design Compiler电路综合软件。

3.Serdes接口电路选型
3.1.Serdes芯片架构选型
Serdes按照架构可分为:
1.并行时钟Serdes:将地址总线,数据总线,控制总线分别串行化,使得包处理能力
大大增强,但需要考虑时钟对这个三个总线的同步;
2.嵌入时钟Serdes:将时钟信号嵌入到数据信号流里,然后在接受端实现同步时钟。

这种基于时钟而不是字节操作的思想,解决同时并行传送时钟所带来的问题。

3.位交错Serdes:输入是串行数据,它常用来将多个通道较低速的串行码流交叉复用
成一路快速的串行码流,但是需要外部提供极精准的时钟来满足低抖动的需求。

4.8b/10b Serdes:是一种对字节操作的Serdes,将每个数据字节映射到10bit代码,
然后将其串行化为单一信号对。

10位代码是这样定义的:为接收器时钟恢复提供足够的转换,并且保证直流平衡(即发送相等数量的‘1’和‘0’)。

这些属性使8b/10b Serdes能够在有损耗的互连和光纤传输中以较少的信号失真高速运行。

这些技术中多数都采用了多重相位数据提取电路技术。

如果输入的串行数据流比特率为x,那么我们可以使用多重相位以x/4的低速时钟来重新组织数据流。

输入的数据流直接连接到4个触发器,每一个触发器运行在时钟的不同相位上(0、90、180以及270)。

这也是为何Serdes接口速度如此之快的真正原因。

Serdes芯片架构对比:
图2.Serdes芯片架构对比
此处重点详述8b/10b Serdes架构的接口电路数据流程:
图3.8b/10b Serdes架构的接口电路
它是将并行的字节信息编码成直流平衡的10bit8b/10b编码,再将它们串行发送出去。

在接收端,8b/10b Serdes需要一个Comma检测器来检测串行码流中的特殊Comma 字符,将串行码流划分成字边界正确的10bit8b/10b编码,送到解码器进行解码,得到和发送端相同的字节信息。

多数8b/10b Serdes通过比较接收端恢复的时钟和外部参考时钟来判断时钟锁定的情况,所以8b/10b Serdes对于参考时钟的相位抖动和频率稳定性要求较高。

3.2.Serdes主要性能指标
3.2.1抖动
如今的高速数字电路设计有着更快的沿速度和更窄的数据有效窗,每一种高速通信设计都要面临抖动的问题,并且随着数据速率的增加,抖动问题有扩大的趋势,观察和分析抖动原因是保证电路设计可靠性的关键。

在Serdes高速串行接口系统中,组成Serdes的任一个电路模块都可能是抖动的产生源。

抖动是数字信号的各个有效瞬时对于当时理想位置的短期性偏离,这意味着抖动是不希望有的数字信号的相位偏移,因此抖动会降低电路的传输性能。

抖动会使得信号的上升沿和下降沿变得模糊。

3.2.2误码率
误码率(BER:bit error ratio)是衡量在规定时间内数据传输精确性的指标。

误码率=传输中的误码/传输的总码数×100%,有误码就有误码率,为正确反映误码率,传输的总码数足够多,在通信系统中,通常要求误码率小于等于10-12。

在信号传输过程中,信号的衰减、噪声的影响、传输设备的影响、以及外界电磁干扰等因素都可能导致使信号电平的变化,如传送的信号‘0’,而接受到的信号为‘1’,这样就产生了误码。

3.2.3眼图
在实际的高速通信系统中,要完全消除码间干扰是不可能的,而对码间干扰的计算也没有准确的数学模型,因此通常用眼图来衡量系统基带传输的性能。

眼图测试是一种直观又实用的分析码间干扰的方法,是测试随机数据信号质量最常用的方法之一,眼图包含了丰富的数据信息,通过对眼图的测试,可以观察到信号的码间干扰及噪声影响的情况,估计系统的性能。

ma检测电路原理和实现
ma检测电路原理
Serdes接口在发送端将字节信息经过编码和串并转换后,经过信道传输到接收器上,接收器对收到的串行码流进行重定,并把它们重新恢复成并行的字节数据。

Comma信号就是用来指示字节边界,获取和验证字节同步(ByteSynchronization)的。

为了有效达到这个目的,Comma信号必须具有以下两个特性:1.它必须是独一无二的,2.相对于字节边界,它能产生一个统一的对齐。

在不考虑错误的情况下,Comma信息不能出现在其他bit 位上,既不能出现在其他字符中,也不能出现在两个字符之间。

符合这两个条件的0011111和0011111被选作是Comma信号,包含有Comma信号的K.28.1(0011111001或1100000110),K.28.5(0011111010或1100000101),K.28.7(0011111000或110000 0111)被称为Comma字符。

如果码流中出现两个或者3个交叠的Comma信号,只有第一个和第三个Comma信息会被检测出来。

比如出现两个K.28.7,码流00111110000011111000中会出现三个Comma信号:0011111,1100000和0011111,这样只有第一个和第三个Comma会被认为是合法的,这符合码流中实际上只有两个K.28.7的情况。

虽然K.28.7不容易出现错码(其他码要错两位才可能变为K.28.7),但是它的跳变密度比较低,不利于时钟数据恢复。

所以在实际应用中,一般只使用K.28.1、K.28.5作为Comma字符,而不使用K.28.7。

Comma检测就是检测串行码流中的Comma信息,然后把字节边界调整到Comma信号之前,实现字节边界的对准,为8b/10b 解码器提供正确的并行输入信号。

图ma电路检测示意图
检测机制:接收器在输入数据流中扫描搜寻特定的比特序列。

如果找到序列,解串器调整字符边界以匹配检测到的comma字符序列。

扫描是连续进行的,一旦对齐确定,所有后续的comma字符均会发现对齐已经确定。

当然,在任意的序列组合里comma字符序列必须是唯一的。

Rx(接收)对齐机制:将接收的数据对齐到合适的字边界。

可以使用不同的方法,从自动检测和对齐特殊的预留比特序列(通常也称作comma字符),到用户控制的比特调整。

ma的设计思路
Comma检测器可以被划分成三个部分:检测Comma信号的detect模块,对准字节边界的shift模块,为解码器提供时钟的clk_div模块。

此模块为同步时钟的方式。

1.detect模块:该模块主要实现对数据中的comma制符筛选,原理是将未对准的数据传至
输入寄存器。

如果没有检测到comma制符,说明数据本身就是有效的,直接进行解码;
如果有检测到comma制符,说明数据有边界,需要去边界,将数据对齐后,进行解码。

2.shift模块:该模块实际就是一个10个MUX10:1,10个选择器分别选出1位正确的数
据,用于解码。

其中MUX10:1可有10个三态门来实现。

3.clk_div模块:该模块主要提供解码时所需时钟。

外部提供250MHz时钟,将该频率二分
频后供解码使用。

其中时钟使能受到detect信号的控制,当检测到边界comma时,频率拉低,当为有效数据时提供时钟,以确保解码解析的为有效数据。

5.PRBS电路原理和实现
5.1.PRBS电路原理
PRBS是伪随机码,是一种可以预先确定又有随机统计特性的二进制码,此码包含了所有可能出现的bit组合,并且具有可以重复产生的特点。

伪随机码不同于随机码,随机码是不能被预测的,而伪随机码的组合却是可以人为设置的,根据需求的不同而设计不同的伪
随机码。

PRBS产生电路可以由不同的结构来实现,其中LFSR(Linear Feedback Shift Register线性反馈移位寄存器)结构的PRBS产生电路具有结构简单(由D触发器和异或门组成)、易于实现、速度快等优点而被广泛的采用。

由于检测的为10位随机信号,PRBS产生电路需要连续的生成并行的10位字长PRBS,确定寄存器的个数为10个,于是,在简单LFSR的基础上,通过改变LFSR的反馈逻辑,让每个寄存器下一状态输入都由其它寄存器异或后决定,而不仅仅是简单的移位,这样就使得产生的相邻两组随机数之间有着良好的随机特征,从而得到改进的LFSR。

PRBS 产生电路中,PRBS的低7位由改进的LFSR来产生,PRBS的高3位的下一状态由低7位中其中两位异或决定。

若PRBS的初态全为0,则当时钟到来时,采用异或逻辑得到的反馈值为0,寄存器经过移位后值还是为0,这样,导致了PRBS产生器生成的比特数据流一直都是0,则称此PRBS产生器被锁住。

因此,为了使PRBS产生电路在复位时能从全0的无效状态进入有效状态,在D触发器Q5表达式后面多加了一项。

电路的状态表达式如下:
图5.PRBS状态表达式示
5.2.PRBS电路实现过程
基于FPGA 的Serdes 接口电路设计Comma 和PRBS 检测电路方案密级文档编号13-9-13内部资料,请勿外传第11页,共11页PRBSEN 为使能信号,clk 为时钟信号,电路的实现过程如下:当PRBSEN=0时,电路输出全保持为0,当PRBSEN=1时,电路从全0状态开始,一个时钟周期之后Q5跳为1,电路进入有效状态,开始产生伪随机序列。

由于7位的LFSR 产生的随机序列周期为127个Tclk ,所以该电路生成周期为127个Tclk 、字长为10的PRBS 。

可以看出,该电路虽然没有产生全状态的PRBS ,但却能够连续的生成10位字长的PRBS ,并且相邻两个10位的随机数之间不存在明显的相关性,能很好的满足高速串行数据收发器中BIST 的需要。

6.说明
此版只对原理和机制做了较详细的介绍,但未对模块化进行代码设计,特此说明。

相关文档
最新文档