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将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义