SERDESFPGA设计手册.docx
- 文档编号:26223413
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:22
- 大小:198.47KB
SERDESFPGA设计手册.docx
《SERDESFPGA设计手册.docx》由会员分享,可在线阅读,更多相关《SERDESFPGA设计手册.docx(22页珍藏版)》请在冰豆网上搜索。
SERDESFPGA设计手册
编号:
版本:
V0.2
页数:
共页
密级:
SERDESFPGA设计手册
更改记录
版本
拟制/更改
审核
批准
生效日期
更改内容
V0.1
兜福
创建文档
V0.2
兜福
添加补充了OSERDES部分,未完待续;
注:
作者兜福邮箱:
,多多交流,共同进步。
SERDESFPGA设计手册1
目录3
1目的6
2范围6
3术语6
4SERDES基础知识6
5SERDES应用指南6
5.1ISERDES7
5.1.1ISERDES基元7
5.1.2ISERDES基元的时钟解决方案10
5.2OSERDES11
5.2.1OSERDES组成功能模块12
5.2.2OSERDES基元13
5.2.3OSERDES基元的时钟解决方案15
6SERDES应用指南15
6.1ISERDES设计15
6.1.1单个ISERDES单元设计(SDR)15
RDES配置参数15
设计思想18
仿真结果19
数据时序20
输入数据时序20
输出数据时序21
6.1.2单个ISERDES单元设计(DDR)22
配置参数22
设计思想22
仿真结果22
6.1.3ISERDES宽度扩展22
设计实例23
仿真结果26
6.2OSERDES设计26
6.2.1单个OSERDES单元设计(SDR)26
配置参数26
设计思想28
仿真结果29
基元SDR模式时序29
6.2.2单个OSERDES单元设计(DDR)29
配置参数30
设计思想30
仿真结果30
基元SDR模式时序31
6.2.3OSERDES宽度扩展31
设计实例31
仿真结果33
1目的
为了学习xilinxserdes原语的使用,以及交流学习经验,在工程项目中方便的应用SERDES进行设计,故编写此文档。
2范围
本文档所介绍的SERDES原语内容,适用于XilinxV5系列器件。
3术语
ISERDES:
串并转换器。
OSERDES:
并串转换器。
4SERDES基础知识
待补充。
5SERDES应用指南
5.1ISERDES
5.1.1ISERDES基元
图1ISERDES基元
图2ISERDES内部组成单元结构框图
图3当使用Memory模型是ISERDES内部的连接情况
表1ISERDES端口列表
PortName
Type
Width
Description
Q1-Q6
Output
1(each)
寄存器输出
SHIFTOUT1
Output
1
进位输出,用于数据宽度的扩展。
连接到从IOB的SHIFIN1。
SHIFTOUT2
Output
1
进位输出,用于数据宽度的扩展。
连接到从IOB的SHIFIN2。
BITSLIP
Input
1
启动bitslip操作
CE1
CE2
Input
1(each)
时钟使能输入
CLK
Input
1
高速时钟输入,对串行输入数据流进行时钟控制。
CLKB
Input
1
高速时钟第二输入,对串行输入的数据流进行时钟控制。
总是连接~CLK。
CLKDIV
Input
1
时钟CLK的分频时钟,取决于解串的数据宽度。
控制着延迟单元、解串数据、Bitslip子模块和CE单元进行时钟控制。
D
Input
1
来自IOB的串行输入数据。
OCLK
Input
1
用于存储器应用的高速时钟输入,该信号只有在INTERFACE_TYPE属性配置为("MEMORY")时,才可用;配置为”NETWORKING”时,直接赋0值即可。
SHIFTIN1
Input
1
用于数据扩展的进位输入,连接到主IOB的SHIFTOUT1。
SHIFTIN2
Input
1
用于数据扩展的进位输入,连接到主IOB的SHIFTOUT2。
RST
Input
1
异步复位输入,高有效。
表2ISERDES属性列表
AtrributeName
Eescription
Value
DefaultValue
BITSLIP_ENABLE
允许用户使用或者忽略bitslip子模块。
该属性在INTERFACE_TYPE属性配置为MEMORY时必须配置为FALSE,在配置为NETWORKING时必须配置为TURE。
字符串:
TURE或FALSE
FALSE
DATA_RATE
允许将输入的数据流作为”DDR”或者”SDR”来进行处理。
字符串:
DDR或SDR
DDR
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_TYPE
选择ISERDES的使用说明
字符串:
MEMORY或NETWORKING
MEMORY
NUM_CE
定义时钟使能数
整数:
1或2
2
SERDES_MODE
当使用宽度扩展时定义SERDES是主模块,还是从模块。
字符串:
MASTER或SLAVE。
MASTER
表3推荐的数据宽度配置
5.1.2ISERDES基元的时钟解决方案
CLK和CLKDIV的相位关系,在串并转换的过程中是非常重要的。
CLK和CLKDIV的相位关系应该是理想对齐的。
FPGA中存在这样的时钟模块单元来设计满足CLK和CLKDIV的相位关系。
在networking模式下,解决时钟相位关系的唯一办法是:
?
CLKdrivenbyBUFIO,CLKDIVdrivenbyBUFR
?
CLKdrivenbyDCM,CLKDIVdrivenbytheCLKDVoutputofthesameDCM
?
CLKdrivenbyPLL,CLKDIVdrivenbyCLKOUT[0:
5]ofsamePLL
在MemoryInterface模式下,解决时钟相位关系的唯一办法是:
?
CLKdrivenbyBUFIOorBUFG
?
OCLKdrivenbyDCMandCLKDIVdrivenbyCLKDVoutputofsameDCM
?
OCLKdrivenbyPLLandCLKDIVdrivenbyCLKOUT[0:
5]ofsamePLL
图4控制CLK和CLKDIV相位对齐的时钟解决方案
//补充文档内容从以下区域进行添加
5.2OSERDES
OSERDES:
输出并串转换器逻辑资源,具有专门用来帮助实现源同步接口的待定时钟控制和逻辑资源。
每个OSERDES模块包含一个用户数据和三态控制的专用串行器。
数据和专用串行器都可以配置成SDR和DDR模式。
数据串行化可大6:
1,如果使用“OSERDES宽度扩展,则是10:
1”。
三态串行化可达4:
1。
5.2.1OSERDES组成功能模块
图OSERDES功能框图
在OSERDES并串转换过程中,并行数据串行化是从数据引入引脚的最低位到最高位的顺序进行的(即D1输入引脚上的数据传输到OQ引脚的首位)。
OSERDES使用CLK和CLKDIV两个时钟进行数据速率转换。
CLK是高速串行时钟;CLKDIV是分频并行时钟。
假定CLK和CLKDIV相位对齐,表**所示为各种模式下CLK与CLKDIV之间的关系。
表**并串转换器的clk/clkdiv关系
SDR模式下的输入数据宽度输出
DDR模式下的输入数据宽度输出
CLK
CLKDIV
2
4
2X
X
3
6
3X
X
4
8
4X
X
5
10
5X
X
6
—
6X
X
7
—
7X
X
8
—
8X
X
OSERDES延迟
Oserdes模块的输入到输出延迟取决于DATA_RATE和DATA_WIDTH属性。
延迟的定义是,并行数据样本输入OSERDES所需的慢时钟(CLKDIV)周期数,后加OSERDES在并行数据采样之后将第一个串行数据送入OQ输出所需的快时钟(CLK)周期数。
表××概述了各种OSERDES延迟值。
5.2.2OSERDES基元
图oserdes基元
端口名称
类型
宽度
描述
OQ
输出output
1
数据通路输出,并转串后的串行输出。
SHIFTOUT1
输出
1
数据宽度扩展的进位输出,连接到主OSERDES的SHIFTIN1。
SHIFTOUT2
输出
1
数据宽度扩展的进位输出,连接到主OSERDES的SHIFTIN2。
TQ
输出
1
三态控制输出
CLK
输入
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
输入
1
三态控制通路时钟使能,高有效。
5.2.3OSERDES基元的时钟解决方案
6SERDES应用指南
6.1ISERDES设计
6.1.1单个ISERDES单元设计(SDR)
6.1.1.1ISERDES配置参数
Iserdes仿真设计的练习中将iserdes的参数配置为图XX中的参数,具体参数释义如表XX所示。
图XX
表XX
参数
值
意义
BITSLIP_ENABLE
TRUE
Bitslip控制器的使能。
如果INTERFACE_TYPE配置为memory,则必须配置为FALSE;如果INTERFACE_TYPE配置为networking,则必须配置为TURE。
在本次设计里将接口类型配置为了networking类型。
DATA_RATE
SDR
指定将输入的数据作为”SDR”或是”DDR”处理。
SDR---单倍数据数据;
DDR---双倍数据速率;
本设计中设置为单倍数据速率,即SDR。
INTERFACE_TYPE
NETWORKING
使用的数据传输模型。
可选配置为:
"MEMORY"---需要用到OCLK;"NETWORKING"---不需要用到OCLK;
本设计中配置为NETWORKING。
IOBDELAY
NONE
待补充
IOBDELAY_TYPE
DEFAULT
待补充
IODELAY_VALUE
0
待补充
NUM_CE
1
定义设计中使用的时钟使能的个数。
具体参考ISERDES结构中的时钟模块的时钟使能CE1和CE2设计。
本设计配置为”1”,使用一个时钟使能。
SERDES_MODE
MASTER
设置当前SERDES的身份,主或从。
可选配置:
”MASTER”or”SLAVE”.
本设计中配置为MASTER,即没有进行级联设计。
参数
值
意义
BITSLIP_ENABLE
TRUE
Bitslip控制器的使能。
如果INTERFACE_TYPE配置为memory,则必须配置为FALSE;如果INTERFACE_TYPE配置为networking,则必须配置为TURE。
在本次设计里将接口类型配置为了networking类型。
DATA_RATE
SDR
指定将输入的数据作为”SDR”或是”DDR”处理。
SDR---单倍数据数据;
DDR---双倍数据速率;
本设计中设置为单倍数据速率,即SDR。
INTERFACE_TYPE
NETWORKING
使用的数据传输模型。
可选配置为:
"MEMORY"---需要用到OCLK;"NETWORKING"---不需要用到OCLK;
本设计中配置为NETWORKING。
IOBDELAY
NONE
待补充
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所示。
图仿真全图
图测试激励起点
图测试激励结束
表ISERDES延迟
6.1.1.4ISERDES数据时序
6.1.1.4.1ISERDES输入数据时序
图ISERDES数据输入时序图
6.1.1.4.2ISERDES输出数据时序
图ISERDES数据输出时序图
对于ISERDES来说,输入到输出存在一定延迟,这个延迟取决于DATA_RATE,DATA_WIDTH,SERDES_MODE属性。
所谓延迟具体是指快时钟(CLK)采集数据位样本之后,该数据位出现在Q输出上所需的慢时钟(CLKDIV)周期数。
表ISERDES延迟值
Date_Rate
SERDES_MODE
存储器模式的延迟
网络模式的延迟
SDR
1个CLKDIV周期
2个CLKDIV周期
DDR
1个CLKDIV周期
2个CLKDIV周期
6.1.2单个ISERDES单元设计(DDR)
6.1.2.1ISERDES配置参数
6.1.2.2设计思想
6.1.2.3仿真结果
6.1.3ISERDES宽度扩展
构建大于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.2OSERDES设计
6.2.1单个OSERDES单元设计(SDR)
6.2.1.1OSERDES配置参数
Oserdes仿真设计的练习中将oserdes的参数配置为图XX中的参数,具体参数释义如表XX所示。
图**OSERDES参数配置
表××
OSERDES属性
概述
值
默认值
DATA_RATE_OQ
定义数据(OQ)是在相对于CLK的每个时钟边沿还是时钟的上升沿变化。
字符串SDR(单倍数据速率)或者DDR(双倍数据速率)
DDR
DATA_RATE_TQ
定义三态(TQ)是相对于时钟的每个时钟边沿还是时钟的上升沿变化,或者是缓冲期设置。
字符串SDR、DDR或者BUF。
DDR
DATA_WIDTH
定义并串数据转换器的宽度。
此值还取决于DATA_RATE_OQ的值。
整数:
2、4、6、7、8或者10。
如果DATA_RATE_OQ==DDR,则此值限制为4、6、8或10。
如果DATA_RATE_OQ==SDR,则此值限制为2、3、4、5、6、7、8。
当DATA_WIDTH设置值大于6时,必须将一对OSERDES配置成主从配置。
4
SERDES_MODE
当使用宽度扩展时,定义OSERDES模块是主模块还是从模块。
字符串:
MASTER或SLAVE。
MASTER
TRISTATE
定义三态转换器的宽度。
整数:
1或4。
如果DATA_RATE_TQ==DDR,则此值限制为4。
如果DATA_RATE_TQ==SDR或BUF,则此值限制为1。
4
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上。
图××OSERDES配置为SDR仿真结果
6.2.1.4OSERDES基元SDR模式时序
6.2.2单个OSERDES单元设计(DDR)
6.2.2.1OSERDES配置参数
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,关于延迟的其他情况的描述参考表××中所述。
图×× OSERDES基元DDR模式仿真
注意,于SDR模式不同,在DDR模式时,当OSERDES基元的复位失效后,必须至少延迟一个clkdiv时钟周期后,再给出第一个有效的并行数据,这样第一个并行数据才能被正确采样。
另外,DDR模式下6:
1并串转换的延迟为1个clkdiv+3个clk。
从仿真图中可以看出,在clkdiv正确采样第一个有效并行数据后的,第三个clk上升沿,并串转后的第一个串行数据出现在OQ上。
6.2.2.4OSERDES基元SDR模式时序
6.2.3OSERDES宽度扩展
6.2.3.1设计实例
本设计通过配置OSERDES实现为SDR,8:
1并串转换器件具体设计如下图××。
.
图OSERDES扩展Master
图OSERDES扩展Slave
6.2.3.2仿真结果
图××OSERDES基元位宽扩展仿真结果
由上仿真图可知,位宽扩展为8:
1的并串转换器的延迟为1个clkdiv+6个clk,即clkdiv采集到第一个有效并行数据后的第6个clk的上升沿,并串转换后的串行数据出现在OQ上。
另外,上述仿真中的SHIFTOUT1和SHIFTOUT2为啥存在不定态。
?
?
?
遗留问题:
如果需要将OSERDES并串转换后的串行数据在重新拼接起来,该如何实现?
?
?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SERDESFPGA 设计 手册