当前位置:网站首页>Xilinx FPGA收发器参考时钟设计应用
Xilinx FPGA收发器参考时钟设计应用
2022-08-10 17:31:00 【ltqshs】
引言:晶振是数字电路设计中非常重要的器件,时钟的相位噪声、频率稳定性等特性对产品性能影响很大。本文基于可编程晶振SI570,就Xilinx FPGA收发器输入参考时钟的硬件设计及FPGA软件设计给出设计案例,供大家参考。通过本文,可以了解到:
Xilinx FPGA收发器参考时钟设计要点
可编程晶振SI570设计方法
1.Xilinx FPGA收发器参考时钟设计要求
1.1参考时钟接口要求
FPGA收发器GTX/GTH参考时钟接口提供两种连接方式:LVDS(如图1所示)和LVPECL(如图2所示)。我们在选择晶振时,至少要支持其中一种接口输出电平标准。图2所示的电阻值为一般推荐值,实际偏置电阻值需要参考晶振手册。图1和图2中交流AC耦合电容作用:1)阻断外部晶振和GTX/GTH收发器Quad专用时钟输入管脚之间的DC电流,降低功耗;2)AC耦合电容和参考时钟输入端接构成高通滤波器,衰减参考时钟偏移;3)保持耦合电容两侧共模电压独立,互不干扰。
图1、LVDS晶振和7系列FPGA收发器参考时钟输入接口
图2、LVPECL晶振和7系列FPGA收发器参考时钟输入接口
1.2参考时钟电气特性要求
FPGA收发器参考时钟开关特性和DC特性要求分别如图3和图4所示。
图3、FPGA收发器参考时钟开关特性要求
图4、FPGA收发器参考时钟DC特性要求
2.硬件电路设计
2.1晶振选型
按照章节1中FPGA收发器参考时钟要求,我们选择Silicon labs公司的si570系列可编程晶振,该晶振典型应用SONET/SDH、10G以太网通信、时钟恢复等场合。该晶振输出特性如图6所示。
图5、SI570晶振内部功能框图
图6、SI570晶振输出特性
2.2原理图设计
FPGA收发器参考时钟晶振SI570原理图设计如图7所示。
图7、SI570原理图设计
3.SI570 FPGA软件配置及结果测试
3.1 SI570晶振配置方法
从图5中,可看到SI570控制接口采用I2C接口。我们在配置该晶振时要按照以下操作步骤进行:
1.SI570根据家族类别,器件地址都不同,故首先需要去Silicon官网查找项目选型的晶振型号对应的器件地址。举例SI570晶振型号:570BAB000544DG,该型号参数如图8所示。在该图中,我们可以得到可编程晶振的重要参数,如器件的I2C地址(0x5D),出厂默认输出频率(156.25MHz),频率范围等等。
图8、SI570出厂参数信息
2.编写FPGA软件,读出晶振SI570内部出厂默认寄存器配置字。FPGA实例工程如图9所示。
图9、SI570测试例程工程
3.根据读出的SI570内部寄存器默认配置值,FPGA I2C总线读时序图如图10所示。
图10、FPGA I2C总线读时序图
4.利用Silicon官方Programmable Oscillator Calculator软件计算出要求出频率所需的配置寄存器值。如图11所示,本设计将SI570输出频率设置为50MHz。
图11、计算SI570配置寄存器流程步骤
5.写SI570寄存器配置值。FPGA I2C总线写时序图如图12所示。
图12、FPGA I2C总线写时序图
3.2 SI570配置结果测试
在图5SI570测试例程工程中,我们还加入了SI570输出频率测试代码,以通过FPGA在线逻辑分析仪测试SI570输出频率是否达到50MHz设计输出要求。测试结果如图13所示,可以看到晶振输出结果符合设计要求。
图13、SI570输出频率测试结果
边栏推荐
- SQL优化的魅力!从 30248s 到 0.001s
- Splitting and merging long markdown documents
- perl编码转换
- WebRTC source code analysis nack detailed explanation
- requires ‘angle‘ attribute to be a multiple of 45
- 本周四晚19:00知识赋能第六期第5课丨OpenHarmony WiFi子系统
- zabbix配置触发器
- 【Web3 系列开发教程——创建你的第一个 NFT(8)】如何开发一个成功的 NFT 项目 | NFT 社区建设技巧
- FFmpeg花屏解决(修改源码,丢弃不完整帧)
- 【图像去雾】基于颜色衰减先验的图像去雾附matlab代码
猜你喜欢
随机推荐
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(中)
skywalking vulnerability learning
R语言ggplot2可视化:使用ggpubr包的text_grob函数和as_ggplot函数可视化文本段落(将指定文本段落可视化出来、指定文本段可视化为图像)、face参数指定文本的字体样式
pip安装时 fatal error C1083 无法打开包括文件 “io.h” No such file or directory
招聘分析2020.6.1
pytorch 模型GPU推理时间探讨3——正确计算模型推理时间
直播回顾|多云时代,如何建设企业级云管理平台?(附建设指南下载)
MySQL增加字段SQL语句
一颗完整意义的LPWAN SOC无线通信芯片——ASR6601
中国芯片的营收首破万亿,优势凸显的成熟工艺产能将称霸全球
未来5年的9大技术趋势
3 年 CRUD 从 8K 涨到 28K,谁知道这4个月我到底经历了什么?
不能直接在交易所期货开户
AVFrame相关api内存管理
长markdown文档的拆分与合并
MongoDB教程
Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
期货开户前要第一时间确认手续费
R语言检验时间序列的平稳性:使用fUnitRoots包中的adfTest函数检验时间序列数据是否具有平稳性(设置参数type为nc时、既不去除趋势也不进行中心化处理)
验算移位距离和假设的通用性