Vivado JESD204B与AD9162建立通信实战总结

2024-01-04 05:52

本文主要是介绍Vivado JESD204B与AD9162建立通信实战总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、FPGA与AD9162的JESD204B接口

        FPGA作为JESD204B接口的发送端,AD9162作为JESD204B接口的接收端。FPGA和AD9162的device clk、SYSREF由同源时钟芯片产生。其中,FPGA和AD9162的divice clk时钟不同,并且FPGA的decive clk等同于JESD204B IP的core clk。如图,为JESD204B接口建立链接的整个过程。

1.相关术语:

L :lane数量。 

F:每条lane每帧的字节数。

K:每个多帧的包含的帧数量。

M:(converter)转换器数量。

S:每个转换器每帧的样本数量。

N:转换器分辨率。

NP(N'):每个样本的总bit数。

LaneRate:lane速率。

ByteRate:字节速率。

FrameRate:帧速率。

Multi_FrameRate:多帧速率。

device clk:设备时钟。

SYSREF:确定性延时参考钟。

2.FPGA和AD9162配置:(DAC采样率2.4GHz)

  1. DAC decode mode:mix mode
  2. Interpolation mode:1x(bypass)
  3. L=8,M=1,F=1,S=4,K=32,N=16,NP(N')=16。
  4. LaneRate=20*FDAC*(M/L)=20*2.4G*(1/8)=6Gbps.
  5. ByteRate = LaneRate/10=600M
  6. FrameRate = ByteRate/F=ByteRate/1=600M
  7. Multi_FrameRate=FrameRate /K=FrameRate /32=18.75M
  8. FPAG device clk = FPGA core clk = FPGA GTX reference clk = Lane Rate/40=150M。
  9. SYSREF时钟周期为Multi_FrameRate时钟周期的整倍数分频,做5倍分频。SYSREF =Multi_FrameRate/5=3.75M。

3.JESD204B建立过程

3.1 FPGA和AD9162接收到同源的SYSREF和device clk。

        FPGA在接收到SYSREF和device clk后,开始发送K28.5(BC)码值。

3.2 JESD204B建立链接的第一个阶段:码值识别。

        AD9162捕捉SYSREF的上升沿,开始识别FPGA发送的连续4个K28.5(BC)码值,识别正确后,完成第一个阶段,将SYNC信号在本地多帧时钟(Local Multi Frame Clock,简称LMFC)边沿拉高,发送至FPGA,进入第二阶段——初始化链路序列对齐。

3.3 JESD204B建立链接的第二个阶段:初始化链路序列对齐(Inital Lane Alignment Sequence,简称ILAS)。

        ILAS由四个或更多的多帧组成,每个多帧的最后一个字符是多帧对齐字符/ A/(K.28.3)(7C)。第一、第三和第四个多帧用预定的数据值填充。第二个多帧包含/R/ (K.28.0)(1C), /Q/ (K.28.4)(9C),然后是链接参数对应的数据。在这个过程中,AD9162会缓存多帧,详细后写(有时间再写)在最后一个ILAS的最后一个/A/字符之后,进入第三个阶段——数据流(也就是用户数据阶段)。

3.4 JESD204B建立链接的第三个阶段:数据流阶段。

        在这个阶段,如果用户不在JESD204B接口上发送数据,空闲状态下,每条lane会发送FC00+7C00码值。存在有效数据时,注意有效数据在每条lane上的排列顺序,发送数据即可。

附录:8b10b码表。

这篇关于Vivado JESD204B与AD9162建立通信实战总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/568343

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...