PLL配置仿真实验

PLL,即锁相环。即给PLL一个时钟输入(一般为外部晶振时钟),然后经过PLL内部的处理后,在PLL的输出端就可以得到一定范围的时钟频率.PLL之所以应用广泛,是因为从其输出得到的时钟不仅从频率和相位上比较稳定,而且时钟网络延时也相对内部逻辑产生的分频时钟要小的多.

一、PLL的配置步骤:

Tool->MegeWizard Plug-In Manager->Creat a new megafunction variation->I/O->ALTPLL,输入例话的PLL名称;DE2-115时钟输入为50MHz,欲得输出100MHz和200MHz的频率clkc0,clkc1.

二、程序:

实现功能:100MHz与200MHz分频,led0和led1同时闪烁.

module pll(clk,rst_n,led0,led1);
input clk;
input rst_n;
output led0,led1;
//output clkc0, //100M
//output clkc1,
//output locked
wire clkc0;//100M
wire clkc1;
wire locked;

pll_ctrl pll_ctrl_inst (
 .areset (!rst_n),
 .inclk0 (clk),
 .c0 (clkc0),
 .c1 (clkc1),
 .locked (locked)
 );
reg[23:0] cnt0;
reg[24:0] cnt1;
always@(posedge clkc0 or negedge rst_n)
 if(!rst_n) cnt0<=24'd0;
 else cnt0<=cnt0+1'b1;
assign led0=cnt0[23];
 
always@(posedge clkc1 or negedge rst_n)
 if(!rst_n) cnt1<=25'd0;
 else cnt1<=cnt1+1'b1;
assign led1=cnt1[24];
endmodule

三、ModelSim仿真:

原文地址:https://www.cnblogs.com/spartan/p/2029819.html