AD9371 官方例程HDL详解之JESD204B RX侧格式配置及各层主要功能

本文主要是介绍AD9371 官方例程HDL详解之JESD204B RX侧格式配置及各层主要功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AD9371 系列快速入口

AD9371+ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发

采样率和各个时钟之间的关系 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (三)

参考资料:
UltraScale Architecture GTH Transceivers User Guide UG576

Generic JESD204B block designs

文章目录

  • 一、JESD204B传输层给应用层数据的格式配置
  • 二、JESD204B链路数据配置
  • 三、RX Byte and Word Alignment
  • 四、RX 8B/10B Decoder
  • 五、JESD204b 各层主要功能


一、JESD204B传输层给应用层数据的格式配置

可知 AD9371 官方 demo 2T2R 中对于RX, M=4, L=2, IQ 采样率= LINK rate ,JESD204B 应用层 如何 接收传输层数据 ?
在这里插入图片描述

在物理层GTH收发器 配置为32bit模式,链路层每个LINK CLK 需要给物理层每个 LANE 32bit数据,对于RX和RX_OS 都是各自分配2个 lane ,即各自 64bit 数据

在这里插入图片描述

每个 LANE需要 32bit数据,下述约束必须满足
L × 32 = M × N P × S P C L \times 32=M \times N P \times S P C L×32=M×NP×SPC S P C = L ∗ 32 / ( M ∗ N P ) \mathrm{SPC}=\mathrm{L}^{*} 32 /(\mathrm{M} * \mathrm{NP}) SPC=L32/(MNP)2T2R demo 中 JESD RX参数配置为 L=2; M=4; S=1; F=4; NP=16; SPC=1

每个转换器提供 SPC=1个 16Bbit 采样数据, F=4 ,4* 8=32bit ,即每帧每个lane 32bit

1T1R demo 中 JESD RX参数配置为 L=2; M=2; S=1; F=2; NP=16; SPC=2类似 TX 2T2R

对于RX_OS , JESD 参数配置为 L=2; M=2; S=1; F=2; NP=16; SPC=2类似 TX 2T2R

每个转换器提供 SPC=2个 16Bbit 采样数据 Frame0 和 Frame1拼在一起 ,每帧 F=2 ,两帧凑成 2 * 2 * 8=32bit

在这里插入图片描述

MmSn 表示 第m个转换器的第n个采样数据,

RX 2T2R L=2; M=4; S=1; F=4; NP=16; SPC=1 ;

[ M3S0, M2S0, M1S0, M0S0]

RX 1T1R L=2; M=2; S=1; F=2; NP=16; SPC=2 ;

[ M1S1, M1S0, M0S1, M0S0]

RX_OS L=2; M=2; S=1; F=2; NP=16; SPC=2 ;

[ M1S1, M1S0, M0S1, M0S0]

RX 1T1R 和 RX_OS 和TX 2T2R类似,不过多描述。RX 2T2R 如下图
在这里插入图片描述

二、JESD204B链路数据配置

RX 2T2R ,M=4,L=2,F=4,S=1, IQ 采样率= LINK rate= line rate/40 ,SPC=1

AD9371 采样接收数据后, 按下图配置组帧,通过分配的2个lane,送给FPGA解帧

在这里插入图片描述
传输层送给应用层的64bit数据adc_data, 排布如下 [ M3S0, M2S0, M1S0, M0S0]

RX 1T1R 和 RX_OS ,M=2,L=2,F=2,S=2, IQ 采样率= 2* LINK rate= line rate/20 ,SPC=2

AD9371 采样接收数据后, 按下图配置组帧,通过分配的2个lane,送给FPGA解帧

在这里插入图片描述

传输层送给应用层的64bit数据adc_data, 排布如下 [ M1S1, M1S0, M0S1, M0S0]


注意
AD9371芯片 的 TX和RX lane rate 有速率限制(UG992),lane rate 都最低614.4MHz
2T2R 时,M=4, L=2, IQ采样率 最低为15.36MHz,lane rate = 15.36 x 40= 614.4 MHz
1T1R 时,M=2, L=2, IQ采样率 最低为30.72MHz,lane rate = 30.72x 20= 614.4 MHz

RX_OS 时,M=2, L=2, IQ采样率 最低为30.72MHz,lane rate = 30.72 x 20= 614.4 MHz

在这里插入图片描述


而 由于在FPGA的GTH中, CPLL的 VCO 对工作频率有要求,在当前官方例程中,RX 和 RX_OS都选择的CPLL,其频率为 2 G-6.25G ,求最低采样率?

在这里插入图片描述

在这里插入图片描述

当 CPLL VCO 锁定频率 2.4576G (尽可能小),CPLL输出过分频器D,D取最大 =8(CPLL不支持16)

line rate (尽可能小)=(2.4576G /8)*2(上升沿和下降沿采样)=614.4MHz

2T2R 时,M=4, L=2, line rate = (IQ采样率 最低为15.36MHz x 40) =614.4MHz,

1T1R 时,M=2, L=2, line rate = (IQ采样率 最低为30.72MHz x 20) =614.4MHz,

RX_OS 时,M=2, L=2, line rate = (IQ采样率 最低为30.72MHz x 20) =614.4MHz

对于官方demo,理论上 ,AD9371侧 和 FPGA ,2T2R时,对RX 信号都支持 15.36MHz

三、RX Byte and Word Alignment

RX 在接收数据中搜索逗号(comma,K28.5 ,发射机发送的可识别的序列),当它找到逗号时,它将逗号移动到字节边界,使接收的并行字与发送的并行字匹配

在这里插入图片描述

在 CGS 阶段,发送方发送连续的 K码 (comma), 启用 RX Byte and Word Alignment ,检测到逗号时,对齐字节边界。

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

.RXMCOMMAALIGNEN (rx_calign),
.RXPCOMMAALIGNEN (rx_calign),

在这里插入图片描述

四、RX 8B/10B Decoder

发送方 根据链路配置 会进行字符替换(链路层), /F/= /K28.7/ , /A/=/K28.3/ 如下图

在这里插入图片描述

RX 8B/10B Decoder 包括用于控制功能的特殊字符(K字符)。

在这里插入图片描述

当RXDATA是K字符时,解码器将RXTRL0驱动为高电平。

在这里插入图片描述RXCTRL0[3] corresponds to RXDATA[31:24]
RXCTRL0[2] corresponds to RXDATA[23:16]
RXCTRL0[1] corresponds to RXDATA[15:8]
RXCTRL0[0] corresponds to RXDATA[7:0]

 .RXCTRL0 ({rx_charisk_open_s(未用到), rx_charisk})

在这里插入图片描述

根据标志,可以进一步判断是否 K28 字符 ,和是否为 K28.5(CGS)

在这里插入图片描述

五、JESD204b 各层主要功能

TX

传输层 :主要负责 组帧, 把八字节分配到 Lane

链路层 :主要负责加扰,字符替换,链路同步 ,LMFC,状态机管控
在这里插入图片描述
物理层 :8B/10B Encoder, 跨时钟域 (TX Buffer)

RX

传输层 :主要负责 解帧, 把接收数据传给应用层

链路层 :主要负责解扰,align,elastic buffer(确定性延时),链路同步,LMFC,状态机管控
在这里插入图片描述
物理层 :RX Equalizer(均衡), CDR(时钟恢复),眼图分析,逗号检测,8B/10B Decoder,跨时钟域(RX Elastic Buffer)

这篇关于AD9371 官方例程HDL详解之JESD204B RX侧格式配置及各层主要功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python装饰器之类装饰器详解

《Python装饰器之类装饰器详解》本文将详细介绍Python中类装饰器的概念、使用方法以及应用场景,并通过一个综合详细的例子展示如何使用类装饰器,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. 引言2. 装饰器的基本概念2.1. 函数装饰器复习2.2 类装饰器的定义和使用3. 类装饰

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java中的@SneakyThrows注解用法详解

《Java中的@SneakyThrows注解用法详解》:本文主要介绍Java中的@SneakyThrows注解用法的相关资料,Lombok的@SneakyThrows注解简化了Java方法中的异常... 目录前言一、@SneakyThrows 简介1.1 什么是 Lombok?二、@SneakyThrows

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Redis Pipeline(管道) 详解

《RedisPipeline(管道)详解》Pipeline管道是Redis提供的一种批量执行命令的机制,通过将多个命令一次性发送到服务器并统一接收响应,减少网络往返次数(RTT),显著提升执行效率... 目录Redis Pipeline 详解1. Pipeline 的核心概念2. 工作原理与性能提升3. 核