0
点赞
收藏
分享

微信扫一扫

FPGA学习-7-PLL IP核


系统:win10
软件编辑和程序下载平台:Quartus II
仿真平台:modelsim
FPGA:EP4CE6

1 PLL IP核简介

1 锁相环作为一种反馈控制电路,其特点是利用外部输入的参考信号控制环路内部震荡信号

的频率和相位。因为锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通

常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,

输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相

环名称的由来。

锁相环可以将50MHz的输入频率转换为最多5种不同的频率, 还可以进行相位的转移

FPGA学习-7-PLL IP核_设置向导

注意: PLL的时钟输入可以来自于时钟专用输入引脚,FPGA内部产生的信号不能驱动PLL。

2 实际工程

1 创建空工程

2 tools->Megawizard Plug(魔法棒) ->Creat

FPGA学习-7-PLL IP核_设置向导_02


3 进入设置向导

FPGA学习-7-PLL IP核_引脚_03


FPGA学习-7-PLL IP核_反馈控制_04


B/S 和 clock界面点击next

2PLL也不需要配置点击next配置第一个输出时钟

FPGA学习-7-PLL IP核_反馈控制_05

配置第2个时钟

FPGA学习-7-PLL IP核_引脚_06

配置第三个时钟

FPGA学习-7-PLL IP核_引脚_07


配置第四个时钟

FPGA学习-7-PLL IP核_反馈控制_08


添加仿真库 EDA

FPGA学习-7-PLL IP核_反馈控制_09


完成创建

FPGA学习-7-PLL IP核_引脚_10


可以查看pll保存路径下的.v文件

然后是例化模块

注意保存到rtl文件夹中

module ip_pll(
input sys_clk,
input sys_rst_n,


output clk_100m,
output clk_100m_180deg,
output clk_50m,
output clk_25m
);

wire locked;
wire rst_n;


assign rst_n = sys_rst_n & locked;


pll_clk u_pll_clk (
.areset (!sys_rst_n),
.inclk0 (sys_clk),
.c0 (clk_100m),
.c1 (clk_100m_180deg),
.c2 (clk_50m),
.c3 (clk_25m),
.locked (locked)
);

进行自动仿真设置,

仿真文件配置

`timescale 1 ns/ 1 ns
module ip_pll_vlg_tst();
// constants
// general purpose registers
reg eachvec;
// test vector input registers
reg sys_clk;
reg sys_rst_n;
// wires
wire clk_25m;
wire clk_50m;
wire clk_100m;
wire clk_100m_180deg;

// assign statements (if any)
ip_pll i1 (
// port map - connection between master ports and signals/registers
.clk_25m(clk_25m),
.clk_50m(clk_50m),
.clk_100m(clk_100m),
.clk_100m_180deg(clk_100m_180deg),
.sys_clk(sys_clk),
.sys_rst_n(sys_rst_n)
);
initial
begin
sys_clk = 1'b0;
sys_rst_n = 1'b0;
#20 sys_rst_n = 1'b1; //延时100ns 复位信号拉高
#2000 $stop;
end

always #10 sys_clk = ~sys_clk; //延时10ns反转

endmodule

最终仿真图

FPGA学习-7-PLL IP核_反馈控制_11


举报

相关推荐

0 条评论