AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (二)
AD9371 系列快速入口
AD9371+ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发
ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射
AD9371 官方例程 时钟间的关系与生成 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成(一)
梳理 AD9371 时钟,理解采样率和各个时钟之间的关系 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (三)
参考资料:
UltraScale Architecture GTH Transceivers User Guide UG576
文章目录
- 前言
- 一、TXUSRCLK 和 TXUSRCLK2
- 二、TX Serial Clock 和 PMA Parallel Clock
- 三、TXOUTCLK
- 四、25 MHz clock
前言
接 AD9371 官方例程HDL详解之JESD204B TX_CLK生成 (一)
一、TXUSRCLK 和 TXUSRCLK2
TXUSRCLK2 主要负责 写数据到 TXDATA 端口,TXUSRCLK主要提供TX PCS 部分逻辑时钟。PCS中还有一个时钟域: PMA parallel clock domain (XCLK)。 TX Serial Clock是高速串行时钟。下面重点介绍TXUSRCLK和TXUSRCLK2

TXUSRCLK 和 TXUSRCLK2 之间的关系和 TX_DATA_WIDTH 、 TX_INT_DATAWIDTH 等参数有关,本例程中,TX8B10BEN=1; TX_DATA_WIDTH =40; TX_INT_DATAWIDTH =1; Internal Data Width =40;

得到
TXUSRCLK Rate = Line Rate / 40= link rate;

TXUSRCLK2 = TXUSRCLK= Line Rate / 40= link rate;

下图中TXOUTCLK 选择的 TXOUTCLKPMA , 本例中 TXOUTCLKPMA =Line Rate / (2(上升沿和下降沿都有效) x 4 x 5)=Line Rate / 40=TXUSRCLK2 = TXUSRCLK (详见下一节TX Serial Clock 和 PMA Parallel Clock),所以TXOUTCLK可以经过BUFG_GT后直接驱动TXUSRCLK2和TXUSRCLK 。

二、TX Serial Clock 和 PMA Parallel Clock

PISO模块,将并行数据转化为高速串行数据输出,PISO高速串行时钟由QPLL0/1 或CPLL 输出的信号经过D分频后生成:
f P L L C l k o u t D \frac{f_{P L L C l k o u t} }{D} DfPLLClkout
由于上升沿和下降沿都有效,
f LineRate = f P L L C l k o u t × 2 D f_{\text {LineRate }}=\frac{f_{P L L C l k o u t} \times 2}{D} fLineRate =DfPLLClkout×2
对于后续的 2或4 分频,TX_INT_DATAWIDTH = 0 为2分频;TX_INT_DATAWIDTH = 1 是4分频。
对于后续的 4或 5 分频,TX_DATA_WIDTH = 16 或 32 或 64 为4 分频;TX_DATA_WIDTH = 20 或 40 或 80 为5 分频;
本例程中TX_INT_DATAWIDTH = 1;TX_DATA_WIDTH = 40; 依次选择 4分频 和 5分频。
PISO并行时钟由TXOUTCLKPMA提供:
T X O U T C L K P M A = f P L L C l k o u t D ∗ 4 ∗ 5 TXOUTCLKPMA=\frac{f_{P L L C l k o u t} }{D*4*5} TXOUTCLKPMA=D∗4∗5fPLLClkout
可知在例程中 TXOUTCLKPMA 与 LineRate 差40倍
T X O U T C L K P M A = f LineRate 40 = T X U S R C L K = T X U S R C L K 2 TXOUTCLKPMA=\frac{f_{\text {LineRate }} }{40}=TXUSRCLK =TXUSRCLK2 TXOUTCLKPMA=40fLineRate =TXUSRCLK=TXUSRCLK2
三、TXOUTCLK

TXOUTCLK 经过 BUFG_GT后 驱动TXUSRCLK2和TXUSRCLK ,TXOUTCLK 可以根据 TXOUTCLKSEL 选择来源,根据下述程序 TXOUTCLK = 3’b011; 选择 TXPLLREFCLK_DIV1


TXPLLREFCLK_DIV1 根据 TXSYSCLKSEL选择时钟源
上述结构体中 sys_clk_sel = ADXCVR_SYS_CLK_QPLL0=3;
channel 原语赋值时:
TXSYSCLKSEL: assign tx_sys_clk_sel_s = (up_tx_sys_clk_sel[1] == 0) ? 2'b00 : {1'b1,~up_tx_sys_clk_sel[0]};
所以2’b11最低位取反,TXSYSCLKSEL = 2’b10 ;TXOUTCLK 来自于 QPLL0 的参考时钟
由上节可知 QPLL0、 QPLL1、 CPLL的参考时钟 都是 MGTREFCLK 通过 IBUFDS_GTE4后提供到channel 的 GTREFCLK0,即 ref_clk1,AD9528 的 OUT1,TXOUTCLK 来源于AD9528 的 OUT1 。

TXOUTCLKPCS 和 TXOUTCLKFABRIC 是冗余输出
TXOUTCLK 通过 BUFG_GT后 可以用作互联逻辑时钟
四、25 MHz clock
对于同步和定时,需要一个 尽可能接近25MHz的时钟 ,对于SATA OOB,必须是25MHz

25MHz 时钟由 TXPLLREFCLK_DIV1 分频产生 ,TXPLLREFCLK_DIV1 是QPLL0/1,或CPLL的参考时钟,本例程中都源于 AD9528 输出的OUT1 ,是122.88MHz, 大于100MHz ,小于 125MHz , 所以 TX_CLK25_DIV = 5 ;同理 RX_CLK25_DIV = 5 。

TX CLK25 DIV 和 RX CLK25 DIV 在 util_ad9371_xcvr ip 中 设置为5

相关文章:
AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (二)
AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…...
实用新型和发明的区别
实用新型专利:是指对产品的形状、构造或者其结合所提出的适于实用的新的技术方案,指对有具体产品结构提出的改进或创造。与发明相比,实用新型专利申请对于技术的要求更低一点,在审查的时候不会进行详细的检索和对比,授…...
Oracle通过透明网关查询SQL Server 报错ORA-00904
Oracle通过透明网关查询SQL Server 报错ORA-00904 问题描述: 只有全表扫描SELECT * 时SQL语句可以正常执行 添加WHERE条件或指定列名查询,查询语句就报错 问题原因: 字段大小写和SQLSERVER中定义的不一致导致查询异常 解决办法: 给…...
MySQL表操作—存储
建表: mysql> create table sch( -> id int primary key, -> name varchar(50) not null, -> glass varchar(50) not null -> ); Query OK, 0 rows affected (0.01 sec) 插入数据: mysql> insert into sch (id,name,…...
Android Studio Gradle中没有Task任务,没有Assemble任务,不能方便导出aar包
Gradle中,没有Assemble任务 1. 在编译aar包或者编译module的时候,没有release包,我们一般都是通过assemble进行编译。 如果在Gradle中找不到task。 可以通过设置File->setting -->Experimental→取消勾选“Do not build Gradle task …...
重复性管理--从泛值到泛型以及泛函(中)--泛函是什么及为什么
在前面, 我们探讨了泛型范式在解决重复性问题上的应用, 在这里, 将继续探讨泛函范式在解决重复性问题上的作用. 注: 关于"泛函(functional)“这一名称, 前面说了, 泛型的本质是"参数化类型”, 那么, 按照这一思路, 泛函的意思也可以理解为"函数的参数化"或…...
Arm推出Total Design生态系统,优化基于Neoverse CSS的SoC开发流程
目录 构建生态系统 将Arm架构小芯片带给大众 关于Arm Total Design的结语 我们最近报道了Arm的Neoverse CSS Genesis N2平台的发布,这是一个近乎现成的计算子系统设计,旨在加快尖端基础设施中定制加速器的上市时间。我们当时评论说,我们可…...
30天精通Nodejs--目录与说明
说明 本系列博客主要针对nodejs零基础的小伙伴,涵盖了Node.js从基础到高级的各个方面。 前置条件,有js的基础,了解css和html。 nodejs版本20.8.1。 目录 基础知识 第1天:基础介绍 第2天:模块系统与npm 第3天&#…...
如何创建前端绘图和图表?
聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...
Python基础入门例程3-NP3 读入字符串
描述 小白正在学习Python,从变量输出开始。请使用input函数读入一个字符串,然后将其输出。 输入描述: 输入一行字符串。 输出描述: 将读入的变量输出。 示例1 输入: Nowcoder 复制输出: Nowcoder…...
每日一练 | 网络工程师软考真题Day44
1、在IEEE 802.11标准中使用了扩频通信技术,下面选项中有关扩频通信技术说法正确的选项是 。 A.扩频技术是一种带宽很宽的红外通信技术 B.扩频技术就是用伪随机序列对代表数据的模拟信号进行调制 C.扩频通信系统的带宽随着数据…...
Python11-正则表达式
Python11-正则表达式 1.正则表达式简介2.正则表达式常见用法和符号3.正则查找4.re.Match对象与group5.re.compile6.正则表达式修饰符7.正则匹配规则8.正则表达式匹配练习9.正则替换10.贪婪模式和非贪婪模式 1.正则表达式简介 正则表达式(Regular Expression&#x…...
【机器学习】XGBoost
1.什么是XGBoost XGBoost(eXtreme Gradient Boosting)极度梯度提升树,属于集成学习中的boosting框架算法。对于提升树,简单说就是一个模型表现不好,继续按照原来模型表现不好的那部分训练第二个模型,依次类推。本质思想与GBDT一致…...
如何复制禁止复制的内容
今天找到一段代码,但是复制时页面提示“这个是VIP会员才有的权限”。我该怎么复制呢。 现在的平台大都是用钱说话,以便响应知识付费的主张。对错我就不说了,我认为既然我有权利看到代码,当然也有权把他复制下来。这并不涉及侵权。…...
多通道图片的卷积过程
多通道(channels)图片的卷积 如果输入图片是三维的(三个channel),例如(8,8,3),那么每一个filter的维度就是(3,3,3&#x…...
uniapp canvas 无法获取 webgl context 的问题解决
uniapp canvas 无法获取 webgl context 的问题解决 一、问题描述 在 uniapp 中做一个查看监控视频的页面,用到的是 JSMpeg 这个库,原理就是前后台通过 websocket 不断推送新画面内容到前端,前端通过这个 JSMpeg 渲染到前端页面中指定的 can…...
Spring底层原理(二)
Spring底层原理(二) BeanFactory的实现 //创建BeanFactory对象 DefaultListableBeanFactory factory new DefaultListableBeanFactory(); //注册Bean定义对象 AbstractBeanDefinition beanDefinition BeanDefinitionBuilder.genericBeanDefinition(SpringConfig.class).set…...
springboot188基于spring boot的校园商铺管理系统
项目名称:springboot188基于spring boot的校园商铺管理系统 点击这里进入源码目录 声明: 适用范围: 本文档适用于广泛的学术和教育用途,包括但不限于个人学习、毕业设计和课程设计。免责声明: 特此声明,本…...
【计网 DNS】计算机网络 DNS协议详解:中科大郑烇老师笔记 (六)
目录 0 引言1 DNS概述1.1 定义1.2 DNS域名结构1.2 域名解析步骤 🙋♂️ 作者:海码007📜 专栏:计算机四大基础专栏📜 其他章节:网络快速入门系列、计网概述、计网应用层详解、计网Web和HTTP、计网FTP、计网…...
vue 生命周期钩子函数 mounted()实例
在挂载后操作dom获取焦点。 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"w…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
