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

相关文章

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1