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

LVDS系列24:Xilinx Ultrascale系ISERDESE3原语(二)

下面进行ISERDESE3原语的仿真验证:

 DDR模式8bit,不使用FIFO:
由于iserdese3不带有bitslip功能,所以得到的数据可能需要bit拼接一下才能判断;
在这里插入图片描述
从上一讲的上图中,可以看到,原语将先进来的比特数据放到了并行输出的低位;

测试模块:
在这里插入图片描述
Tb中产生循环的8’hc3和8’hab,这里用低位先发的方法转成串行,
产生这一串数据顺序大概如下:
11010101 11000011
在这里插入图片描述
解串情况:
可以看到解出数据为1d和5e,
在这里插入图片描述
由于没有bitslip功能,我们自己对照下输入输出,
在这里插入图片描述
理想的数据输入序列是如下:
11010101 11000011 11010101 11000011 11010101 11000011…
但是图上进行解串的数据划分确是:
11010101 11000011 11010101 11000011 11010101 11000011…
其中红色绿色序列相同,且按该划分重复解串,
0111 1010,左侧为低位,组成8’h5E,
1011 1000,左侧为低位,组成8’h1D,与解串结果一致,
若想要得到预设的tb数据,则需要在获得解串结果后,再编写一层比特滑动的逻辑进行结果的变换,才能得到预设的结果。

 DDR模式8bit,使用FIFO:
修改测试模块中使用FIFO读取数据,
在这里插入图片描述
下图为不使用FIFO时,数据输出时间,可以看到是在CLK_DIV上升沿后一段时间输出
在这里插入图片描述
下图为使用FIFO时,输出数据都一致,数据输出时间,可以看到是在FIFO_RD_CLK上升沿后一小段时间输出,FIFO_RD_CLK这里使用一个与CLK_DIV不同相的时钟,
在这里插入图片描述
在这里插入图片描述
 SDR模式4bit,不使用FIFO:
测试模块修改如下,CLK和CLK_B连接到同一高速时钟,
在这里插入图片描述
此时两个时钟相位对齐,彼此上升沿采集时,采集的数据相同,此时组成的8bit输出数据里,只有一半有效值,使用Q6、Q4、Q2、Q0即可;
在这里插入图片描述
Tb生成的数据是交替的4’ha和4’hc,低位先发,产生的数据流是:
00110101 00110101 00110101…
在这里插入图片描述
此时得到的解串数据是8’h 33和8’h c3,其中8’h 33是8’b00110011,8’h c3是8’b11000011,可以看到Q6、Q4、Q2、Q0和Q7、Q5、Q3、Q1的值分别相等,这是由于CLK和CLK_B相同,两者同时采一个值,所以解串得到的数据是4’b0101和4’b1001
在这里插入图片描述
上图为仿真解串的序列:
1010 1001 1010 1001…
在预设数据流中所处位置为 00110101 00110101 00110101 00110101…
左侧先到比特为低位,则解串数据为4’b0101和4’b1001,符合时序要求;

本文章由威三学社出品
对课程感兴趣可以私信联系

http://www.lryc.cn/news/613401.html

相关文章:

  • 【数据结构——并查集】
  • 批量获取亚马逊商品SKU商品规格调用流程
  • 哈勃网络计划大规模升级卫星以创建全球蓝牙层
  • 哈希表——指针数组与单向链表的结合
  • [Oracle] FLOOR()函数
  • 2025最新国内服务器可用docker源仓库地址大全(2025年8月更新)
  • 上海一家机器人IPO核心零部件依赖外购, 募投计划频繁修改引疑
  • 【Linux基础知识系列】第八十八篇 - 使用du命令分析文件和目录大小
  • 如何解决用阿里云效流水线持续集成部署Nuxt静态应用时流程卡住,进行不下去的问题
  • 硬盘哨兵pe版本 v25.70.6 中文免费版
  • openGauss3.10企业版单机部署(openEuler20.03 SP3)
  • RP2040下的I2S Slave Out,PIO状态机(四)
  • HMC1119LP4METR ADI亚德诺 高频功率放大器 MMIC集成电路IC
  • 自动化测试篇--BUG篇
  • Android-Kotlin基础(Jetpack④-Room)
  • RepoCoder:仓库级代码补全的迭代检索生成框架解析与应用前沿
  • 前缀和
  • 网卡名eth1、em1 、eno1、ens1 的区别
  • C++ vector 扩容时到底发生了什么?
  • 纯本地AI知识库搭建:DeepSeek-R1+AnythingLLM全流程
  • priority_queue的使用和模拟
  • Kotlin中String的==相等比较符
  • C语言sprintf、strcmp、strcpy、strcat函数详解:字符串操作的核心工具
  • 「日拱一码」045 机器学习-因果发现算法
  • 力扣238:除自身之外数组的乘积
  • LeetCode算法日记 - Day 4: 三数之和、四数之和
  • 力扣300:最长递增子序列
  • 优选算法 力扣 LCR 179. 查找总价格为目标值的两个商品 双指针降低时间复杂度 C++题解 每日一题
  • Cesium粒子系统模拟风场动态效果
  • 【Zephyr】02_从零教你开发芯片级ADC驱动(HAL层篇)