当前位置: 首页 > news >正文

SerDes介绍以及原语使用介绍(1)OSERDESE2

文章目录

  • 前言:为什么需要serdes
  • 一、OSERDESE2框图
  • 二、OSERDESE2端口信号
  • 二、OSERDESE2原语参数
  • 三、OSERDESE2时序
    • 3.1、SDR模式
    • 3.2、DDR模式
    • 3.3、DDR模式下三态传输

前言:为什么需要serdes

需要 SerDes(串行器/解串器)主要是为了应对高速数据传输和复杂系统集成的挑战。以下是具体原因和应用场景:

  1. 高速数据传输
    数据带宽需求增加:随着数据处理能力的提升,系统对数据传输带宽的需求不断增加。SerDes可以实现更高的传输速率,满足带宽需求。
    时钟频率提升:串行传输能够以更高的时钟频率工作,从而提高数据传输速度。

  2. 减少引脚和布线
    引脚数量减少:在并行传输中,需要多条数据线和相应的引脚。SerDes通过串行化数据传输,显著减少了所需的引脚数量。
    布线复杂性降低:减少了PCB上的布线数量,简化了设计,降低了成本和干扰。

  3. 改善信号完整性
    降低串扰和噪声:并行传输中,信号线之间的干扰和噪声是一个主要问题。串行传输减少了这些问题,提高了信号的完整性。
    长距离传输:串行信号在长距离传输中更容易保持信号的完整性,适用于芯片间和板间通信。

  4. 节省空间和功耗
    减少芯片面积:通过减少I/O引脚的数量,SerDes可以帮助节省芯片的面积。
    优化功耗:尽管SerDes电路本身可能功耗较高,但整体系统的功耗效率会因为减少并行I/O而得到优化。

  5. 适应现代系统需求
    支持多种标准和协议:SerDes广泛应用于各种高速接口标准,如PCI Express、SATA、USB、以太网、光纤通道等,适应不同的应用需求。
    系统集成:现代系统越来越复杂,需要将多个子系统集成在一起。SerDes能够高效地实现不同模块间的数据传输和通信。

  6. 灵活性和可扩展性
    动态带宽分配:SerDes能够根据需要动态分配带宽,提高系统的灵活性。
    可扩展性:可以通过增加SerDes通道的数量来扩展系统的总带宽,满足未来的需求。

应用场景

  1. 通信网络:用于高速网络接口,如以太网和光纤通道。
  2. 存储系统:如SATA、SAS等存储接口。
  3. 计算机总线:如PCI Express、USB等系统总线。
  4. 多媒体接口:如HDMI、DisplayPort等视频和音频接口。
  5. 芯片间通信:如在多芯片模块(MCM)和系统级封装(SiP)中使用。
  6. 板间通信:用于不同电路板之间的高速数据传输。

总结:
需要SerDes的主要原因在于其能够大幅提升数据传输速率、减少引脚数量和布线复杂性、改善信号完整性、节省空间和功耗,以及满足现代高速系统的需求。通过串行化和解串化,SerDes在各种高速数据传输和复杂系统集成场景中发挥着关键作用。
而我们之前学习的GT(包括GTX、GTH和GTP):是Xilinx在高速SerDes的基础上,增加了其他模块,如8b/10b编解码等(具体可以看Xilinx相关文档,如ug476)形成的一个高速串行收发器,GT是Gigabit Transceiver的意思,它是实现当下一些高速串行接口的基础:如PCIe、RapidIO等

一、OSERDESE2框图

参考:xilinx ug471手册
在这里插入图片描述
上图所示,OSERDESE2(Output Parallel-to-Serial Logic Resources)是7系列FPGA器件中的专用并串转换器,具有特定的时钟和逻辑资源。每个OSERDESE2模块都包含一个用于数据和三态控制的专用串行器。数据和三态串行器输出都可以配置为SDR(在时钟的单沿传输数据)和DDR(在时钟的双沿传输数据)模式。数据序列化最高可达 8:1(如果使用OSERDESE2宽度扩展,则为10:1或14:1)。

二、OSERDESE2端口信号

在这里插入图片描述
在这里插入图片描述

  1. CLK:与输出串行数据对齐的高频时钟信号
  2. CLKDIV:与输入并行数据对齐的低频时钟信号
  3. D1-D8:并行输入数据端口,一个OSERDESE2最多配置8位输入并行输入数据,两个OSERDESE2模块通过级联可以配置10位或14位并行输入数据。其中D1最先转换为串行数据输出。
  4. OQ:串行信号输出,直接与IOB相连,输出到FPGA管脚,若是需要将串行信号输出到2. ODELAYE2或者ISERDESE2,那么使用OFB端口,OFBOQ两个端口的信号一模一样,只是数据走向不同。
  5. T1-T1:OSERDESE2原语还有三态控制输出的功能,那么T1-T4是三态控制信号,与D1-D4数据对应。使用三态功能时,TQ作为串行输出的管脚,用于判断OQ信号此时是作为输入引脚(TQ为高电平)还是输出引脚(TQ为低电平),而TFB与OFB原理类似。
  6. OCE:数据并串转换的时钟使能信号。
  7. TCE:三态转换的时钟使能信号。
  8. RST:是一个异步的高电平复位,RST拉高时,会将CLK和CLKDIV时钟域下的所有触发器清零输出低电平。当设计中存在多个OSERDESE2模块时,推荐所有OSERDESE2均使用同一个复位信号,并且RST拉高应该与CLKDIV信号同步,确保所有OSERDESE2模块能够同时退出复位状态。
  9. TBYTEIN、TBYTEOUT:信号是用于DDR3控制器使用的,直接关闭即可。
  10. SHIFTIN1、SHIFTIN2、SHIFTOUT1、SHIFTOUT2:用于OSERDESE2转换数据时的位扩展,单个OSERDESE2最多只能将8bit并行数据转换位串行数据输出,而两个OSERDESE2级联最多可以将14bit并行数据转换位串行数据输出。如下图所示,是两个OSERDESE2将10bit并行输入转换为串行输出的连接框图。从OSERDESE2的SHIFTOUT1、SHIFTOUT2连接到主OSERDESE2的SHIFTIN1、SHIFTIN2实现扩展。Slave OSERDESE2模块的输入数据从D3开始连接,D1和D2不能使用。
    在这里插入图片描述

二、OSERDESE2原语参数

   OSERDESE2 #(.DATA_RATE_OQ("DDR"),   // DDR, SDR.DATA_RATE_TQ("DDR"),   // DDR, BUF, SDR.DATA_WIDTH(4),         // Parallel data width (2-8,10,14).INIT_OQ(1'b0),         // Initial value of OQ output (1'b0,1'b1).INIT_TQ(1'b0),         // Initial value of TQ output (1'b0,1'b1).SERDES_MODE("MASTER"), // MASTER, SLAVE.SRVAL_OQ(1'b0),        // OQ output value when SR is used (1'b0,1'b1).SRVAL_TQ(1'b0),        // TQ output value when SR is used (1'b0,1'b1).TBYTE_CTL("FALSE"),    // Enable tristate byte operation (FALSE, TRUE).TBYTE_SRC("FALSE"),    // Tristate byte source (FALSE, TRUE).TRISTATE_WIDTH(4)      // 3-state converter width (1,4))

OSERDESE2一共有11个参数,分别如下:

  1. DATA_RATE_OQ:定义数据是以单数据速率(SDR)还是双数据速率(DDR)进行串行化处理,默认值为DDR。
  2. DATA_RATE_TQ:定义是否将三态控制作为单数据速率(SDR)还是双数据速率(DDR)进行处理。该属性允许的值为SDR、DDR或BUF,默认为DDR。在SDR和DDR模式下,使用T1~T4输入,并且可以使用TRISTATE_WIDTH配置三态输入宽度。在BUF模式下,SDR和DDR模式寄存器被旁路,使用T1输入。
  3. DATA_WIDTH:定义并串转换器的并行数据输入宽度。当 DATA_RATE_OQ设置为SDR时,DATA_WIDTH可能取值为2、3、4、5、6、7和8。当DATA_RATE_OQ设置为DDR时,DATA_WIDTH属性的可能值为 4、6、8 、10 和 14。
  4. INIT_OQ:表示OQ信号的初始状态,默认为1’b0。
  5. INIT_TQ:表示TQ的初始状态,默认为1’b0。
  6. SERDES_MODE:定义使用宽度扩展时OSERDESE2模块是主模块还是从模块。可以为MASTER或SLAVE,默认为MASTER。
  7. SRVAL_OQ:表示OQ信号复位时的值,默认为1’b0。
  8. SRVAL_TQ:表示TQ信号复位时的值,默认为1‘b0。
  9. TBYTE_CTL:用于DDR3控制器使用
  10. TBYTE_SRC:用于DDR3控制器使用
  11. TRISTATE_WIDTH:定义三态控制并串转换器的并行三态输入宽度。当DATA_RATE_TQ设置为SDR或BUF时,TRISTATE_WIDTH属性只能设置为1。当DATA_RATE_TQ设置为DDR时,TRISTATE_WIDTH属性的可能值为1和4。

在这里插入图片描述
OSERDESE2块的输入到输出延迟指的是当CLKDIV的上升沿把输入数据D1~D8端口的数据寄存到OSERDESE2内部时 到 OSERDESE2的OQ端口输出第一位数据的时间间隔。当CLK和CLKDIV的相位对齐时,延迟可能相差一个CLK周期,如果CLK和CLKDIV的相位没有对齐时,延迟的值取决于DATA_RATE和DATA_WIDTH的值,如下图所示:
在这里插入图片描述

三、OSERDESE2时序

3.1、SDR模式

  1. 时钟事件1在CLKDIV的上升沿上,2’bAB从FPGA逻辑驱动到OSERDESE2的D1和D2输入(需要经过一些传播延迟)。

  2. 时钟事件2在CLKDIV的上升沿上,2’bAB从D1和D2输入采样到OSERDESE2。

  3. 时钟事件3数据位A在AB被采样到OSERDESE2后一个CLK周期出现在OQ。

  4. 此延迟与上表当中SDR模式OSERDESE2延迟为一个CLK周期一致。

在这里插入图片描述

3.2、DDR模式

  1. 时钟事件1在CLKDIV的上升沿上,8’bABCDEFGH从FPGA逻辑驱动到OSERDESE2的D1-D8输入。

  2. 时钟事件2在CLKDIV的上升沿上,8’bABCDEFGH从D1-D8采样到OSERDESE2。

  3. 时钟事件3在ABCDEFGH被采样到OSERDESE2后,数据位A出现在4个CLK周期,与上表描述一致。第二个单词IJKLMNOP从D1-D8采样到OSERDESE2。

  4. 时钟事件4在时钟事件3和4之间,整个8’bABCDEFGH在OQ上串行传输,在一个CLKDIV周期中总共传输8位。在IJKLMNOP被采样到OSERDESE2之后,数据位I出现在OQ的四个CLK周期。

  5. 这个延迟与之前时延表中列出的4个CLK周期的8:1 DDR mode下OSERDESE2延迟一致。

在这里插入图片描述

3.3、DDR模式下三态传输

此时最多将4位并行数据转为串行数据输出,在时钟CLKDIV第三个上升沿处,采集到D1-D4的数据位EFGH,与此时T1-T4的数据0010对应。

经过一个CLK时钟周期后,OQ输出第一个串行数据E,而TQ开始输出对应三态数据0,当TQ数据为0时,才会将OQ的数据输出到IOB模块,当TQ为1时,FPGA管脚作为输入,此时不会把OQ的数据输出到IOB。因此下图中当TQ为低电平时,OBUFT.O才输出OQ对应的数据EFH,否则不输出OQ的数据。图片
在这里插入图片描述

相关文章:

SerDes介绍以及原语使用介绍(1)OSERDESE2

文章目录 前言:为什么需要serdes一、OSERDESE2框图二、OSERDESE2端口信号二、OSERDESE2原语参数三、OSERDESE2时序3.1、SDR模式3.2、DDR模式3.3、DDR模式下三态传输 前言:为什么需要serdes 需要 SerDes(串行器/解串器)主要是为了…...

基于单片机和组态王的温度监控系统的设计

摘 要 : 介绍了以 MSP430 单片机为核心 , 建立基于 DS18B20 和组态王的温度采集和监控系统。主要研究了单片机和组态王的通用通讯协议。按照 KingView 提供的通信协议 , 设计组态王与单片机的通信程序 , 实现了组态王与M SP430 单片机的直接串行通讯。在中药提取装置的…...

unity 导入的模型设置讲解

咱们先讲Model这一栏 Model Scene:场景级属性,例如是否导入灯光和照相机,以及使用什么比例因子。 Scale Factor:缩放因子(也就是模型导入后大小如果小了或者大了在这里直接改是相当于该模型的大小的,而且在…...

汽车 vSOC安全运营管理平台开发解决方案

汽车 vSOC 安全解决方案 一、引言 随着汽车行业的快速发展,汽车的智能化和互联化程度越来越高,汽车网络安全问题也日益凸显。汽车 vSOC(Vehicle Security Operations Center)作为汽车网络安全的重要组成部分,其作用越来越受到重视。本方案旨在提供一套可实施落地的汽车 vS…...

python 第三方库

一、什么是第三方库 python的三方库指的是,需要通过pip install 安装后才能使用的 python 工具 三方库有很多: 做web自动化测试的库:selenium单元测试框架:pytest、unittest做app自动化测试:Python-Appium-Client做接…...

VMware Workstation环境下,DHCP服务的安装配置,用ubuntu来测试

需求说明: 某企业信息中心计划使用IP地址17216.11.0用于虚拟网络测试,注册域名为xyz.net.cn.并将172.16.11.2作为主域名的服务器(DNS服务器)的IP地址,将172.16.11.3分配给虚拟网络测试的DHCP服务器,将172.16.11.4分配给虚拟网络测试的web服务器,将172.16.11.5分配给FTP服务器…...

CSS实现文字颜色渐变

直接上代码和效果图&#xff1a; <p class"linecolor">文字颜色渐变</p><style type"text/css">.linecolor{font-size: 30px;background-image:-webkit-linear-gradient(bottom,red,#fd8403,yellow);-webkit-background-clip:text;-web…...

《每天5分钟用Flask搭建一个管理系统》第4章:模板渲染

第4章&#xff1a;模板渲染 4.1 模板的概念和使用 模板是一种用于生成输出的方法&#xff0c;它允许您将Python代码和HTML标记混合在一起&#xff0c;从而创建动态网页。 示例代码&#xff1a;基本模板 <!-- templates/home.html --> <!DOCTYPE html> <html…...

逆向学习汇编篇:指令的操作

本节课在线学习视频&#xff08;网盘地址&#xff0c;保存后即可免费观看&#xff09;&#xff1a; ​​https://pan.quark.cn/s/660c759dea95​​ 在逆向工程中&#xff0c;深入理解汇编语言的指令操作是至关重要的。汇编指令是计算机硬件与软件之间的桥梁&#xff0c;它们直…...

VB.net实战(VSTO):VSTOwpf体验框架打包教程

如果是考虑到Wps用户较多&#xff0c;就不建议采用侧边栏的形式 只是个体验框架&#xff0c;界面未作美化&#xff0c;office的用户可以用任意一种窗体&#xff0c;喜欢那个界面就写那个界面&#xff0c;wps的侧边栏只能弹出一部分&#xff0c;每次需要的手动拖动。 打包了案例…...

Jquery 获得Form下的所有text、checkbox等表单的值

Jquery使用表单我主要是想获得某一个表单下的所有text获得checkbox的值: 可以这样写: var parameter{}; $("input[typetext]",document.forms[0]).each(function(){ alert(this.name); }); 获得所有名为hobby的选中的checkbox的值和form2下的所有text的值 function s…...

stl之string

构造函数 void test1() {string s1;//不传参cout << s1 << endl;string s2("123456");cout << s2 << endl;string s3(s2);cout << s3 << endl;string s4(s2, 1, 5);cout << s4 << endl;string s5("123456&quo…...

Vue3学习笔记<->nginx部署vue项目

安装nginx vue项目通常部署到nginx上&#xff0c;所以先安装一个nginx。为了方便安装的是windows版nginx&#xff0c;解压就能用。 项目参考上一篇文章《Vue3学习笔记&#xff1c;-&#xff1e;创建第一个vue项目》《Vue3学习笔记&#xff1c;-&#xff1e;创建第一个vue项目》…...

使用 WebGL 创建 3D 对象

WebGL Demohttps://mdn.github.io/dom-examples/webgl-examples/tutorial/sample5/index.html 现在让我们给之前的正方形添加五个面从而可以创建一个三维的立方体。最简单的方式就是通过调用方法 gl.drawElements() 使用顶点数组列表来替换之前的通过方法gl.drawArrays() 直接…...

百度地图3d区域掩膜,最常见通用的大屏地图展现形式

需求及效果 原本项目使用的是百度地图3.0,也就是2d版本的那个地图&#xff0c;客户不满意觉得不够好看&#xff0c;让把地图改成3d的&#xff0c;但是我们因为另外的系统用的都是百度地图&#xff0c;为了保持统一只能用百度地图做 经过3天的努力&#xff0c;最后我终于把这个…...

小区物业管理收费系统源码小程序

便捷、透明、智能化的新体验 一款基于FastAdminUniApp开发的一款物业收费管理小程序。包含房产管理、收费标准、家属管理、抄表管理、在线缴费、业主公告、统计报表、业主投票、可视化大屏等功能。为物业量身打造的小区收费管理系统&#xff0c;贴合物业工作场景&#xff0c;轻…...

C++实现一个简单的Qt信号槽机制

昨天写这个文章《深入探讨C的高级反射机制&#xff08;2&#xff09;&#xff1a;写个能用的反射库》的时候就在想&#xff0c;是不是也能在这套反射逻辑的基础上&#xff0c;实现一个类似Qt的信号槽机制&#xff1f; Qt信号槽机制简介 所谓的Qt的信号槽&#xff08;Signals …...

微信小程序常用的传值

1.通过 URL 传参 在页面跳转时&#xff0c;可以在 URL 中携带参数进行传递&#xff0c;然后在目标页面的 onLoad 生命周期中获取参数。 // 在页面 A 中跳转到页面 B 并传递参数 wx.navigateTo({url: /pages/detail/index?id123 });// 在页面 B 的 onLoad 生命周期中获取参数…...

SQL面试真题解答 数据统计分析,求“同比、环比”等(SQL窗口函数使用)

SQL面试真题解答 数据统计分析&#xff0c;求“同比、环比”等&#xff08;SQL窗口函数使用&#xff09; 环比、环比增长率、同比、同比增长率&#xff0c;根据百度百科上的 说明&#xff1a; 环比增长率 环比增长率&#xff0c;一般是指和上期相比较的增长率。 环比增长率&a…...

【递归、搜索与回溯】floodfill算法二

floodfill算法二 1.被围绕的区域2.太平洋大西洋水流问题3.扫雷游戏4.衣橱整理 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.被围绕的区域…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...