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

相关文章

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.

Java中八大包装类举例详解(通俗易懂)

《Java中八大包装类举例详解(通俗易懂)》:本文主要介绍Java中的包装类,包括它们的作用、特点、用途以及如何进行装箱和拆箱,包装类还提供了许多实用方法,如转换、获取基本类型值、比较和类型检测,... 目录一、包装类(Wrapper Class)1、简要介绍2、包装类特点3、包装类用途二、装箱和拆箱1、装

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的