锁相环(PLL)主要用于频率综合,使用一个 PLL 可以从一个输入时钟信号生成多个时钟信号。 PLL 内部的功能框图如下图所示:
在ISE中新建一个PLL的IP核,设置四个输出时钟,分别为25MHz、50MHz、75MHz和100MHz,配置如图所示:
之后,再在程序中例化IP核,程序设计如下:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 11:11:34 03/26/2018
// Design Name:
// Module Name: pll_test
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module pll_test(
input clk,
input reset,
output pll_clk_1,
output pll_clk_2,
output pll_clk_3,
output pll_clk_4,
output locked
); pll_ip pll_ip_inst
(
.CLK_IN1(clk), // IN 50Mhz
// Clock out ports
.CLK_OUT1(pll_clk_1), // OUT 25Mhz
.CLK_OUT2(pll_clk_2), // OUT 50Mhz
.CLK_OUT3(pll_clk_3), // OUT 75Mhz
.CLK_OUT4(pll_clk_4), // OUT 100Mhz
// Status and control signals
.RESET(reset),// IN
.LOCKED(locked)// OUT
);
endmodule
仿真结果;
可以看到,锁相环的IP核是高电平复位,当所有的输出时钟都稳定之后,locked信号拉高,这时之后的输出时钟可用。