【FPGA开发】时钟管理单元介绍与应用

Fout=(Fclk*B)/2^N。

Fclk越大,Fout(max)越大。在DAC允许的范围内,尽可能去提高Fclk的值。

将Fclk提高到125M。

从硬件角度,开发板只有一个50MHz的有源晶振。

使用Verilog的方法从50MHz得到125MHz的时钟 信号是不可能的。FPGA内部逻辑是没办法得到这样一个时钟的,没办法把我们的低频率时钟往高频率时钟去变化。使用Verilog逻辑是做不到的,即使你能做到,得到的时钟质量也很差,根本就没法用。即使某些人利用网上某些资源确实实现了倍频操作,但它是利用了FPGA内部的一些延时,门级延迟等方法得到的。得到这样的时钟质量很差,拿来作为我们DDS对于时钟精读很高的应用里面是不可行的。

使用FPGA 内部的专用电路--锁相环来实现

时钟管理器:

功能:通过GUI的界面形式,帮助用户来创建自己的时钟网络,能够基于一个输入时钟源(晶振),进行分频倍频,得到其他频率、相位、占空比的时钟信号。这个时钟管理器根据用户的设置参数,去生成配置FPGA内部的时钟管理硬件资源。

50MHz与125MHz的最小公倍数是250MHz,50*5=250,(5倍频)250/2=125(2分频)

PLL(模拟锁相环):时钟质量高一点。

以上图中配置默认即可。

第一个(单端时钟输入引脚),就是FPGA管脚上面输入的时钟信号,从我们时钟晶振输入进来的。

第二个(差分时钟输入管脚),对于一些做高速收发器,对于频率稳定性要求很高的应用一般就会用差分时钟输入管脚

由于本例只用到一个时钟输入源,所以secondary就不用勾选。假如你的板卡上面有两个晶振,一个50MHz一个30MHz,你想要在不同时刻输入其中的某一个晶振源时钟来给系统提供时钟,就可以勾选第二个时钟源。

一个时钟输入可以得到多个时钟输出,对输出的时钟可以做频率和相位的控制。如下图所示

例如clk_out1与clk_out2相位相差90度,波形如下图所示:

如下就是选择默认工作模式即可。

Locked:标志着时钟管理单元完成了对用户设置的需求的时钟信号的产生,此时的输出时钟信号就是满足要求且稳定的。

Locked信号经常作为整个系统的复位信号,如果你有复位需求就留着Locked信号。

Active High:高电平复位低电平正常工作。

Active Low:低电平复位高电平正常工作。

下面的图片可以看到倍频因子和分频因子,这都是系统自动生成好的:

在顶层当中例化生成的MMCM IP

经验分享 程序员 微信小程序 职场和发展