1.实验简介
PLL的英文全称是Phase Locked Loop,即锁相环,是一种反馈控制电路。PLL对时钟网络进行系统级的时钟管理和偏移控制,具有时钟倍频、分频、相位偏移和可编程占空比的功能。
锁相环作为一种反馈控制电路,其特点是利用外部输入的参考信号控制环路内部震荡信号的频率和相位。因为锁相环可以实现输出信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。
PLL由以下几部分组成:前置分频计数器(N计数器)、相位-频率检测器(PFD,Phase-Frequency Detector)电路,电荷泵(Charge Pump)、环路滤波器(Loop Filter)、压控振荡器(VCO,Voltage Controlled Oscillator)、反馈乘法器计数器(M计数器)和后置分频计数器(K和V计数器)。
在工作时,PFD检测其参考频率(FREF)和反馈信号(Feedback)之间的相位差和频率差,控制电荷泵和环路滤波器将相位差转换为控制电压;VCO根据不同的控制电压产生不同的震荡频率,从而影响Feedback信号的相位和频率。在FREF和Feedback信号具有相同的相位和频率之后,就认为PLL处于锁相的状态。
在反馈路径中插入M计数器会使VCO的震荡频率是FREF信号频率的M倍, FREF信号等于输入时钟(FIN)除以预缩放计数器(N)。参考频率用以下方程描述:FREF= FIN/N,VCO输出频率为FVCO= FIN*M/N,PLL的输出频率为FOUT=(FIN*M)/(N*K)。
EP4CE10,内部含有2个PLL PLL的时钟输入可以来自于时钟专用输入引脚,FPGA内部产生的信号不能驱动PLL。
2.试验任务
使用FPGA开发板输出4个不同时钟频率或相位的时钟,并通过Modelsim软件对ALTPLL IP核进行仿真。
3.硬件管脚分配
4.程序设计
添加IP core
module pll (
input sys_clk ,
input sys_rst_n ,
output clk_100M ,
output clk_100M_180 ,
output clk_50M ,
output clk_25M //
);
//wire define
wire locked;
wire areset;
assign areset=sys_rst_n&locked;
pll_clk u_pll_clk(
.inclk0(sys_clk),
.areset(~sys_rst_n),
.c0(clk_100M),
.c1(clk_100M_180),
.c2(clk_50M),
.c3(clk_25M),
.locked(locked)
);
endmodule
在仿真时要选最快的时钟作为参考时钟,这里实际100M对应的PLL中是200M 因此可以观察到CLK_100M_180信号,如果为不修改为200M则无法观察到100M时钟 只能观察到50M和20M的输出时钟