最近在做一个项目,其中有涉及时钟芯片AD9516的硬件设计和软件编程,有些使用心得,供大家参考讨论。

AD9516,这是一个由ADI公司设计的14路输出时钟发生器,具有亚皮秒级抖动性能,还配有片内集成锁相环(PLL)和电压控制振荡器(VCO)。片内VCO的调谐频率范围为2.55 GHz至2.95 GHz。或者,也可以使用最高2.4 GHz的外部VCO/VCXO。关于资料的获取:1.ADI公司的中文技术支持网站做的非常好,可参考AD9516_0的链接:http://www.analog.com/cn/products/clock-and-timing/clock-generation-distribution/ad9516-0.html#product-overview,好好看里面的手册和参考资料,基本就没什么问题;2.关于AD9516芯片的配置,可参考链接:http://forum.eepw.com.cn/thread/228366/1,里面有相应的工具下载和说明参考,建立在理解的基础上就很简单啦。

AD9516有6路(3对)LVPECL输出,4路(2对)LVDS输出以及8路LVCMOS(每个LVDS可以作为2路LVCMOS)输出。每对之间共享数值为1-32的分频数值,因此,每对LVPECL或者LVDS输出的时钟频率是相同的。LVPECL输出可达1.6GHz,LVDS输出可达800MHz,LVCMOS可达250MHz。输入参考时钟频率和VCO工作频率有如关系: Fvco=(Fref/R)*(P*B+A) 

每路输出还有单路的分频因子(1-32)可以配置,通过参考时钟的选择,内部P、B、A寄存器以及每路分频寄存器的配置,可以得到我们想要的时钟。

给出一个参考原理图电路,和对应配置图:

 

原理图绘制时需要重点注意LVPECL和LVDS输出不同,需要接下拉电阻;还有REFSEL是对REF1和REF2的选择接口,需要特别注意,毕竟硬件设计需要我们的细心O(∩_∩)O。

在配置AD9516芯片时,我用的是XLINX的XC3S200AN,verilog语言,配置的流程主要是:1.根据手册弄清各个接口的意义,比如同步接口,使能端等;2.搞清每个寄存器的含义,着重关注分频寄存器;3.关注读写配置时序图,写出对应状态机。

关于分频寄存器举个例子:


          给每个寄存器赋值,具体寄存器的含义参考手册。

       Fvco=(Fref/R)*(P*B+A);  Fref=100M   ;     R=24’h0011_0A;R=10,P=16,B=15;

A1=0->2.4G

       Divider0=24’h01E1_01(3分频)----->800M

       LVPECL : 24’h0190/3/6_11(4分频)----->200M;33(8分频)----->100M;55(12分频)----->66.7M

关于AD9516芯片的硬件设计和FPGA程序编写心得的更多相关文章

  1. 实时人工智能:微软发布Project Brainwave预览版 现场可编程门阵列(Field Programmable Gate Array,简称FPGA) 硬件设计可以迅速演进

    https://mp.weixin.qq.com/s/bAPiPURZd-YsbV5PbzwpQQ 编者按:随着各大公司对于数据计算的要求越来越高,实时AI成为了研究者们关注的重点.在美国西雅图举行的 ...

  2. 数字逻辑实践4->面向硬件电路的设计思维--FPGA设计总述

    本文是对实验课上讲解的"面向硬件电路的设计思维"的总结,结合数字逻辑课本,进行提炼和整理. 主要来源是课件与本人整理,部分参考了网络大佬的博客. 本文主要介绍不同于之前软件设计思维 ...

  3. FPGA芯片内部硬件介绍

    FPGA芯片内部硬件介绍 FPGA(Filed programmable gate device):现场可编程逻辑器件 FPGA基于查找表加触发器的结构,采用SRAM工艺,也有采用flash或者反熔丝 ...

  4. 关于 FPGA 和 外部芯片接口时序设计

    在看这篇文章之前, 建议先好好读下这篇文章.http://download.csdn.net/detail/angelbosj/8013827. 因为我不太会用 VISio.要是哪位网友能告诉我.怎么 ...

  5. 定点CORDIC算法求所有三角函数及向量模的原理分析、硬件实现(FPGA)

    一.CORDIC算法 CORDIC(Coordinate Rotation DIgital Computer)是一种通过迭代对多种数学函数求值的方法,它可以对三角函数.双曲函数和平面旋转问题进行求解. ...

  6. Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)

    在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的.写那篇文章的目的,是想彻底的了解从硬件到驱动 ...

  7. USB2.0学习笔记连载(六):USB2.0硬件设计需要注意事项

    笔者在设计USB2.0时找到了一个官方给的硬件设计正确设计指南,其中有些内容还挺nice的.不单单只是USB的设计,其中有些思想可以应用到其他的场合中. 对于USB2.0而言,全速状态下可以达到480 ...

  8. 硬件设计原理图Checklist 参考案例二 【转载】

    类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...

  9. 硬件设计--DC/DC电源芯片详解

    本文参考:http://www.elecfans.com/article/83/116/2018/20180207631874.html https://blog.csdn.net/wangdapao ...

随机推荐

  1. 解决md5不是windows平台FIPS验证的加密算法的一部分的怪异问题

    一. 发生问题 临近下班时间的下午,领导一句话:项目先上到测试服吧,我明早来看看. 我想项目还没做完,先上到测试服务器,简单看下应该是没什么问题,部署也只是一会儿的事嘛,随后把手头的项目编译,发布,拷 ...

  2. iOS·官方文档译文框架源码注解

    导语

  3. React的学习(下)

    摘要 众所周知,前端三大框架Angular.React.Vue,所以为了跟上时代的步伐,最近开始着手学习React,这时候就发现个大问题,框架一直在更新,提倡的编写语法也在更新,网上有许多教程都是一两 ...

  4. DbVisualizer:Oracle触发器,解决ORA-04098: 触发器 'USER.DECTUSERTEST_TRI' 无效且未通过重新验证

    我没有用orcal的管理工具,而是用的DbVisualizer 9.5.2,管理数据库. 场景:需要在oracle里面实在自增字段,在网上一搜一堆文档,然后自己就找了一段自己写如下: drop tab ...

  5. python——面向对象进阶

    类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的 ...

  6. bzoj4818 [Sdoi2017]序列计数

    Description Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数.Alice还希望,这n个数中,至少有一个数是质数.Alice想知道,有多少个序 ...

  7. 如何使用angular-ui的弹出框

    在开发项目时,我们经常性的会遇到弹出框的需求,例如登陆,注册,添加信息等等....面对这一需求,我们当然也可以使用自己的双手进行编写,如果你时间充足可以试试. 今天我们讲解一下如何在angular框架 ...

  8. php框架之我见:php开发到底需不要用框架?

    本来就很好,结果无论软件CMS还是各种框架,都自己制造一套自己的规则! 关键还不通用! 我学PHP语法 语义累了半年好不容易熟悉,结果学个框架又学半年,然后框架升级或者去学其他框架,之前学的又等于没用 ...

  9. 学习MVC之租房网站(七)-房源管理和配图上传

    在上一篇<学习MVC之租房网站(六)-用户登录和权限控制>完成了后台用户登录和权限控制功能的开发,接下来要完成的是房源的管理,用户在后台新增.编辑房源信息,供前台用户操作. 一 房源管理 ...

  10. Hbase的架构原理、核心概念

    Hbase的架构原理.核心概念 1.Hbase的表.行.列.列族 2.核心组件: Table和region Table在行的方向上分割为多个HRegion, 一个region由[startkey,en ...