软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! 6.1概述 使用 FPGA 的高速串行收发器(GTP、GTX 等)设计不同传输速率的高速接口时,往往需要收发器所在 BANK 的差分参考时钟引脚提供不同频率的参考时钟输入。例如,1G-BASEX:125M,Display Port :135M,SATA :120M, 3G-SDI:148.5M,10G-BASER:156.25M。收发器的参考时钟一般都直接由差分晶振所提供。 为了提高 MIZ7035 开发板 GTX 使用的灵活性,在底板中搭载了 1 款频率可编程的差分晶振 Si570,将其输出作为GTX Bank 的参考时钟。 MIZ7035 所使用的 Si570 的输出频率可在 10~810M 之间进行任意调节。通过 I2C 接口对其内部寄存器进行设置,用户便可以获得所需要频率的时钟。可以更好的满足不同应用场合、不同类型和传输速率的高速接口对于参考时钟频率的要求。 本教程介绍了 Si570 的工作原理以及使用方法,通过 PS 的 I2C 接口实现对Si570 时钟输出频率的动态配置,同时,通过 PL 粗略测算所设置频率的值是否正确。本教程参考了 Xilinx KC705 开发板的参考设计rdf0194-kc705-si570-prog-c-2014-3 以及 xtp204-kc705-si570-prog-c-2014-3。
6.2 Si570 介绍 6.2.1基本结构
Si570 的内部结构如下图所示。 其输出就是由晶振内部振荡器产生的固定频率为 fXTAL 的时钟经过 1 次倍频和 2 次分频而获得。输出时钟频率 fout 的计算公式为: 输出时钟频率fout 由 fDCO 和输出分频系数所决定。 fDCO=fXTAL×RFREQ 其中,晶振内部振荡器产生的时钟频率 fXTAL≈114.285000000MHz。需要说明的是,fXTAL 不是一个完全准确的值,由于生产工艺的限制,对于每一个晶振,fXTAL 都会存在细微的差别。RFREQ 是 38bit 的倍频系数,其高 10bit 为整数,低 28bit 为小数。由于fDCO 的可设置范围为 4.85G~5.67GHz,因而倍频系数RFREQ 也有一个固定的范围。另外,HSDIV 为 3bit 的分频系数,N1 为 7bit 的分频系数,两者均为整数。 简而言之,对于用户来说,在 Si570 上获取所需要频率的时钟就是通过I2C 接口对上述公式中的RFREQ、HSDIV 和 N1 共 3 项参数进行设置。 每个 Si570 都有一个默认的上电频率和 I2C 地址,两者都是可选的,具体组合和型号对应关系可以咨询生产商。在出厂时,这两个默认值都写入其内部的 Flash 里,用户后续都无法更改。晶振虽然可以在上电状态下通过 I2C 设置改变输出频率,但是重新上电后又会从 Flash 里加载出厂设置输出默认的上电频率。 6.2.2 寄存器 Si570 内部的寄存器如下图所示。其中我们只需要关注。寄存器 7~12,以及 135、137。 6.2.2.1 寄存器 7、8 寄存器 7 和寄存器 8 的 bit[7:6]用于设置分频系数HSDIV 和N1。具体含义如下图所示。 6.2.2.2 寄存器 8~12
寄存器 8~12 用于设置 38bit 的倍频系数RFREQ。
6.2.2.3 寄存器 135 寄存器 135 的定义如下图所示。该寄存器主要用于晶振的控制,在重新配置晶振的频率的过程中一般只需要用到 bit6。 6.2.2.4 寄存器 137 寄存器 137 定义如下图所示。该寄存器用于锁住 DCO 的频率。在对晶振频率进行重新设置时必须用到这个寄存器。 6.3使用方法 6.3.1参数计算原理 晶振上电后以默认频率输出时钟。此时若需要改变输出频率,首先,需要计算需要设置的倍频系数 RFREQ、以及分频系数 HSDIV 和 N1。对于参数计算需要分 2 种情况进行讨论。以 DCO 的中心频率±3500ppm(±0.35%) 范围作为划分。如下图所示。 第一种情况,当晶振输出频率更改所造成的 fDCO 变化在 fDCO 中心频率的±3500ppm(±0.35%) 范围内。则只需要对倍频系数 RFREQ 进行重新设置就可以直接改变输出频率。晶振工作不会造成中断,输出频率进行动态改变。新的倍频系数 RFREQ 计算方法如下: 例如,输出频率从 148.35MHz 变为 148.5MHz。新倍频系数RFREQ 计算过程如下:
关注米联客扫描关注,了解最新资讯
资讯幻灯片
热门评论
热门专题
排行榜
|