鎖相環(PLL)主要用於頻率綜合,使用一個 PLL 可以從一個輸入時鍾信號生成多個時鍾信號。 PLL 內部的功能框圖如下圖所示:

在ISE中新建一個PLL的IP核,設置四個輸出時鍾,分別為25MHz、50MHz、75MHz和100MHz,配置如圖所示:

之后,再在程序中例化IP核,程序設計如下:
1 `timescale 1ns / 1ps 2 ////////////////////////////////////////////////////////////////////////////////// 3 // Company: 4 // Engineer: 5 // 6 // Create Date: 11:11:34 03/26/2018 7 // Design Name: 8 // Module Name: pll_test 9 // Project Name: 10 // Target Devices: 11 // Tool versions: 12 // Description: 13 // 14 // Dependencies: 15 // 16 // Revision: 17 // Revision 0.01 - File Created 18 // Additional Comments: 19 // 20 ////////////////////////////////////////////////////////////////////////////////// 21 module pll_test( 22 input clk, 23 input reset, 24 output pll_clk_1, 25 output pll_clk_2, 26 output pll_clk_3, 27 output pll_clk_4, 28 output locked 29 ); 30 31 pll_ip pll_ip_inst 32 ( 33 .CLK_IN1(clk), // IN 50Mhz 34 // Clock out ports 35 .CLK_OUT1(pll_clk_1), // OUT 25Mhz 36 .CLK_OUT2(pll_clk_2), // OUT 50Mhz 37 .CLK_OUT3(pll_clk_3), // OUT 75Mhz 38 .CLK_OUT4(pll_clk_4), // OUT 100Mhz 39 // Status and control signals 40 .RESET(reset),// IN 41 .LOCKED(locked)// OUT 42 ); 43 endmodule
仿真結果;

可以看到,鎖相環的IP核是高電平復位,當所有的輸出時鍾都穩定之后,locked信號拉高,這時之后的輸出時鍾可用。
