SERDES FPGA设计手册要点 - 图文

更新时间:2024-06-18 04:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编 号:

版 本:V0.2 页 数:共 页 密 级:

SERDES FPGA设计手册

更改记录

版本 V0.1 V0.2 拟制/更改 兜福 兜福 审核 批准 生效日期 2013.7.19 2013.9.11 更改内容 创建文档 添加补充了OSERDES部分,未完待续; 注:作者兜福邮箱:zouxingyu705@sina.com,多多交流,共同进步。

目录

SERDES FPGA设计手册 .................................................................................... 1

目录................................................................................................................ 2 1 2 3

目的.................................................................................................... 5 范围.................................................................................................... 5 术语.................................................................................................... 5

4 SERDES基础知识 .......................................................................................... 5 5 SERDES应用指南 .......................................................................................... 5

5.1

ISERDES ........................................................................................... 5 5.1.1 ISERDES基元 ........................................................................... 5 5.1.2 ISERDES基元的时钟解决方案 ............................................... 9 5.2

OSERDES ........................................................................................ 10 5.2.1 OSERDES组成功能模块 ........................................................ 10 5.2.2 OSERDES基元 ........................................................................ 12 5.2.3 OSERDES基元的时钟解决方案 ............................................ 13

6 SERDES应用指南 ........................................................................................ 14

6.1

ISERDES设计 ................................................................................ 14 6.1.1 单个ISERDES单元设计(SDR) .............................................. 14

6.1.1.1ISERDES配置参数 ......................................................... 14 6.1.1.2设计思想.......................................................................... 17 6.1.1.3仿真结果.......................................................................... 17 6.1.1.4ISERDES数据时序 ......................................................... 18

6.1.1.4.1ISERDES输入数据时序 ...................................... 18 6.1.1.4.1ISERDES输出数据时序 ...................................... 19

6.1.2 单个ISERDES单元设计(DDR) ............................................. 20

6.1.2.1ISERDES配置参数 ......................................................... 20 6.1.2.2设计思想.......................................................................... 20 6.1.2.3仿真结果.......................................................................... 20 6.1.3 ISERDES宽度扩展 ................................................................. 20

6.1.3.1设计实例.......................................................................... 21 6.1.3.2仿真结果.......................................................................... 24

6.2

OSERDES设计 ............................................................................... 24 6.2.1 单个OSERDES单元设计(SDR) ............................................ 24

6.2.1.1OSERDES配置参数 ........................................................ 24 6.2.1.2设计思想.......................................................................... 26 6.2.1.3仿真结果.......................................................................... 27 6.2.1.1OSERDES基元SDR模式时序 ...................................... 27 6.2.2 单个OSERDES单元设计(DDR) ............................................ 27

6.2.2.1OSERDES配置参数 ........................................................ 28 6.2.2.2设计思想.......................................................................... 28 6.2.2.3仿真结果.......................................................................... 28 6.2.2.1OSERDES基元SDR模式时序 ...................................... 29 6.2.3 OSERDES宽度扩展 ................................................................ 29

6.2.3.1设计实例.......................................................................... 29 6.2.3.1仿真结果.......................................................................... 31

1 目的

为了学习xilinx serdes原语的使用,以及交流学习经验,在工程项目中方便的应用SERDES进行设计,故编写此文档。

2 范围

本文档所介绍的SERDES原语内容,适用于Xilinx V5系列器件。

3 术语

ISERDES:串并转换器。 OSERDES:并串转换器。

4 SERDES基础知识

待补充。

5 SERDES应用指南

5.1 ISERDES

5.1.1 ISERDES基元

图 1 ISERDES基元

图 2 ISERDES内部组成单元结构框图

图 3 当使用Memory模型是ISERDES内部的连接情况

表 1 ISERDES端口列表

Port Name Q1-Q6 SHIFTOUT1 Type Output Output Width 1(each) 1 Description 寄存器输出 进位输出,用于数据宽度的扩展。连接到从IOB的SHIFIN1。 SHIFTOUT2 Output 1 进位输出,用于数据宽度的扩展。连接到从IOB的SHIFIN2。 BITSLIP CE1 CE2 CLK Input Input 1 1(each) 启动bitslip操作 时钟使能输入 Input 1 高速时钟输入,对串行输入数据流进行时钟控制。 CLKB Input 1 高速时钟第二输入,对串行输入的数据流进行时钟控制。总是连接~CLK。 CLKDIV Input 1 时钟CLK的分频时钟,取决于解串的数据宽度。 控制着延迟单元、解串数据、Bitslip子模块和CE单元进行时钟控制。 D OCLK Input Input 1 1 来自IOB的串行输入数据。 用于存储器应用的高速时钟输入,该信号只有在INTERFACE_TYPE属性配置为(\时,才可用;配置为”NETWORKING”时,直接赋0值即可。 SHIFTIN1 Input 1 用于数据扩展的进位输入,连接到主IOB的SHIFTOUT1。 SHIFTIN2 Input 1 用于数据扩展的进位输入,连接到主IOB的SHIFTOUT2。 RST

Input 1 异步复位输入,高有效。

表 2 ISERDES属性列表

Atrribute Name BITSLIP_ENABLE Eescription 允许用户使用或者忽略Value 字符串:TUREDefault Value FALSE bitslip子模块。该属性在或FALSE INTERFACE_TYPE属性配置为MEMORY时必须配置为FALSE,在配置为NETWORKING时必须配置为TURE。 DATA_RATE 允许将输入的数据流作为”DDR”或者”SDR”来进行处理。 字符串:DDR或DDR SDR DATA_WIDTH 定义串并转换的宽度,合法的值取决于DATA_RATE的配置(SDR或者DDR)。 如果 DATA_RATE = DDR,则此值限制为 4、6、8 或 10。如果DATA_RATE = SDR,则此值限制为 2、3、4、5、6、7 或 8。 4 INTERFACE_TYP选择ISERDES的使用说字符串:E 明 MEMORY或NETWORKING NUM_CE SERDES_MODE 定义时钟使能数 当使用宽度扩展时定义SERDES是主模块,还是从模块。

MEMORY 整数:1或2 字符串:MASTER或SLAVE。 2 MASTER

表 3 推荐的数据宽度配置

5.1.2 ISERDES基元的时钟解决方案

CLK和CLKDIV的相位关系,在串并转换的过程中是非常重要的。CLK和CLKDIV的相位关系应该是理想对齐的。FPGA中存在这样的时钟模块单元来设计满足CLK和CLKDIV的相位关系。

在networking模式下,解决时钟相位关系的唯一办法是: ? CLK driven by BUFIO, CLKDIV driven by BUFR

? CLK driven by DCM, CLKDIV driven by the CLKDV output of the same DCM

? CLK driven by PLL, CLKDIV driven by CLKOUT[0:5] of same PLL

在Memory Interface模式下,解决时钟相位关系的唯一办法是: ? CLK driven by BUFIO or BUFG

? OCLK driven by DCM and CLKDIV driven by CLKDV output of same DCM ? OCLK driven by PLL and CLKDIV driven by CLKOUT[0:5] of same PLL

图 4 控制CLK和CLKDIV相位对齐的时钟解决方案

//补充文档内容从以下区域进行添加

5.2 OSERDES

OSERDES:输出并串转换器逻辑资源,具有专门用来帮助实现源同步接口的待定时钟控制和逻辑资源。每个OSERDES模块包含一个用户数据和三态控制的专用串行器。数据和专用串行器都可以配置成SDR和DDR模式。数据串行化可大6:1,如果使用“OSERDES宽度扩展,则是10:1”。三态串行化可达4:1。

5.2.1 OSERDES组成功能模块

图 OSERDES功能框图

在OSERDES并串转换过程中,并行数据串行化是从数据引入引脚的最低位

到最高位的顺序进行的(即D1输入引脚上的数据传输到OQ引脚的首位)。

OSERDES使用CLK和CLKDIV两个时钟进行数据速率转换。CLK是高速

串行时钟;CLKDIV是分频并行时钟。假定CLK和CLKDIV相位对齐,表**所示为各种模式下CLK与CLKDIV之间的关系。

表** 并串转换器的clk/clkdiv关系

SDR模式下的输入数据宽度输出 2 3 4

DDR模式下的输入数据宽度输出 4 6 8 CLK 2X 3X 4X CLKDIV X X X

5 6 7 8

OSERDES延迟

10 — — — 5X 6X 7X 8X X X X X Oserdes模块的输入到输出延迟取决于DATA_RATE和DATA_WIDTH属性。

延迟的定义是,并行数据样本输入OSERDES所需的慢时钟(CLKDIV)周期数,后加OSERDES在并行数据采样之后将第一个串行数据送入OQ输出所需的快时钟(CLK)周期数。表××概述了各种OSERDES延迟值。

5.2.2 OSERDES基元

图 oserdes基元

端口名称 OQ 类型 输出output 宽度 1 描述 数据通路输出,并转串后的串行输出。 SHIFTOUT1 输出 1 数据宽度扩展的进位输出,连接到主OSERDES的SHIFTIN1。 SHIFTOUT2 输出 1 数据宽度扩展的进位输出,连接到主OSERDES的SHIFTIN2。 TQ CLK 输出 输入 1 1 三态控制输出 高速时钟输入,驱动并串转换器的串行侧。 CLKDIV 输入 1 分频时钟输入。对延迟单元,解串数据,Bitslip自模块和CE单元进行时钟控制。为CLK端口所连接时钟的分频版本,分频大小根据数据转换宽度而定。CLKDIV驱动驱动并

串转换器的并行侧。 D1-D6 输入 1/port 并行数据输入。D1将最先出现在串行输出口OQ上。所有并行数据全通过D1-D6进入OSERDES模块。 OCE 输入 1 输出数据时钟使能,高有效。 该信号可以作为输入OSERDES基元内的并行数据的同步有效标志,并可以同时输出到接收转换后的串行数据的一方,作为一个有效数据的起始位置的判断标志。 REV 输入 1 反转SR引脚。OSERDES模块中没有此端口。 SHIFTIN1 输入 1 数据宽度扩展的进位输入,连接到从OSERDES的SHIFTOUT1。 SHIFTIN2 输入 1 数据宽度扩展的进位输入,连接到从OSERDES的SHIFTOUT2。 SR 输入 1 设置/复位。在OSERDES模块中,此引脚只作为异步复位。 T1-T4 输入 1/port 并行三态输入。所有并行三态信号,都通过端口T1到T4进入OSERDES模块。此端口连接到FPGA内部资源,可以配置成一位或者四位。 TCE

5.2.3 OSERDES基元的时钟解决方案

输入 1 三态控制通路时钟使能,高有效。

6 SERDES应用指南

6.1 ISERDES设计

6.1.1 单个ISERDES单元设计(SDR) 6.1.1.1 ISERDES配置参数

Iserdes仿真设计的练习中将iserdes的参数配置为图XX中的参数,具体参数释义如表XX所示。

图 XX 表 XX 参数 BITSLIP_ENABLE 值 TRUE 意义 Bitslip控制器的使能。 如果INTERFACE_TYPE配置为

memory,则必须配置为FALSE;如果INTERFACE_TYPE配置为networking,则必须配置为TURE。在本次设计里将接口类型配置为了networking类型。 指定将输入的数据作为”SDR”或是”DDR”处理。 DATA_RATE SDR SDR --- 单倍数据数据; DDR --- 双倍数据速率; 本设计中设置为单倍数据速率,即SDR。 使用的数据传输模型。 可选配置为: \--- 需要用INTERFACE_TYPE NETWORKING 到OCLK; \--- 不需要用到OCLK; 本设计中配置为NETWORKING。 IOBDELAY IOBDELAY_TYPE IODELAY_VALUE NONE DEFAULT 0 待补充 待补充 待补充 定义设计中使用的时钟使能的个数。具体参考NUM_CE 1 ISERDES结构中的时钟模块的时钟使能CE1和CE2设计。

本设计配置为”1”,使用一个时钟使能。 设置当前SERDES的身份,主或从。 可选配置:”MASTER” SERDES_MODE MASTER or ”SLAVE”. 本设计中配置为MASTER,即没有进行级联设计。 参数 值 意义 Bitslip控制器的使能。 如果INTERFACE_TYPE配置为memory,则必须配置为FALSE;如果INTERFACE_TYPEBITSLIP_ENABLE TRUE 配置为networking,则必须配置为TURE。在本次设计里将接口类型配置为了networking类型。 指定将输入的数据作为”SDR”或是”DDR”处理。 DATA_RATE SDR SDR --- 单倍数据数据; DDR --- 双倍数据速率; 本设计中设置为单倍数据速率,即SDR。 使用的数据传输模型。 可选配置为: INTERFACE_TYPE NETWORKING \--- 需要用到OCLK; \--- 不

需要用到OCLK; 本设计中配置为NETWORKING。 IOBDELAY

6.1.1.2 设计思想

设计中将外部输入的复位信号进行异步复位,同步释放处理。外部的串行数据直接进入ISERDES,SERDES输出的并行数据进行拼接成6位的数据总线,再输出。

6.1.1.3 仿真结果

创建test_betch平台,生成激励。仿真结果如图XX和图XX。从图上分析可知,产生的激励序列011111_101101_101010_110100_010111_10000_000000…。

其中,clk为快时钟,控制输入的串行数据;clkdiv通常是clk的一个分频版本,取决于所实现的解串的宽度(即,如果是1:6解串器,则clkdiv是clk的6分频);D为输入的串行数据;ce为D的同步有效标志(使能)。注意,该设计中配置为SDR,networking模式,则ISERDES的延迟为两个clkdiv的时钟,这里所讲的延迟是指快时钟(clk)采集数据为样本之后,该数据位出现在Q输出上所需的慢时钟(clkdiv)的周期数。另,串行输出的第一位出现在并行输出的最高位上。其他配置情况下的ISERDES延迟信息如表XX所示。

NONE 待补充

图 仿真全图

图 测试激励起点

图 测试激励结束

表 ISERDES延迟

6.1.1.4 ISERDES数据时序

6.1.1.4.1 ISERDES输入数据时序

图 ISERDES数据输入时序图

6.1.1.4.1 ISERDES输出数据时序

图 ISERDES数据输出时序图

对于ISERDES来说,输入到输出存在一定延迟,这个延迟取决于DATA_RATE,DATA_WIDTH,SERDES_MODE属性。所谓延迟具体是指快时钟(CLK)采集数据位样本之后,该数据位出现在Q输出上所需的慢时钟(CLKDIV)周期数。

表 ISERDES延迟值

Date_Rate

SERDES_MODE

存储器模式的延迟 SDR DDR

6.1.2 单个ISERDES单元设计(DDR) 6.1.2.1 ISERDES配置参数

1个CLKDIV周期 1个CLKDIV周期 网络模式的延迟 2个CLKDIV周期 2个CLKDIV周期 6.1.2.2 设计思想

6.1.2.3 仿真结果

6.1.3 ISERDES宽度扩展

构建大于1:6的串并转换器需要两个ISERDES模块。每个I/O模块中有一主一从两个ISERDES模块。通过将主ISERDES的SHIFOUT端口连接到从ISERDES的SHIFTIN端口,可以将串并转换器最大扩展到1:10(DDR)和1:8(SDR)。如下图所示为使用主从ISERDES模块的1:10DDR串并转换器的框图。端口Q3-Q6用于从ISERDES上的并行接口的后四位。如果是1:8的SDR串并转化器,则从单元用的是Q3和Q4两位端口。

图 ISERDES宽度扩展

6.1.3.1 设计实例

本设计为SDR,1:8串并转换器,模式为Network模式。具体设计如下图123。.

图 Master单元设计

图 Slave单元设计

图 扩展后的拼接输出

6.1.3.2 仿真结果

首先图中的复位信号依然做了异步复位,同步释放处理。

图 全局

虚线光标处为串行数据开始输入,在此之后的慢时钟clkdiv的第二个上升沿,开始输出并行数据(8bits)。

图 数据输入到输出局部

6.2 OSERDES设计

6.2.1 单个OSERDES单元设计(SDR) 6.2.1.1 OSERDES配置参数

Oserdes仿真设计的练习中将oserdes的参数配置为图XX中的参数,具体参数释义如表XX所示。

图** OSERDES参数配置

表××

OSERDES属性 概述 值 默认值 DATA_RATE_OQ 定义数据(OQ)是字符串SDR(单倍数据速率)DDR 在相对于CLK的或者DDR(双倍数据速率) 每个时钟边沿还是时钟的上升沿变化。 DATA_RATE_TQ 定义三态(TQ)是字符串SDR、DDR或者DDR 相对于时钟的每BUF。 个时钟边沿还是时钟的上升沿变化,或者是缓冲期

设置。 DATA_WIDTH 定义并串数据转整数:2、4、6、7、8或者4 换器的宽度。此值10还取决。如果于DATA_RATE_OQ==DDR,DATA_RATE_OQ则此值限制为4、6、8或10。 的值。 如果DATA_RATE_OQ==SDR,则此值限制为2、3、4、5、6、7、8。 当DATA_WIDTH设置值大于6时,必须将一对OSERDES配置成主从配置。 SERDES_MODE 当使用宽度扩展字符串:MASTER或MASTER 时,定义SLAVE。 OSERDES模块是主模块还是从模块。 TRISTATE 定义三态转换器整数:1或4。如果4 的宽度。 DATA_RATE_TQ==DDR,则此值限制为4。如果DATA_RATE_TQ==SDR或BUF,则此值限制为1。

6.2.1.2 设计思想

设计中将外部输入的复位信号进行异步复位,同步释放处理。OSERDES基元外部的并行数据直接进入OSERDES。将OSERDES属性配置为SDR,

DATA_WITH==6,即6:1并串转换器件。OSERDES的串行数据直接作为模块数据。

6.2.1.3 仿真结果

创建test_betch平台,生成激励。仿真结果如图XX和图XX。从图上分析可知,有CLKDIV驱动产生一组并行测试数据,16进制表示依次为15、12、7、1e、1a,共5个。

其中,clk为快时钟,驱动并串转换器串行侧;clkdiv通常是clk的一个分频版本,取决于所实现的解串的宽度(即,如果是6:1并串转换,则clkdiv是clk的6分频);OSERDES基元外的并行数据通过d1、d2、d3、d4、d5、d6输入到OSERDES内部,其中d1将最先出现在OQ上,也即如果将并行数据的最低位赋值给d1,其他依次,那么可以看成OSERDES是从并行数据的低位开始并串转换的;oce为输出数据有效时钟使能。注意,该设计中配置为SDR(OSERDES默认为DDR),则OSERDES的并串转换输出延迟为clkdiv采集到有效并行数据之后的5个clk周期(即之后的第五个clk上升沿驱动出第一位有效串行数据)有效串行数据出现在OQ上。

15 12 7 1e 1a

图 ××OSERDES配置为SDR仿真结果

6.2.1.1 OSERDES基元SDR模式时序

6.2.2 单个OSERDES单元设计(DDR) 1e

6.2.2.1 OSERDES配置参数

6.2.2.2 设计思想

设计中将外部输入的复位信号进行异步复位,同步释放处理。OSERDES基元外部的并行数据直接进入OSERDES。将OSERDES属性配置为DDR,DATA_WITH==6,即6:1并串转换器件。OSERDES的串行数据直接作为模块数据。

6.2.2.3 仿真结果

创建test_betch平台,生成激励。仿真结果如图XX和图XX。从图上分析可知,有CLKDIV驱动产生一组并行测试数据,16进制表示依次为15、12、7、1e、1a,共5个。

其中,clk为快时钟,驱动并串转换器串行侧;clkdiv通常是clk的一个分频版本,取决于所实现的解串的宽度(即,如果是6:1并串转换,在配置为SDR模式时,clkdiv是clk的6分频;在配置为DDR模式时,clkdiv是clk的3分频);OSERDES基元外的并行数据通过d1、d2、d3、d4、d5、d6输入到OSERDES内部,其中d1将最先出现在OQ上,也即如果将并行数据的最低位赋值给d1,其他依次,那么可以看成OSERDES是从并行数据的低位开始并串转换的;oce为输出数据有效时钟使能。注意,该设计中配置为DDR(OSERDES默认为DDR),则OSERDES的并串转换输出延迟为clkdiv采集到有效并行数据之后的5个clk周期(即之后的第五个clk上升沿驱动出第一位有效串行数据)有效串行数据出现在OQ上。补充说明,刚刚提到的并串转换延迟,对6:1并串转换,DDR模式的情况下,从给出第一个有效并行数据,到该并行数据转为串行数据后的第一位有效串行数据出现在OQ上的延迟为1个clkdiv+3个clk,关于延迟的其他情况的描述参考表××中所述。

DDR模式下,在复位失效后,至少延迟一

个clkdiv之后再给出有效的并行数据

15 12 7

1e 1a

图×× OSERDES基元DDR模式仿真

注意,于SDR模式不同,在DDR模式时,当OSERDES基元的复位失效后,必须至少延迟一个clkdiv时钟周期后,再给出第一个有效的并行数据,这样第一个并行数据才能被正确采样。

另外,DDR模式下6:1并串转换的延迟为1个clkdiv+3个clk。从仿真图中可以看出,在clkdiv正确采样第一个有效并行数据后的,第三个clk上升沿,并串转后的第一个串行数据出现在OQ上。

6.2.2.1 OSERDES基元SDR模式时序

6.2.3 OSERDES宽度扩展 6.2.3.1 设计实例

本设计通过配置OSERDES实现为SDR,8:1并串转换器件具体设计如下图××。.

图 OSERDES扩展Master

图 OSERDES扩展Slave

6.2.3.1 仿真结果

52 127 117

图 ××OSERDES基元位宽扩展仿真结果

由上仿真图可知,位宽扩展为8:1的并串转换器的延迟为1个clkdiv+6个clk,即clkdiv采集到第一个有效并行数据后的第6个clk的上升沿,并串转换后

的串行数据出现在OQ上。

另外,上述仿真中的SHIFTOUT1和SHIFTOUT2为啥存在不定态。??? 遗留问题:如果需要将OSERDES并串转换后的串行数据在重新拼接起来,该如何实现???

本文来源:https://www.bwwdw.com/article/agn3.html

Top