AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (一)

AD9371 系列快速入口

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

ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射

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

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

文章目录

  • 前言
  • 一、AD9528 与 MGTREFCLK
  • 二、QPLL 和 CPLL 的 Reference Clock
  • 三、通过QPLL 或 CPLL 得到 LineRate


前言

AD9371 官方例程HDL 中 TX 侧各个时钟的产生,与采样率之间的关系

后续见 AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (二)

一、AD9528 与 MGTREFCLK

在这里插入图片描述
ADRV9371-W/PCBZ上的 AD9528 OUT1(B20、21)、2(D04、05)、3(G36 、37)通过FMC 连接入FPGA中,OUT2后续未使用,OUT12、13提供给 AD9371 使用

set_property  -dict {PACKAGE_PIN  V8   } [get_ports ref_clk0_p]    ; ## D04  FMC_HPC0_GBTCLK0_M2C_C_P
set_property  -dict {PACKAGE_PIN  V7   } [get_ports ref_clk0_n]    ; ## D05  FMC_HPC0_GBTCLK0_M2C_C_N
set_property  -dict {PACKAGE_PIN  T8   } [get_ports ref_clk1_p]    ; ## B20  FMC_HPC0_GBTCLK1_M2C_C_P
set_property  -dict {PACKAGE_PIN  T7   } [get_ports ref_clk1_n]    ; ## B21  FMC_HPC0_GBTCLK1_M2C_C_N

BANK 226和BANK 227各是一个Quad,ref_clk0 后续未使用,即后续FPGA中参考时钟使用的是BANK 227 的MGTREFCLK0
在这里插入图片描述

  IBUFDS_GTE4 i_ibufds_rx_ref_clk (.CEB (1'd0),.I (ref_clk0_p),.IB (ref_clk0_n),.O (ref_clk0),.ODIV2 ());IBUFDS_GTE4 i_ibufds_ref_clk1 (.CEB (1'd0),.I (ref_clk1_p),.IB (ref_clk1_n),.O (ref_clk1),.ODIV2 ());
...
...
system_wrapper i_system_wrapper (.rx_ref_clk_0 (ref_clk1),.rx_ref_clk_2 (ref_clk1),
....tx_ref_clk_0 (ref_clk1),

在这里插入图片描述
ref_clk 先通过 IBUFDS_GTE4, 使用O输出提供给GTHE3/4_CHANNEL 和
GTHE3/4_COMMON

二、QPLL 和 CPLL 的 Reference Clock

对于BANK 226和BANK 227的MGTREFCLK0 和 MGTREFCLK1(两个BANK都未使用),QPLL0 的可选参考时钟源 GTREFCLK00 是MGTREFCLK0 通过 IBUFDS_GTE4 后提供的,GTREFCLK10 是MGTREFCLK1(不能使用) 通过 IBUFDS_GTE4 后提供的;

QPLL1 的可选参考时钟源 GTREFCLK01 是MGTREFCLK0 通过 IBUFDS_GTE4 后提供的,GTREFCLK11 是MGTREFCLK1(不能使用) 通过 IBUFDS_GTE4 后提供的
在这里插入图片描述
程序中 QPLL0 和 QPLL1 的 QPLL0REFCLKSEL 都选择了MGTREFCLK0 通过 IBUFDS_GTE4 后提供的参考时钟

  .QPLL0REFCLKSEL (3'b001),.QPLL1REFCLKSEL (3'b001),

在这里插入图片描述
同理,而CPLL 的可选参考时钟源 GTREFCLK0 是MGTREFCLK0 通过 IBUFDS_GTE4 后提供的,GTREFCLK1 是MGTREFCLK1(不能使用) 通过 IBUFDS_GTE4 后提供的;

  .CPLLREFCLKSEL (3'b001),

程序中每个CHANNEL 的 CPLL0REFCLKSEL 都选择了MGTREFCLK0 通过 IBUFDS_GTE4 后提供的参考时钟

在这里插入图片描述
官方例程中使用了4个CHANNEL(可扩展),GTHE3/4_CHANNEL 和 GTHE3/4_COMMON 使用的是 BANK 226里的,MGTREFCLK使用的是BANK 227 的MGTREFCLK0,即上图中的模式,其他Quad的MGTREFCLK 通过 IBUFDS_GTE4后提供给本Quad里的 CPLL 和 QPLL 作为参考信号

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

完成的布局布线也符合上述说明

三、通过QPLL 或 CPLL 得到 LineRate

在这里插入图片描述
通过CPLL或者QPLL产生的信号经过选择器后进入T/RX clock divider (1, 2, 4, 8, 16)得到 Lane 时钟,根据不同的TX Clock Dividers 和 RX Clock Dividers ,在同一个 CHANNEL 里 TX_LineRate 可以不同于 RX_LineRate(整数)
在这里插入图片描述
在这里插入图片描述
由于 PLL CLKOUT 的上升沿和下降沿都有效,LineRate 如下图所示,D是Clock Dividers

在这里插入图片描述
QPLL0/1 同理类似
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对于 QPLL0/1 或者 CPLL ,LineRate 都如下所示
在这里插入图片描述

未完,后续见 AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (二)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux nginx1.24.0安装

nginx高性能web服务器,可作为一般http应用转发,也可以做mySql、redis、zk、rabbit MQ等tcp数据流转发。 常用Linux服务系统centos和ububtu 只是安装命令不同 yum/apt-get,流程和依赖包是一样的安装方式 1、下载nginx安装包tar.gz官方下载地…

RabbitMQ基础篇 笔记

RabbitMQ 余额支付 同步调用 一步一步的来,支付业务写完后,如果之后加需求,还需要增加代码,不符合开闭原则。 性能上也有问题,openfeign是同步调用,性能太差。 同步调用耦合太多。 同步的优势是可以立…

网站、小程序常见布局样式记录

文章目录 🎀前言:🐕网页样式展示小程序:《携程网》🎀持续更新... 🎀前言: 本篇博客会收藏一些作者见到的网页、小程序页面,目的是用来寻找制作项目网页页面的灵感,有需要…

mysql第一篇---索引

文章目录 mysql第一篇---索引索引的数据结构为什么使用索引?索引的及其优缺点InnoDB中索引的推演常见的索引概念InnoDB的B树索引的注意事项MyISAM中索引方案索引的代价MySQL数据结构选择的合理性 mysql第一篇—索引 索引的数据结构 为什么使用索引? 索…

修炼k8s+flink+hdfs+dlink(六:学习k8s-pod)

一:增(创建)。 直接进行创建。 kubectl run nginx --imagenginx使用yaml清单方式进行创建。 直接创建方式,并建立pod。 kubectl create deployment my-nginx-deployment --imagenginx:latest 先创建employment,不…

华为OD 高效的任务规划(200分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…

紫光展锐携中国联通完成RedCap芯片V517孵化测试

近日,紫光展锐携手中国联通5G物联网OPENLAB开放实验室(简称“OPENLAB实验室”)共同完成RedCap芯片V517创新孵化,并实现在联通5G全频段3.5GHz、2.1GHz、900MHz下的端到端业务验证测试。 V517是一款基于紫光展锐5G成熟平台设计与研发…

oninput和onchange事件有什么区别以及使用场景

oninput和onchange都是常见的表单元素的事件&#xff0c;它们的区别在于触发的时机不同。 oninput事件会在表单元素的值发生变化时立刻触发&#xff0c;无论是通过键盘输入、粘贴、剪切、拖拽等方式&#xff0c;都能实时响应。比如&#xff1a; <input type"text&quo…

Java反射实体组装SQL

之前在LIS.Core定义了实体特性&#xff0c;在LIS.Model给实体类加了表特性&#xff0c;属性特性&#xff0c;外键特性等。ORM要实现增删改查和查带外键的父表信息就需要解析Model的特性和实体信息组装SQL来供数据库驱动实现增删改查功能。 实现实体得到SQL的工具类&#xff0c…

DOS攻击-ftp_fuzz.py

搭建FTP 使用AlphaFuzzer的FTPFUSS进行攻击 挖掘漏洞&#xff0c;自动用特殊字符看能不能把服务器崩掉 这些都是测试的目录 不能随意使用&#xff0c;可能会把C盘内容清掉 也可以自己写脚本测试下

二叉排序树(BST)

二叉排序树 基本介绍 二叉排序树创建和遍历 class Node:"""创建 Node 节点"""value: int 0left Noneright Nonedef __init__(self, value: int):self.value valuedef add(self, node):"""添加节点node 表示要添加的节点&quo…

使用CMakeLists.txt简化项目构建过程

在软件开发过程中&#xff0c;项目的构建是一个不可避免的环节。而随着项目规模的增大&#xff0c;手动管理编译过程变得越来越繁琐。为了简化构建流程并实现跨平台支持&#xff0c;CMake作为一种流行的构建系统被广泛采用。本文将介绍CMakeLists.txt文件的结构&#xff0c;以及…

读书笔记:Effective C++ 2.0 版,条款28(namespace )

条款28: 划分全局名字空间 namespace 作为前缀&#xff0c;防止不同名字域的类型、常量等互相污染。 没命名的名字空间一般用于限制名字空间内部元素的可见性。 namespace sdm {const double book_version 2.0;class handle { ... };handle& gethandle(); }早期用struct模…

使用序列化技术保存数据 改进 IO流完成项目实战水果库存系统

上一节内容是 使用IO流完成项目实战水果库存系统https://blog.csdn.net/m0_65152767/article/details/133999972?spm1001.2014.3001.5501 package com.csdn.fruit.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java…

springMvc的简介

1.说说你对 SpringMVC 的理解 SpringMVC 是基于对java EE servlet的封装&#xff0c;它是轻量级MVC 框架&#xff0c;它是Spring下的一个模块&#xff0c;我们通过编写一个方法实现对应的handler&#xff0c;一个servlet 请求 2.什么是MVC模式&#xff1f; MVC全名是Model V…

Vue单文件组件

一、.vue文件 我们使用Vue的单文件组件的时候&#xff0c;一个.vue文件就是一个组件。 例如我们创建一个School组件&#xff1a; 二、组件的结构 我们编写网页代码的时候有HTML结构、CSS样式、JS交互。 组件里也是同样存在这三种结构的&#xff1a; <template><d…

System verilog从Testbench中dump出所需要的数据代码

下面是一个System verilog的dump示例代码&#xff1a; define DUMP_PATH $sformatf("./dump/") define CHO_DEINTERLEAVER ldpc_decoder_top_tbch.fec_ofdm_top.fec_ofdm_top_0.de_interleaver initial beginch0_file_ptr_data $fopen($sformatf("%sdump_ch0_…

lodash常用方法合集

安装lodash 建议安装lodash-es&#xff0c;lodash-es 是 lodash 的 es modules 版本 &#xff0c;是着具备 ES6 模块化的版本&#xff0c;体积小。按需引入。 示例 npm i lodash-es import { chunk,compact } from lodash-es; /**按需引入*/ 1.chunk 数组分组 chunk(arra…

redis一主一从搭建

1.复制一份redis.conf并将6380都改成6379 [redist3-dtpoc-dtpoc-web06 conf]$ cp redis.conf redis_6380.conf [redist3-dtpoc-dtpoc-web06 conf]$ vi redis_6380.conf port 6380 daemonize yes pidfile "/home/redis/redis/logs/redis_6380.pid" logfile "/hom…

(十一)Python模块和包

前面章节中&#xff0c;我们已经使用了很多模块&#xff08;如 string、sys、os 等&#xff09;&#xff0c;通过向程序中导入这些模块&#xff0c;我们可以使用很多“现成”的函数实现想要的功能。 那么&#xff0c;模块到底是什么&#xff0c;模块内部到底是什么样子的&…