0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍一种OSERDES级联使用的方法

冬至配饺子 来源:Bug记录 作者:woodfan 2022-08-20 11:33 次阅读

使用ISERDES接收高速串行数据 已经讲完了ISERDES,那么这一篇继续讲解OSERDES相关内容;

OSERDES实现并串转换,只需要管发送并不需要管接收到的数据如何,所以它的操作相对于ISERDES来说简单;

本文将介绍OSERDES的IP核生成,OSERDES原语介绍,OSERDES级联使用以及ISERDES,Idelay接收串行数据的几种方法。

与上一篇文章的结构对应,这篇也将从可视化的SelectIO的设置讲起,从简单到复杂;

在IP Catalog里面找到"SelectIO",接下来跟着这般操作:

pYYBAGMAVQGAOK3JAADfvmDU8co747.png

数据总线设置

参数的意义如下:

Interface Template:接口模板,本次数据传输并不符合预设的协议,所以选择Custom

Data BUS Direction:这一次需要发送数据,选择Output

Data Rate: 数据总线是SDR还是DDR,DDR内容可以看(LVDS差分信号简单处理)2. DDR信号的处理

Serialization Factor: 串化因子,也就是IP核的输入并行数据位宽;SDR Rate:可设为2,3,4,5,6,7,8;DDR Rate:可设为4,6,8,10,14;

External Data Width: 外部输出数据的位宽,默认设1

I/O signaling:设置差分还是单端以及IO电压标准

pYYBAGMAVRWAI87-AADeOFi6pvM768.png

时钟设置

这一部分的内容可以参考使用ISERDES接收高速串行数据,内容一样;

pYYBAGMAVSiAOCipAADwJ5u9Y-0168.png

数据和延时设置

这个地方不做设置的原因是因为,我们在测试ISERDES和OSERDES,需要排除使用Idelay的影响,因此这个地方不做任何延时;

最后一键OK,OSERDES的相关IP核就生成好了。从IP核最底层的verilog文件可以看到,它的实现跟OSERDES2原语有关,从UG471我们可以知道OSERDES2的相关内容;

首先关注OSEDES2的属性内容,它的重要属性决定的因素如下:

DATA_RATE_OQ:决定OQ端口输出的数据速率,可选SDR或DDR;

DATA_RATE_TQ:决定TQ端口输出的数据速率,可选BUF, SDR或DDR;

DATA_WIDTH: 根据"DATA_RATE_OQ"确定具体数值;SDR Rate:可设为2,3,4,5,6,7,8;DDR Rate:可设为4,6,8,10,14;

SERDES_MODE:确定OSERDES是主模块还是从模块,这跟OSERDES级联使用有关,具体内容请看下面的内容;

TRISTATE_WIDTH:这跟"DATA_RATE_TQ"有关,大多情况都设为1,它的具体设置关系如下:

poYBAGMAVTuAL4vFAABql-Lig_8862.png

TRISTATE_WIDTH设置参数表 UG471 Table 3-8

poYBAGMAVU2AZRaFAACtwTKtLMo172.png

OSERDES原语图 UG471 Figure 3-14

OSERDES原语的端口定义如上图所示,其中重要的端口设置如下:

OQ:串行数据输出,直接到IOB,也就是直接连接到IOBUF,ODELAY等特殊结构

SHIFTOUT1/2:级联时使用,详见下文

CLK:高速时钟,串行数据时钟输入

CLKDIV:慢速时钟,并行数据时钟输入

D1 to D8:并行数据输入,当并行数据多于8bit不超过14bit,可以使用OSERDES级联,级联的使用方法详见下文

OCE:串行数据时钟使能信号输出

RST:高复位信号输入

SHIFTIN1/2: 级联时使用,详见下文

其他没有提到的输入信号可以设为0,输出信号可以不用连接;

CLKDIV与CLK的联系:

假设接收的串行数据时钟为256MHz,串化因子为8,则CLKDIV为32MHz;

SDR:CLKDIV = CLK/DATA_WIDTH

DDR: CLKDIV = 2 * CLK/DATA_WIDTH

注意CLK和CLKDIV不一定是相位对齐的;

OSERDES2数据时延:

虽然与ISERDES2相比,没有"Mode"属性设置,但CLK和CLKDIV不一定是相位对齐的,它的输出数据相对于输入数据也有相应的时延,具体的延时与DATA_WIDTH,DATA_RATE_OQ,DATA_RATE_TQ有关;关系如下:

poYBAGMAVWCAfNNfAADq9WscqEI679.png

OSERDES时延参数对照表 UG471 Table 3-11

以最简单的2:1 SDR串化为例:

poYBAGMAVXOAKsE8AAChP4342tQ535.png

2:1 SDR UG471 Figure 3-16

Event1时,数据从FPGA其他部分逻辑传到OSERDES2的D1-2端口

Event2时,数据在CLKDIV上升沿被OSERDES2采样

Event3时,OQ端口产生相应的输出串行数据

所以,是不是也可以推出下图Event所发生的事情呢?条件为8:1 DDR。

pYYBAGMAVYeAX5TnAAFHGB1UWXk889.png

8:1 DDR UG471 Figure 3-17

OSERDES级联使用:

当并行数据多于8bit不超过14bit时,可以采用两个OSERDES2级联的使用方法,示意图如下,

poYBAGMAVZmAbOY-AAC5LN0dlVk242.png

扩展并行输入数据位宽 UG471 Figure 3-15

上图已经示意的比较清楚,操作步骤可分为三步。

两个OSERDES2的"SERDES_MODE"设置,一个需要设为"MASTER",另一个设为"SLAVE";

将"SLAVE"的"SHIFTOUT1/2"连接至"MASTER"的"SHIFTIN1/2";

"MASTER"的D1-D8输入并行数据的低8位,"SLAVE"的D3-D8可以连接输入并行数据的高6位;

我在调试一款AD的过程中接触到了SelectIO中的相关知识,由表及里,看过一些I/OSERDES接收数据的调节方法:

首先让发送方发送特殊字符,接收方接收数据转为并行数据,调节Idelay的参数,直到出现稳定的结果(不一定是发送的特殊字符),Idelay参数记为C1;

继续调节Idelay的参数,直到结果不再稳定,Idelay参数记为C2;

Idelay参数设为(C1+C2)/2 ,此时接收的并行数据稳定为一个定值;

如果稳定的输出结果不是约定的特殊字符,调节Bitslip移动字符的边界,直至输出结果为约定的特殊字符;

利用其他的通信方式或方法,告知发送方可以正常发送数据

更有甚者直接使用ISERDES,Idelay调节CLK,

将CLK作为串行数据,使用ISERDES转为并行数据后,调节Idelay;

记录最后一次并行数据全为0的时候的Idelay参数C1;

继续调节,记录第一次并行数据全为1的时候的Idelay参数C2;

Idelay参数设为(C1+C2)/2 ,此时CLK的时钟对应数据的位置裕量充足;

仿真结果可以参看使用ISERDES接收高速串行数据

总结:

OSERDES2可以使用SelectIO IP核设置简化原语设置流程;但OSERDES2原语设置会更加精细。

OSERDES的数据时延以及级联使用方面见上面的内容。

补充了ISERDES,Idelay调节接收的串行数据的方法,详细内容以后有机会再展开。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DDR
    DDR
    +关注

    关注

    11

    文章

    712

    浏览量

    65368
  • SDR
    SDR
    +关注

    关注

    7

    文章

    233

    浏览量

    50494
  • 串行数据
    +关注

    关注

    0

    文章

    52

    浏览量

    16547
  • 数据总线
    +关注

    关注

    2

    文章

    57

    浏览量

    17576
收藏 人收藏

    评论

    相关推荐

    在DSP平台下对多路交流信号采样时采用的一种异步采样方法介绍

    本文介绍一种在DSP平台下对多路交流信号采样时采用的一种异步采样方法
    发表于 04-02 07:01

    请问怎么设计一种级联型多电平变流器?

    怎么设计一种级联型多电平变流器?级联型多电平变流器具有哪些特点?基于STS—SVM的三相级联型多电平变流器有什么技术特点?
    发表于 04-14 06:48

    介绍一种防止相位假信号的具体算法

    什么是S参数测量?S参数插补算法是什么?介绍一种防止级联的S参数出现相位假信号的具体算法
    发表于 04-30 07:00

    给大家介绍一种PCB设计复用方法

    本文介绍一种PCB设计复用方法,它是基于Mentor Graphics的印制电路板设计工具Board Station进行的。
    发表于 05-06 07:10

    给大家介绍一种软件修正方法

    本文介绍一种三轴正交型传感器正交性的软件修正方法
    发表于 05-07 06:53

    介绍一种可以高精度的测量电阻的方法

    本文介绍一种可以高精度的测量电阻的方法
    发表于 05-10 06:38

    分享一种数字秒表设计方法

    本文介绍一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法
    发表于 05-11 06:37

    介绍一种基于分级的RFID隐私保护方法

    介绍一种基于分级的RFID隐私保护方法
    发表于 05-26 06:17

    介绍一种嵌入式系统仿真方法

    /计数器等功能。本文介绍一种嵌入式系统仿真方法,通过一种特殊设计的指令集仿真器ISS将软件调试器软件Keil uVision2和硬件语言仿真器软件Modelsim连接起来,实现了软件和
    发表于 11-08 06:16

    介绍一种使用WSL来编译nodemcu固件的方法

    本文将介绍一种使用WSL来编译nodemcu固件的方法
    发表于 02-15 07:34

    一种新型的级联型多电平逆变器研究

    摘    要:本文提出一种新的级联型多电平逆变器拓扑结构,通过负载将两个电压型三相逆变器级联在一起,该逆变器能作为个三电平或四电平逆变器运行。本文对这
    发表于 03-11 12:57 4931次阅读
    <b class='flag-5'>一种</b>新型的<b class='flag-5'>级联</b>型多电平逆变器研究

    一种改进的级联型多电平变换器拓扑

    一种改进的级联型多电平变换器拓扑
    发表于 04-21 00:06 1275次阅读

    一种实用级联式多电平逆变器SVPWM方法研究

    一种实用级联式多电平逆变器SVPWM方法研究
    发表于 03-30 14:40 8次下载

    一种直流侧电容电压检测与控制方法

    针对级联多电平静止同步补偿器( STATCOM)各独立直流侧电容电压易失衡的问题,为保证STATCOM中各级联单元电容电压的稳定性,提出了一种直流侧电容电压检测与控制方法。首先,分析了
    发表于 03-15 11:41 0次下载
    <b class='flag-5'>一种</b>直流侧电容电压检测与控制<b class='flag-5'>方法</b>

    AN27A--级联二阶段设计阶数全极点带通滤波器的一种简单方法

    AN27A--级联二阶段设计阶数全极点带通滤波器的一种简单方法
    发表于 04-29 18:34 10次下载
    AN27A--<b class='flag-5'>级联</b>二阶段设计阶数全极点带通滤波器的<b class='flag-5'>一种</b>简单<b class='flag-5'>方法</b>