FPGA开发(四) PLL实验

随声附和 提交于 2020-03-17 05:10:47

        本次我们来学习FPGA的PLL,PLL(Phase Locked Loop)俗称锁相环,在很多的单片机中都有,它主要的目的是为了实现倍频和分频,因为我们系统运行的主频率是固定的,如果我们需要其他的频率,那么就需要超频或者降频,此时就需要锁相环实现。              FPGA的PLL是一个硬件模块,是十分重要的资源。本次博主使用的cyclone IV有四个PLL,为外部的端口提供高速的通信时钟。从数据手册中得到PLL的原理图如下

         从上图可以看出,每一个PLL可以输出5路信号,信号的频率取决于C0~C5改变取值即可实现输出频率的改变。本次实验实现PLL输出的不同时钟通过FPGA的IO输出。

        首先建立工程pll_test,然后我们需要进行pll的设置,点击IP catalog图标,即下图最右边的那个,搜索pll,点击ALTPLL后进行设置,起一个名字pll.v之后点击确定。

 

       在弹出的设置中,选择输入时钟为50MHz,如下所示。

         在Output clocks中选择输出的时钟为25MHz, 使能时钟1,选择50MHz,时钟2选择时钟75MHz,时钟3选择100MHz,如下所示。

 

 

    

       新建一个pll_test.v文件,例化PLL ip ,程序如下所示。

`timescale 1ns/1ps
module pll_test(
	input clk,
	input rst,
	output clkout1,
	output clkout2,
	output clkout3,
	output clkout4
);

wire locked;

pll pll_inst(
	.inclk0(clk),
	.c0(clkout1),
	.c1(clkout2),
	.c2(clkout3),
	.c3(clkout4),
	.areset(~rst),
	.locked(locked)
);

endmodule 

    选择对应的端口之后编译再进行下载程序,即可实验成功。    

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!