高速数字系统时钟设计-AD9516

2023-10-29

       此篇是我在学习中做的归纳与总结,其中如果存在版权或知识错误请直接联系我,欢迎留言。
PS:本着知识共享的原则,此篇博客可以随意转载,但请标明出处!    

    

        在高速数字系统中,时钟起到至关重要的作用,它决定系统工作的稳定性与准确性,尤其在包含Zynq、高速ADDA的数字系统中。在设计逻辑代码时,除了实际的算法设计HDL,设计Zynq的另一个重要方面是考虑系统内的时钟设计。基于Zynq的平台性能高度依赖于系统时钟的设计。如图1所示,在硬件平台系统时钟需要分别给Zynq、ADC和DAC三部分提供高精度时钟。

图1  系统时钟框图

        以XC7Z100作为核心的Zynq板卡时钟系统的设计基于直接和简单的原理,时钟源选用北京晶宇兴公司生产的高精度晶振,PS侧使用一只单端输出的33.33MHz有源晶振;PL端使用一只差分输出200MHz的有源晶振作为工作时钟。

晶振型号

频率

工作电压

输出

抖动

XO75-YDGRA

33.33MHz

2.5V

CMOS

5.0ps

VC75L-TDGRL

200MHz

2.5V

LVDS

1.0ps

对于高速ADDA而言,采用时钟晶振的方式限制了ADDA的灵活性,导致ADDA应用功能受限。同时高速ADC采样过程中对于采样时钟的精度要求较高,AD采集时噪声源除了自身的热噪声与量化噪声外,主要来源于时钟信号抖动产生的噪声。因此高速ADDA工作时钟使用可编程时钟芯片AD9516-1提供高质量、低抖动的时钟信号。

AD9516-1输出端口包括CMOS、LVDS和LVPECL三种模式,其内部集成了整数N频率合成器、1个压控振荡器(VCO)、2个参考输入、14个时钟驱动器、可编程驱动器和可调延迟线。

图2 AD9516-1内部结构图

如图2所示为AD9516内部结构图,AD9516-1器件可以与频率高达2.4 GHz的外部振荡器一起使用。它具有6个LVPECL输出端口,并且工作频率可以达到最大VCO速率;4个输出端口可通过配置输出寄存器设置为一路LVDS或两路CMOS输出端口。AD9516-1工作模式通过SPI串行接口配置,具有较强的灵活性。

SPI接口设计框图如图3所示,在配置数字平台中的前端模块时,配置信息可由上位机发送至PS或编写于PS侧C程序中,而后通过AXI总线协议传输至PL侧BRAM中,再经过SPI逻辑驱动代码实时监测参数更新,实现高速模块功能动态配置。

图3  SPI接口设计框图 

通过AXI总线存入BRAM的寄存器控制指令分为时钟芯片、高速ADC和DAC提供配置功能。如图4所示,本课题中为实现这一功能特为三种芯片的控制指令添加8位标识以便于FPGA根据不同标识对不同功能芯片实现配置,同时每条控制指令为32位数据,便于32或64位AXI总线协议传输。

 图4  SPI控制指令数据格式

 如图5所示为SPI写控制模块FPGA实现框图,当程序启动后处于Idle模式,表示配置功能未开始;其次在高速ADDA模块配置前配置时钟芯片AD9516-1,这样的设计可以保证时钟处于稳定状态时进行高速模数或数模转换功能。

图5  SPI写控制模块FPGA实现框图

Verilog SPI-Flash读写总线控制模块

https://blog.csdn.net/m0_37779673/article/details/118033580

AD9516-1包含了一个频率范围为2.30~2.65 GHz的内部VCO。通过配置寄存器将内部VCO设置为2.5GHz。时钟芯片AD9516-1寄存器配置值可通过图6所示软件生成,方便设计的实现。

   图6  AD9516-1芯片配置软件界面图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高速数字系统时钟设计-AD9516 的相关文章

  • 错误:“(vlog-2110) 非法引用网络”

    我在 SystemVerilog 中有一个简单的 FIFO 代码 我得到几个vlog 2110 illegal reference to net错误消息 我的错误消息后面是我的代码 错误信息 vlog work 工作 sv stats no
  • 是否有理由在 VHDL 和 Verilog 中初始化(而不是重置)信号?

    我从未初始化过信号 这样 任何缺少重置或分配的信号都将是未知的或已初始化 在一些参考代码中它们有初始化 这违背了我的愿望 此外 由于初始化不可综合 因此可能会出现模拟 综合不匹配的情况 在这种情况下有什么理由初始化信号吗 编辑 2011 年
  • 在verilog中使用for循环生成

    我试图理解为什么我们在verilog 中使用generate 和for 循环 一起使用生成和 for 循环 reg 3 0 temp genvar i generate for i 0 i lt 3 i i 1 begin always p
  • verilog模块中的reg和wire有什么区别?

    在verilog模块中我们什么时候应该使用reg以及什么时候应该使用wire 我还注意到有时输出会再次声明为 reg 例如 D 触发器中的 reg Q 我在某处读过这个 过程赋值语句的目标输出必须是 reg 数据类型 什么是程序赋值语句 我
  • Quartus Prime 中的“多个常量驱动程序”Verilog 错误

    我正在致力于用 Verilog 设计一个有限状态机来表示堆栈 该模块如下 module state machine s Enable Clock Resetn c OF Err UF Err input 2 0 s input Enable
  • Verilog 奇怪的仿真结果综合后

    我面临一个奇怪的问题 该代码适用于简单的 ALU 仅将感兴趣的代码粘贴到此处 always posedge clk or posedge rst begin if rst 1 begin mul valid shr 3 b000 end e
  • Verilog、FPGA、统一寄存器的使用

    我有一个问题 关于我正在开发的 AGC SPI 控制器在我看来奇怪的行为 它是用 Verilog 完成的 针对的是 Xilinx Spartan 3e FPGA 该控制器是一个依赖外部输入来启动的 FSM FSM的状态存储在状态寄存器它没有
  • Verilog HDL ?操作员

    什么是 用 Verilog 做什么 例如 以下命令是什么意思 input first din input 7 0 din output 127 0 parity reg 127 0 parity wire 7 0 feedback assi
  • 「Verilog学习笔记」 Johnson Counter

    专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点 刷题网站用的是牛客网 timescale 1ns 1ns module JC counter input clk input rst n output reg 3 0
  • x 和 z 值在 Verilog 中到底代表什么?

    Verilog 标准定义了四种类型的位值 0 1 x 和 z 其中 0 表示低 1 表示高 x 表示未知 z 表示未驱动网络 有几个问题 x 是否意味着我们不知道该值是 0 还是 1 0 或 1 或 z 或者该值是未知的并且可以是 0 1
  • 用于 Verilog 或 SystemVerilog 的 TAP(测试任何协议)模块

    是否有 TAP 测试任何协议 http testanything org Verilog 的实现 那就太好了 因为这样我就可以使用证明来自动检查我的结果 更新 10 9 09 有人问为什么不使用断言 部分 TAP 为我提供了一些很好的报告
  • 如何在RTL中使用时钟门控?

    我正在对一些时钟进行门控latch以及我设计中的逻辑 我在综合和布局布线方面没有太多经验 在 RTL 中实现时钟门控的正确方法是什么 示例1 always comb begin gated clk clk latch update en e
  • if 语句导致 Verilog 中的锁存推断?

    我正在编写用于合成算法的 Verilog 代码 我对哪些情况可能导致推断锁存器有点困惑 下面是这样的一段代码 虽然它在模拟中工作得很好 但我担心它可能会导致硬件问题 always b1 or b2 b1 map b2 map m1 map
  • 如何将时钟门映射到技术库单元

    我的设计中有以下时钟门 module my clkgate clko clki ena Clock gating latch triggered on the rising clki edge input clki input ena ou
  • 在 Verilog 中判断总线是否包含单个 x 的最佳方法是什么?

    我有一个监控总线的测试台 总线内的一些信号 位 可以是 1 bx 由于多种原因 我需要知道总线内是否有任何信号是 1 bx 如果总线包含任何 x 测试 不用于综合 仅用于模拟目的 的最佳方法是什么 我曾希望我可以使用减少或然后使用 但这似乎
  • 在测试台中显示信号名称/文字

    是否可以在 Verilog 中引用 显示信号的名称 文字 对于在 Verilog 测试台中创建通用信号检查功能来说 这将是一个有用的功能 我知道使用 display 时 m 将打印信号的范围 是否有显示信号名称的等效项 在 Verilog
  • 在 Verilog 程序中使用连续分配?

    在 Verilog 程序中使用连续赋值是否可能和 或有用 例如 是否有任何理由将assign里面一个always堵塞 例如这段代码 always begin assign data in Data end 此外 是否可以用这种方法生成顺序逻
  • 具有内部赋值延迟的阻塞和非阻塞语句之间的区别

    以下 2 个 verilog 代码片段有什么区别 1 always in out 5 in AND 2 always in out lt 5 in 考虑到always块中不存在其他行 输出会有什么不同吗 问题参考幻灯片 16 参见 o5 和
  • 如何在 icarus verilog 中包含文件?

    我知道基本的 include filename v 命令 但是 我试图包含另一个文件夹中的模块 现在 该模块还包括同一文件夹中存在的其他模块 但是 当我尝试在最顶层运行该模块时 出现错误 C Users Dell Desktop MIPS
  • 为什么我们在FGPA / VHDL / VIVADO中使用REG?

    我正在使用 Xilinx 的 vivado 在 verilog 中进行编程 我想知道为什么我们使用某些输出reg 例如reg 3 0 encoder output我们使用它是因为我们的 16 到 4 编码器有 4 个输出 对吧 我假设我们使

随机推荐

  • 程序员工作交接文档怎么写_程序员如何优雅的做好离职交接工作?

    1背景 某项目负责人离职 仅在离职前不到一周工作交接给我 该项目特点 1 所有参与人员尽数几乎全部离职 2 项目开始时间 2012年 数易版本 已经4年多的大项目 3 涉及模块众多 部署文档已经没有最新的 4 有Git版本管理 但资料不全且
  • 三极管驱动电路(扩充单片机的输出电流)

    常见的三极管驱动有两种结构 共射极输出 共集电极输出 I 共射极输出 PNP 要求输入的动态范围要大 而且输出的电压范围永远比输入小0 7V 射极输出电路就不能有效的利用 5V的电源 实际上 加到继电器上的电压 不足 4V 除非是使用4V的
  • 2.2 Git 基础 - 记录每次更新到仓库

    2 2 Git 基础 记录每次更新到仓库 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 19 初稿 目录 文章目录 2 2 Git 基础 记录每次更新到仓库 版本说明 目录 记录每次更新到仓库 Figure 8 文件的状
  • Android自定义View --- 绘制圆环

    Android自定义View实现很简单 继承View 重写构造函数 onDraw onMeasure 等函数 如果自定义的View需要有自定义的属性 需要在values下建立attrs xml 在其中定义你的属性 在使用到自定义View的x
  • C/C++内存泄漏的原因以及怎么解决

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 背景 一 malloc后未释放 二 未匹配 背景 提示 这里可以添加本文要记录的大概内容 C C 编程语言中 内存的分配与回收都是由开发人员主动进行的 比如使用ma
  • EJBCA操作说明(一)ejbca web界面操作

    java代码操作ejbca链接 1 EJBCA介绍 EJBCA是一个全功能的CA系统软件 它基于J2EE技术 并提供了一个强大的 高性能 可升级并基于组件的CA EJBCA兼具灵活性和平台独立性 能够独立使用 也能和任何J2EE应用程序集成
  • 音视频不同步问题的原因和解决方案

    FAQ 在播放视频的时候 尤其是网络视频或者高清视频 会有视频画面和对应的声音信息不同步的问题 这样的问题原因在哪里 如何解决 Resolve 避免音视频不同步现象有两个关键 一是 在生成数据流时要打上正确的时间戳 如果数据块上打的时间戳本
  • Tip of the Week #61: Default Member Initializers

    Tip of the Week 61 Default Member Initializers Originally posted as Totw 61 on Nov 12 2013 by Michael Chastain mec deskt
  • Latex证明环境 白方块和黑方块

    仅供个人学习使用哦 在要添加证明结束白色小方块的地方添加如下LATEX代码 hfill square 这样效果是在一行的末尾 以下是我从互联网上找到的相关资料 其中 1 proof环境 begin proof end proof 会在证明部
  • 湖南对口计算机专业综合试题答案,湖南对口高考计算机专业综合试题汇总.doc...

    湖南对口高考计算机专业综合试题汇总 doc 湖南对口高考计算机专业综合试题汇总目录湖南省2008年普通高等学校对口招生考试1湖南省2009年普通高等学校对口招生考试计算机应用类专业综合知识试卷16湖南省2010年普通高等学校对口招生考试26
  • 「AR裸眼插画」零基础保姆级教程来啦

    使用Kivicube AR在线制作平台 新手也能5分钟制作出同款超震撼 AR裸眼插画 观看Kivisense吉祥物伊弥戟透过手机屏幕打破次元壁来到真实世界 我们准备了视频与图文两个版本的超详细保姆级教程 方便用户快速上手 那么话不多说现在我
  • 景安 虚拟主机 自有SSL证书

    最近研究ios 跳转的 ios universal link 需要https协议的 景安原本可以直接搞免费的SSL证书的 这个下线很长时间了 但是有一个自有证书部署的功能 我平时也就是测试用免费的就可以了 在这个网站申请了 https le
  • T3管理系统服务器空白是怎么回事,t3服务器设置是空白

    t3服务器设置是空白 内容精选 换一换 登录VR云渲游平台 通过创建集群部署平台管理能力 实现对GPU资源 应用以及设备的管理及调度 通过创建应用操作将步骤二 应用内容上云中上传至OBS桶的应用内容部署至GPU云服务器 为提高配置效率 本节
  • ZZULIOJ 1008: 美元和人民币(C/C++)

    1008 美元和人民币 题目描述 美元越来越贬值了 手上留有太多的美元似乎不是件好事 赶紧算算你的那些美元还值多少人民币吧 假设美元与人民币的汇率是1美元兑换6 5573元人民币 编写程序输入美元的金额 输出能兑换的人民币金额 输入 输入一
  • 基于selenium的网易邮箱自动登录获取邮件内容(混杂request\urllib)

    目录 前言 selenium介绍 环境配置 selenium抓取 检查网页 程序实现 前言 163邮箱的访问基于urllib进行爬取时需要自己从网页拿取cookie 但这个cookie是动态的 如果想实时对邮箱进行检查是否有新邮件 cook
  • html怎么引入图片,html怎么引入图片?

    本文介绍了在html中插入图片的方法 主要使用了html中的img标签 通过指定src属性即可插入图片 下面我们就来学习下吧 html怎么引入图片 html中插入图片可以使用img标签来实现 1 新建html文件 如图所示 在body标签中
  • Django、数据库----------ORM框架

    目录 1 安装第三方模块 2 ORM 1 自己创建数据库 2 django连接数据库 3 django操作表 创建表 在models py文件中 删除表以及修改表 在表中新增列时 由于已存在列中可能已有数据 所以新增列必须要指定新增列对应的
  • 离职跳槽,你想清楚了吗?

    近期身边的一个同事提出离职 无论从其个人职业发展 近期的形势 还是他离职要解决的问题来看 这个时候离开并不是一个好的选择 最终还是没有挽留下来 非常之遗憾 此前 也写过一篇工作的思考 读者可以移步阅读 小作文 非技术贴 天下熙熙攘攘 皆为利
  • linux 命令记录

    目录 查看某个文件或目录占用的磁盘空间大小 主要命令 du 可以断点续传的 scp 查看某个文件或目录占用的磁盘空间大小 主要命令 du du ah max depth 1 a 表示目录下所以的文件和文件夹 h 表示人类能看懂的方式 max
  • 高速数字系统时钟设计-AD9516

    此篇是我在学习中做的归纳与总结 其中如果存在版权或知识错误请直接联系我 欢迎留言 PS 本着知识共享的原则 此篇博客可以随意转载 但请标明出处 在高速数字系统中 时钟起到至关重要的作用 它决定系统工作的稳定性与准确性 尤其在包含Zynq 高