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

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

3天内不再提示

SERDES的工作原理及实现细节

倩倩 来源:CSDN 作者:CSDN 2022-09-05 14:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

高速串行通信经常需要用到 XILINX FPGA 内部专用的 SERDESE 模块来实现串并转换。LVDS 配合 SERDESE可以充分发挥 FPGA 的高速接口优势。SERDESE 分输入和输出,输入采用 ISERDESE, 输出采用 OSERDESE,OSERDESE 的使用要比 ISERDESE 简单。

本文涉及到一些重要原语概念,包括 idelay 延迟原语,IDELAYCTRL原语, ISERDESE 、OSERDESE。其中很关键一点时使用 idelay 延迟模块以及 ISERDESE 原语中 BITSLIP 功能,实现比特流的时钟对齐,以及数据流的位流顺序对齐。XILINX FPGA 高速通信中经常会用到 idelay模块对信号比特流做细微的时序调整。

参考文档包括:官方手册ug471,xapp585,第三方米联客教程。

1、IDELAYCTRL模块

30a7c0c8-2cd8-11ed-ba43-dac502259ad0.png

2、IDELAY模块

30d3a026-2cd8-11ed-ba43-dac502259ad0.png

3、IDELAY模块工作时序

30fb49b4-2cd8-11ed-ba43-dac502259ad0.png

3113a144-2cd8-11ed-ba43-dac502259ad0.png

4、OSERDES模块

3132c92a-2cd8-11ed-ba43-dac502259ad0.png

OSERDES模块数据传输方式支持SDR,DDR两种,数据位宽支持级联以扩展到14比特。

3152b8e8-2cd8-11ed-ba43-dac502259ad0.png

317156c2-2cd8-11ed-ba43-dac502259ad0.png

由上图可知,OSERDES串行输出的数据流与原始并行数据比较,大小端是相反的。

5、ISERDES模块

ISERDESE2 在 SDR 模式下数据转换的位宽可以为 2、 3、 4、 5、 6、 7、 8bit,在 DDR 模式时,数据转换位宽为 4、 6、 8bit, 2 个 ISERDESE2 级联使用, DDR 模式可以支持 10、 14bit。如下图所示通过 2 个 ISERDESE2 级联输出14bit 位宽数据接口。

31993e3a-2cd8-11ed-ba43-dac502259ad0.png

6、Bitslip数据对齐功能

31bb8d00-2cd8-11ed-ba43-dac502259ad0.png

31de5010-2cd8-11ed-ba43-dac502259ad0.png

7、Serdes时钟源设计要求

3200fe4e-2cd8-11ed-ba43-dac502259ad0.png

二、源码解析

1、SDR ISERDESE 时钟恢复

ISERDESE 的作用是和 OSERDESE 相反的过程,但是比 OSERDESE 稍微复杂一些。ISERDESE 代码需要实现自动找到最佳的数据采样点, 自动完成数据对其,其中的加入了 IDELAY 和 BITSLIP 功能的使用,以及一些状态机代码。笔者下面根据 XAPP585 中给出的 demo 源码分析。

1.1使用IDELAY之前,需配置IDELAYCTRL。

322af5f0-2cd8-11ed-ba43-dac502259ad0.png

1.2 计算比特流最大速率参数

官方源码仿真使用的并行时钟为80M,SDR模块采用1_to_7串并转换,则Serdes工作速率为560Mbps,由此可以得到Idelay调节Tap最大的步数。

3247f092-2cd8-11ed-ba43-dac502259ad0.png

设置 bit_rate_value=0560,那么代表了 serdes 的速率是 560Mbps,根据下面代码得出 bt_val=5’h17(bt_val=5’d23)。由上文可知, idelay 的参考时钟是 200MHZ, 那么每个延迟节拍是 78ps,则23*78ps= 1,794 ps = 557 Mb/s.最接近 560Mbps。

1.3 如何实现时钟恢复时,差分时钟信号正负相位对齐

查看源码可知,SERDES工作速率为560Mbps参数,就可以选出 bit_rate_value 为 0557, 所以 bt_val 为 17h。先取出 bt_val 的中间值,即17h 的中间值是 0Bh。把差分时钟n 的延迟时间设定为0Bh,把差分时钟p的初始延迟设定为17h,然后保持差分时钟n 的延迟时间不变,每次调节1个Tape,用于差分时钟p和差分时钟n的反向 进行相位对比,直到二者相位差为零。这个细节就是实现差分时钟信号对齐的核心,看代码时很容易忽略。我在第一遍时就犯了这个错误,导致始终不明白所以然。

32795d6c-2cd8-11ed-ba43-dac502259ad0.png

32a97664-2cd8-11ed-ba43-dac502259ad0.png

1.4 Bitslip进行比特流位顺序调节

32c69870-2cd8-11ed-ba43-dac502259ad0.png

这段代码不复杂,Bitslip的调节原理见上文,也容易理解。

1.5 差分时钟正负信号时序补偿

32e55aee-2cd8-11ed-ba43-dac502259ad0.png

需要把上述代码段看明白就知道补偿原理了。

通过控制每次减 1 个 tap,减少 idelay 延迟,并且通过 ISERDESE 检测时钟的跳变。当第一次跳变发生的时候,代表检测到了时钟的跳变沿,假设这个时候 bt_val=05h,05h<0Bh 所以计算出时钟的 0BH+05H =10H。

如果恢复出的时钟信号不是目标Pattern值 1100001 或者 1100011,就需要用到 Bslip 调整,每次设置 Bslip 调整一次。

330cc2a0-2cd8-11ed-ba43-dac502259ad0.png

仿真结果如上图的箭头所示,接收的 clk_data 是 7bit 时钟数据,通过调整 c_delay_in 值调整 idelay每次减 1 个 tap,直到 clk_data 发生改变,可以看到这个值是 0b 整好是和中间值相等。这个时候状态机 state2 也会进入状态 1,这个时候计算出 c_delay_in_target=0,这个就是我们需要延迟的时间,可以看到需要延迟的时间为 0,这种情况非常理想,如果实际程序跑起来一般不会是 0,之后进入状态 2。在状态 2 中继续调整 c_delay_in 直到和 c_delay_in_target 相等,如下图,可以看到 clk_data=1100001b 是占比3:4 的时钟就恢复出来了。

总结:

本篇文档通过学习米联客的教程,并结合UG471的学习,XAPP585的源码学习,来不断加深SERDES的工作原理及实现细节,并记录一下自己学习过程,仿真有助于理解源码。

审核编辑 :李倩

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

    关注

    11

    文章

    764

    浏览量

    69682
  • 源码
    +关注

    关注

    8

    文章

    689

    浏览量

    31562
  • SerDes
    +关注

    关注

    8

    文章

    239

    浏览量

    37045

原文标题:XAPP585 - Serdes 1_to_7_sdr 解读

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ADI解读SerDes调试的核心原理

    SerDes技术以低引脚数实现千兆比特速率级的数据传输,彻底改变了高速数据传输方式,已成为现代通信的支柱技术。GMSL是ADI公司的SerDes实现方案,用于传输视频、控制和数据信号。
    的头像 发表于 05-25 11:23 1024次阅读
    ADI解读<b class='flag-5'>SerDes</b>调试的核心原理

    BSP44 GMAC0 在 Serdes0 车道 1 中不起作用怎么解决?

    ,gmaco依然无法工作。针对gmaco的模式1,我进行了使用,但当我尝试使用模式3时,系统会报错。两个serdes通道(pfe0和pfe2)均能正常工作,但我们的重点是gmaco。以下为供您参考的故障信息摘录
    发表于 05-11 08:28

    电池充放电测试仪的工作原理与实际应用要点

    的技术细节却不少。 基本工作原理 充放电测试仪的工作逻辑并不复杂。设备内部有一套功率回路,由电源模块和电子负载组成。充电时,设备作为恒流或恒压源向电池输送能量;放电时,设备切换为电子负载,将电池储存的能量消耗掉并转
    的头像 发表于 05-09 10:37 313次阅读

    矽力杰联合参与吉利汽车SerDes白皮书发布仪式

    的技术原理、技术路径以及未来的发展趋势。矽力杰作为成员单位,积极参与了这一白皮书的编撰和推广工作。一车载SerDes的应用车载SerDes(串行器/解串器)是智能
    的头像 发表于 04-27 18:04 499次阅读
    矽力杰联合参与吉利汽车<b class='flag-5'>SerDes</b>白皮书发布仪式

    433M无线模块的工作原理和距离

    一、工作原理  433MHz无线模块的工作原理是通过发射器和接收器之间的模拟信号进行无线通信。具体来说,它由发射器和接收器两部分组成,这两部分通过433MHz的模拟信号进行通信。发射器工作原理
    发表于 04-10 14:44

    无线充电器的工作原理核心

    无线充电器的工作原理核心
    的头像 发表于 12-06 10:19 2237次阅读
    无线充电器的<b class='flag-5'>工作原理</b>核心

    超景深显微镜的工作原理与测试影响因素

    在微观检测领域,传统显微镜常受限于景深较短的问题,难以同时清晰呈现样品不同深度的结构细节,而超景深显微镜凭借独特的技术优势,有效突破这一局限,广泛应用于材料科学、电子制造等领域。深入理解其工作原理
    的头像 发表于 10-09 18:02 964次阅读
    超景深显微镜的<b class='flag-5'>工作原理</b>与测试影响因素

    智多晶SerDes 2.0 IP介绍

    为了满足用户对SerDes日益增涨和多样化的要求。智多晶SerDes IP推出了2.0版本的升级,本次升级相比1.0版本主要带来了以下的变化。
    的头像 发表于 08-16 15:32 1731次阅读
    智多晶<b class='flag-5'>SerDes</b> 2.0 IP介绍

    解析基带和射频的工作原理

    在现代通信技术中,基带和射频是两个核心概念,它们共同构成了无线通信的基础。尽管这两个术语频繁出现在技术文档和行业讨论中,但其具体功能和技术细节却常常被误解。本文将以移动通信为例,深入解析基带和射频的工作原理及其在通信链路中的作用。
    的头像 发表于 08-06 09:28 3140次阅读
    解析基带和射频的<b class='flag-5'>工作原理</b>

    车载SerDes产业起飞!国产新品密集炸场

    电子发烧友网报道(文/梁浩斌)伴随汽车智能化趋势的加速,SerDes在数据传输方面的关键地位,使其成为了汽车芯片中增长速度极快的细分产品。   近两年,已经有多家海外芯片大厂通过收购布局SerDes
    的头像 发表于 07-03 00:12 9764次阅读
    车载<b class='flag-5'>SerDes</b>产业起飞!国产新品密集炸场

    晶体管光耦的工作原理

    晶体管光耦(PhotoTransistorCoupler)是一种将发光器件和光敏器件组合在一起的半导体器件,用于实现电路之间的电气隔离,同时传递信号或功率。晶体管光耦的工作原理基于光电效应和半导体
    的头像 发表于 06-20 15:15 1319次阅读
    晶体管光耦的<b class='flag-5'>工作原理</b>

    语音控制模块工作原理

    ,才能够发出正确的指令。 语音芯片控制模块是实现 “语音指令 - 设备响应” 的核心组件,其工作原理可拆解为信号采集、处理、识别及指令执行的完整链路,下面将以WTK69000为例给大家分享一下整个流程的工作原理。 一、语音信号采
    的头像 发表于 06-17 11:49 1923次阅读
    语音控制模块<b class='flag-5'>工作原理</b>

    电压传感器是什么?工作原理是哪样

    传感器广泛应用于电力系统、工业自动化、电子设备测试、新能源汽车等领域,用于监测电压变化、保护电路安全、优化系统性能等。 电压传感器的工作原理 电压传感器的工作原理根据其类型不同而有所差异,常见的电压传感器类型及
    的头像 发表于 06-13 18:00 3692次阅读

    管道浮力平衡压袋(配重压袋)工作原理

    管道浮力平衡压袋(配重压袋)工作原理
    发表于 06-12 15:09 0次下载

    FLASH的工作原理与应用

    14FLASHFLASH的工作原理与应用OWEIS1什么是FLASH?Flash闪存是一种非易失性半导体存储器,它结合了ROM(只读存储器)和RAM(随机访问存储器)的优点,具有电子可擦除和可编程
    的头像 发表于 05-27 13:10 2566次阅读
    FLASH的<b class='flag-5'>工作原理</b>与应用