SerDes介绍以及原语使用介绍(3)ISERDESE2原语介绍

文章目录

  • 前言
  • 一、ISERDESE2
    • 1.1、ISERDESE2端口信号
    • 1.1、ISERDESE2参数
  • 二、BITSLIP-位滑动
    • 2.1、BITSLIP作用
    • 2.2、BITSLIP使用
    • 2.3、BITSLIP示例

前言

上文对OSERDESE进行了详细介绍并且进行了仿真分析,本文开始对ISERDES进行介绍,

一、ISERDESE2

不难理解,与OSERDESE相反,ISERDESE2实现串并转换的模块。ISERDESE2框图如下:
在这里插入图片描述

1.1、ISERDESE2端口信号

  1. Q1-Q8:并行输出数据,其中Q8是最先输入的串行数据位,如下图所示。一个ISERDESE2块最多输出8位并行数据,在DDR双沿采样模式下,两个ISERDESE2块级联可以输出10位和14位并行数据。
    在这里插入图片描述
  2. O:该端口直接连接到串行输入的几个端口,并没有经过ISERDESE2核心逻辑,可以把D或DDLY的数据直接输出。
  3. SHIFTIN1、SHIFTIN2、SHIFTOUT1、SHIFTOUT2 :与OSERDESE2中该信号的原理一致,都是在两个OSERDESE2级联的时候,把从OSERDESE2的SHIFTOUT与主OSERDESE2的SHIFTIN连接。
  4. OFB:ISERDESE2的输入可以来自FPGA的管脚,即D端输入信号。也可以来自IDELAYE2的输出,即DDLY端口作为输入。还可以来自OSERDESE2的输出,即OFB作为输入,与OSERDESE2连接方式如下所示,两个器件的OFB信号相连即可。ISERDESE2与OSERDESE2连接时需要添加“OFB_USED = TRUE ”属性,并且ISERDESE2和OSERDESE2的DATA_RATE、DATA_WIDTH参数必须设置一致。
    在这里插入图片描述
  5. CLK:高速时钟输入CLK,与串行数据流对齐。
  6. CLKB:辅助时钟输入CLKB,在MEMORY_QDR模式下,CLKB应连接到唯一的相移时钟,其余模式下,CLKB连接到CLK取反信号。
  7. CLKDIV:分频时钟CLKDIV,用于驱动串并转换器、Bitslip子模块和CE模块的输出,与输出的并行数据对齐。在SDR模式下,如果输出的X位并行数据,那么CLKDIV的频率是CLK频率的1/X,如果是DDR模式,则CLKDIV的频率是CLK频率的2/X。
    注: 手册要求CLK和CLKDIV的相位必须对齐,一般推荐两种连接方式,一种如下所示,时钟输入管脚通过BUFIO之后直接作为串行输入数据的时钟信号,BUFIO优点就是路径短,延时小,缺点就是只能驱动当前时钟区域的IDDR和ISERDESE2的时钟管脚。而并行时钟需要通过BUFR进行分频,分频系数根据并行数据位宽和工作模式确定。另一种就是通过同一个MMCM产生CLK和CLKDIV两路时钟信号,这种方式更常用。原因是BUFIO和BUFR需要用户提供高频串行时钟,如果需要几百M的串行时钟,显然用户的外部晶振一般是无法提供的。
    在这里插入图片描述
  8. CE1、CE2:时钟使能CE1和CE2,与参数NUM_CE的值有关。当NUM_CE为1时,使用CE1作为时钟使能信号。当NUM_CE为2时,当CLK_DIV为低电平时,CE2作为时钟使能信号,当CLK_DIV为高电平时,CE1作为时钟使能信号,对应真值表如下图所示。在这里插入图片描述
  9. BITSLIP:高电平时执行与CLKDIV同步的移位操作。
  10. RST:复位信号,高电平有效,推荐退出复位时间与CLKDIV同步。
  11. OCLK:过采样模式时钟仅当INTERFACE_TYPE设置不为NETWORKING,才会使用OCLK时钟。
  12. CLKDIVP:MIG控制器专属
  13. DYNCLKDIVSEL、DYNCLKSEL:动态选择CLKDIV、CLK、CLKB

1.1、ISERDESE2参数

  1. DATA_RATE:设置ISERDESE2工作模式,可选择单沿工作模式(SDR)和双沿工作模式(DDR),默认DDR模式。

  2. DATA_WIDTH:设置输出并行数据位宽,取决于DATA_RATE和INTERFACE_TYPE的设置。如下图所示,SDR模式下可以设置为2、3、4、5、6、7、8。DDR模式下单个ISERDESE2块只能设置为4、6、8,两个ISERDESE2块级联可以设置为10、14。
    在这里插入图片描述

  3. INTERFACE_TYPE:决定ISERDESE2是配置为内存模式还是网络模式。可选的值有MEMORY、MEMORY_DDR3、MEMORY_QDR、OVERSAMPLE、NETWORKING,默认模式是MEMORY,常用NETWORKING模式。

  4. DYN_CLKDIV_INV_EN:动态调整CLKDIV

  5. DYN_CLK_INV_EN:动态调整CLK

  6. INIT_Q1-Q4:设置第n个采样寄存器的初始值

  7. SRVAL_Q1-Q4:设置复位第n个采样寄存器后的值。

  8. IOBDELAY:D和DDLY都是ISERDESE2的专用输入,D直接连接到IOB(直接与管脚相连),DDLY直接连接到IDELAYE2(在ISERDESE2和管脚之间有IDELAYE2加入延迟)。允许用户把延迟或非延迟的外部管脚输入信号作为ISERDESE2输入,通过参数IOBDELAY确定D和DDLY哪个作为ISERDESE2的输入,下图是IOBDELAY参数与输入信号的关系,经常设置位NONE,将外部管脚信号作为ISERDESE2串行数据输入。
    在这里插入图片描述

  9. NUM_CE:定义使用的时钟使能(CE1和CE2)数量,可设为1和2(默认值为2)。

  10. OFB_USED:使能从OSERDESE2的OFB引脚到ISERDESE2 OFB引脚的路径,禁用外部管脚输入D和IDELAYE2的输入DLY。

  11. SERDES_MODE:SERDES_MODE确定哪个是主ISERDESE2,哪个是从ISERDESE2。

二、BITSLIP-位滑动

2.1、BITSLIP作用

在串并转化的过程当中,这个信号就是进行校准的关键信号,如果没有这个信号,那么ISERDESE2的输出数据其实没有意义,很大可能是错误的,和之前在GT当中所描述的类似,在串并转换的过程中,我们需要知道从串行数据的哪里开始进行串并转换才能够恢复出来正确的并行数据。

通过拉高ISERDESE2模块的Bitslip信号,输入的串行数据流在并行端重新排序,Bitslip与CLKDIV同步。下图说明了SDR和DDR模式下位滑移操作对数据采样的影响,ISERDESE2的数据宽度是八。在SDR模式下,每次Bitslip拉高都会导致输出数据左移一位。在DDR模式下,每次Bitslip拉高都会导致输出数据在右移1位和左移3位之间交替变化。
在这里插入图片描述

2.2、BITSLIP使用

在我们使用的时候,无需关心到底是怎么移动的,只需要观察串并转换结束后的数据是否为正确数据,不准确则拉高一次BITSLIP即可。只有当ISERDESE2处于网络模式(NETWORKING)下,位滑块(BITSLIP)才可用。Bitslip每次只能拉高一个CLKDIV周期,不能在两个CLKDIV周期内连续拉高Bitslip信号。

在SDR和DDR模式下,从ISERDESE2检测到Bitslip的高电平开始,到ISERDESE2把Bitslip移动后的数据输出到Q1–Q8引脚为止,延迟时间为两个CLKDIV周期。在分析接收到的数据模式并可能发出下一个Bitslip命令之前,用户逻辑应在SDR模式下等待至少两个CLKDIV周期,在DDR模式下等待至少三个CLKDIV周期。综上Bitslip拉高后,需要等待至少三个时钟周期,才能检测并行输出结果是否与预期一致,进而确定是否通过拉高Bitslip信号继续调整输出。与当初介绍64B66B的自定义PHY有点类似。

2.3、BITSLIP示例

以下图为例进行说明:
下图是4位并行数据的DDR模式下Bitslip的时序图,数据(D)重复的4位串行数据ABCD。ABCD可能以四种方式出现在ISERDESE2的Q1–Q4并行输出端:ABCD、BCDA、CDAB和DABC,只有ABCD才是正确的输出。拉高Bitslip信号选择所需的对齐方式(ABCD),下图显示了Bitslip的时序以及ISERDESE2并行输出Q1–Q4的校准时序。

  1. 时钟事件1:第一个并行信号CDAB已被采样到ISERDESE2的输入侧寄存器中。Bitslip引脚未断言;CDAB通过ISERDESE2传播而不进行任何重新排列。
  2. 时钟事件2:Bitslip引脚被断言,这导致Bitslip控制器内部将所有位向右移动一位。位滑在一个(只有一个)CLKDIV周期内保持高位。
  3. 时钟事件3:在断言Bitslip之后的三个CLKDIV周期,Bitslip操作完成,新的移位数据作为BCDA在输出上可用。
  4. 在时钟事件3之后:由于ISERDESE2配置为1:4,bitslip可以有效地断言最多两次。在第二次移位之后,(所需的)输出ABCD在Q4-Q1上可用。第三次移位(右一个位置)后,输出DABC在Q4-Q1上可用。在第四次移位(左三个位置)之后,原始输出CDAB在Q4-Q1上可用,并且Bitslip已经完成了通过所有四个输入组合的循环。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算【第一阶段(20)】磁盘管理与文件系统 服务器硬件及RAID配置实战(三)

一、服务器硬件详解 cpu 主板 内存 硬盘 网卡 电源 raid卡 风扇 远程管理卡 1.1、硬盘尺寸 目前生产环境中主流的两种类型硬盘 3.5寸 和2.5寸硬盘 2.5寸硬盘可以通过使用硬盘托架后适用于3.5寸硬盘的服务器 但是3.5寸没法转换成2.5寸 二、RAID阵列详解 独立硬盘冗余阵…

【深度学习】图形模型基础(2):概率机器学习模型与人工智能

1.引言 1.1.背景 当机器需要从经验中汲取知识时,概率建模成为了一个至关重要的工具。它不仅为理解学习机制提供了理论框架,而且在实际应用中,特别是在设计能够从数据中学习的机器时,概率建模展现出了其独特的价值。概率框架的核…

不知道自己的优势擅长和兴趣爱好,我该如何填报高考志愿选专业?

天生我才必有用,每个人都是独立的个体,拥有自己的优势和擅长,当然这个优势和擅长,不是和别人对比,而是和自己对比产生的。 如果说你不知道自己的优势擅长,不知道自己的兴趣和爱好,那只不过是你没…

cuda编码入门学习笔记

在日常深度学习和科学计算中,使用图形处理器(GPU)进行加速是一个常见的做法。CUDA (Compute Unified Device Architecture) 是英伟达公司提供的用于GPU编程的平台和编程模型。同时它是一种并行计算模型,允许开发人员使用标准C语言对GPU进行编程。CUDA的核心思想是将任务分解为…

The difference between Manhattan distance and Cosine Distance

题意:为什么即使返回了相同的文本块,曼哈顿距离(Manhattan Distance)和余弦距离(Cosine Distance)之间还是存在差异? 问题背景: I am using the qdrant DB and client for embeddin…

排序【插入排序】

排序的概念 排序:所谓排序,就是将一份数据,通过某个或者某些关键字的大小,进行递增或者递减排序的操作。 稳定性:假定在待排序的数据组中,存在多个相同的元素,若经过排序,这些数据…

决定佛蒙特州版图的关键历史事件:

​决定佛蒙特州版图的关键历史事件: 1. 早期探险与命名: - 1609年,法国探险家萨缪尔德尚普兰(Samuel de Champlain)到达了现在的佛蒙特州区域,并探索了尚普兰湖(Lake Champlain)。他将周围的山…

TS_类型

目录 1.类型注解 2.类型检查 3.类型推断 4.类型断言 ①尖括号&#xff08;<>&#xff09;语法 ②as语法 5.数据类型 ①boolean ②number ③string ④undefined 和 null ⑤数组和元组 ⑥枚举 ⑦any 和void ⑧symbol ⑨Function ⑩Object 和 object 6.高…

ATL新能源科技薪资待遇及Verify测评语言理解数字推理题型简介

一、走进ATL新能源科技 ATL新能源公司&#xff0c;即东莞新能源科技有限公司&#xff0c;是全球领先的可充式锂离子电池研发、生产和营销企业。成立于2004年&#xff0c;总部位于香港&#xff0c;产品广泛应用于消费电子产品和电动汽车领域。ATL以其技术创新和与苹果等大客户的…

2024年【电工(初级)】考试内容及电工(初级)模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 电工&#xff08;初级&#xff09;考试内容参考答案及电工&#xff08;初级&#xff09;考试试题解析是安全生产模拟考试一点通题库老师及电工&#xff08;初级&#xff09;操作证已考过的学员汇总&#xff0c;相对有…

等保2.0安全计算环境解读

等保2.0&#xff0c;即网络安全等级保护2.0制度&#xff0c;是中国为了适应信息技术的快速发展和安全威胁的新变化而推出的网络安全保护标准。相较于等保1.0&#xff0c;等保2.0更加强调主动防御、动态防御和全面审计&#xff0c;旨在实现对各类信息系统的全面保护。 安全计算环…

Docker基础知识的掌握,相关基本命令的用法

安装docker步骤&#xff1a;https://b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBkShcucLZbrn2d 1.docker Docker 是一种容器化平台&#xff0c;用于帮助开发者打包、发布和管理应用程序及其依赖关系。通过 Docker&#xff0c;开发者可以将应用程序及其所有依赖项打包到一个称为…

『MySQL 实战 45 讲』22 - MySQL 有哪些“饮鸩止渴”提高性能的方法?

MySQL 有哪些“饮鸩止渴”提高性能的方法&#xff1f; 需求&#xff1a;业务高峰期&#xff0c;生产环境的 MySQL 压力太大&#xff0c;没法正常响应&#xff0c;需要短期内、临时性地提升一些性能 短连接风暴 短连接模式&#xff1a;执行很少的 SQL 语句就断开&#xff0c;…

uniapp加载打点点效果

uniapp加载打点点效果 背景实现思路代码实现尾巴 背景 为了增加系统的交互性&#xff0c;我们在加载数据时通常会增加一些loading动效&#xff0c;但是在某些场景下只需要一些简单文字提醒。比如说使用【加载中】或者【loading】等字段&#xff0c;但是写静态的字符又显得交互…

【若依前后端分离】前端vue页面查看服务器本地的PDF

后端实现&#xff1a; 使用FileSystemResource包装文件&#xff0c;以便Spring MVC可以处理该资源 创建HttpHeaders对象以设置响应头 设置Content-Disposition头&#xff0c;使得浏览器以内联方式显示PDF&#xff08;即在浏览器中直接打开&#xff09; 设置Content-Type为appli…

Thinger.io 支持多协议、插件化100%开源 IoT 企业级物联网平台

项目源码&#xff0c;文末联系小编 Thinger.io 是一个开源插件化物联网平台&#xff0c;提供了设备原型、扩展和设备连接管理所需的一切工具。我们的目标是使物联网的使用民主化&#xff0c;使其可供全世界使用&#xff0c;并简化大型物联网项目的开发。 01 Thinger.io 物联网平…

Python学习路线图:120天系统学习,你也能成大神!

学Python&#xff0c;切忌今天这学一点&#xff0c;明天那里学一点&#xff0c;零零散散没有系统的学习。这样不仅耽搁大家时间&#xff0c;久而久之也会消磨大家学习的兴致&#xff01;这里给大家总结了一张系统的Python学习路线图&#xff01;希望大家共勉&#xff01; Pyth…

期末考试结束,成绩如何快速发布?

随着期末考试的落幕&#xff0c;老师们又迎来了一项繁琐的任务将成绩单私信给学生家长。这项工作耗时耗力&#xff0c;而且极易出错&#xff0c;期末老师的工作已经足够繁重还要私发成绩&#xff0c;简直是雪上加霜。 好消息是&#xff0c;现在有了易查分小程序&#xff0c;只需…

学会整理电脑,基于小白用户(无关硬件升级)

如果你不想进行硬件升级&#xff0c;就要学会进行整理维护电脑 基于小白用户&#xff0c;每一个操作点我都会在后续整理出流程&#xff0c;软件推荐会选择占用小且实用的软件 主要从三个角度去讨论【如果有新的内容我会随时修改&#xff0c;也希望有补充告诉我&#xff0c;我…

【Linux详解】进程地址空间

目录 研究背景 验证地址空间 实验一&#xff1a;父子进程变量地址一致性 实验二&#xff1a;变量值修改后父子进程的差异 分析与结论 实验三&#xff1a;进程地址空间验证 理解进程地址空间 区域与页表 写时拷贝机制 进程地址空间的意义 文章手稿&#xff1a; xmind…