您的位置:首页 > 编程语言

基于FPGA PLL锁相环实现及示波器波形失真分析

2017-08-30 21:41 666 查看
在看前,建议先看【Cyclone_IV_器件中的时钟网络与 PLL.pdf

PLL具有时钟倍频和分频、相位偏移、可编程占空比、外部时钟输出,进行系统级的时钟管理和偏移控制功能。

PLL常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟频率更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出和建立时间。

时钟控制模块输入

输入说明
专用时钟输入专用时钟输入管脚能够驱动时钟或者全局信号,例如:同步与异步清零、预置,或者给定 GCLK 上的时钟使能。
两用时钟(DPCLK与CDPCLK)I/O输入DPCLK 与 CDPCLK I/O 管脚都是双向双重功能管脚,通过 GCLK 用于高扇出控制信号,例如:协议信号、用于 PCI 的 TRDY IRDY 信号。如果时钟控制模块具有由两用时钟 I/O 管脚驱动的输入端,则该时钟控制模块将不能够驱动 PLL 输入端。
PLL 输出PLL 计数器输出能够驱动 GCLK。
内部逻辑通过逻辑阵列布线驱动 GCLK,以使能内部逻辑单元 (LE) 来驱动高扇出,低偏移的信号路径。如果时钟控制模块具有由内部逻辑驱动的输入端,则该时钟控制模块将不能够驱动 PLL 输入端。
在 Cyclone IV 器件中,专用时钟输入管脚、PLL 计数器输出、两用时钟 I/O 输入和内部逻辑都可用于驱动每个 GCLK 的时钟控制模块。反过来,时钟控制模块上的输出也能够驱动相应的 GCLK。如果时钟控制模块输入是另一个 PLL 或者专用时钟输入管脚的输出,那么 GCLK 能够驱动 PLL 输入。

操作过程,直接看黑金教学教程就行,已经很详细了,我只想贴一下我的实验结果。

补充一下实验过程:









因为我用的cyclone IV E的时钟是50MHz的,PLL有四种工作模式,在这里选择in normal mode.



输入输出信号选择,默认就行。











同理设置clk c1 c2 c3,分别是50M,75M,100M,不懂可以留言。设置完c3点击finish,然后出现下图,就是PLL创建成功了。



在file里可以看到



示波器测量到的波形为 25Mhz 的方波(因为示波器原因,已经开始失真了,往下的波形均有失真):

【确定带宽抑制是关闭状态的】



示波器测量到的波形为 50Mhz 的方波:



示波器测量到的波形为 75Mhz 的方波:



示波器测量到的波形为 100Mhz 的方波:



分析波形的失真问题: 首先要了解方波的合成,由信号与系统的学习中,我们可以知道,方波其实不是真是存在的,其是有多次谐波叠加而成的,谐波次数越多,那么就越接近方波。所以,在示波器的捕捉频率为100MHz的情况下,25MHz的方波只能捕捉到4个点,50MHz,75MHz,100MHz,分别为2,1,1个点,那么仅由4,2,1,1个点绘出的波形,肯定是严重失真的啦。



这是一个傅里叶的传输门

补充一个利用signalTap II logic analyzer检测输出的方波。同时因为采样频率时钟选择CLK4_100M,所以在这里也对相应的输出时钟做了改动。如下图所示:



因为刚学PLL,尚且还有很多不懂的地方,有错的,望指正,这只是初步的学习报告,还会又后续补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程