码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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]};
    
    • 1

    所以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

    在这里插入图片描述


  • 相关阅读:
    简述linux系统中软件包管理系统
    【计算机毕设之基于Java的高校毕业生就业质量数据分析系统-哔哩哔哩】 https://b23.tv/3T9UIrM
    Selenium上传文件有多少种方式?不信你有我全!
    官宣出自己的博客啦
    【JAVA刷题初阶】刷爆力扣第九弹——二叉树
    Docker环境安装OWT Server[Open WebRTC Toolkit]
    CSP-J第二轮试题-2020年-1.2题
    Android 12(S) 图像显示系统 - SurfaceFlinger GPU合成/CLIENT合成方式 - 随笔1
    猿创征文|一位.Net开发工程师的客户端技术栈的学习路线
    java服务内存说明及配置详解
  • 原文地址:https://blog.csdn.net/weixin_44630490/article/details/133980132
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号