目标:调用锁相环IP核,用50MHz占空比50%的时钟信号输入,输出设置四个端口。
端口1:倍频,实现100MHz占空比50%信号的输出。
端口2:分频,实现25MHz占空比50%信号的输出。
端口3:相位调整,将输入信号延迟90°。
端口4:占空比调整,实现50MHz占空比20%信号的输出。
输入信号配置信息如下图所示:
输出信号配置信息如下图所示:
Verilog仿真调用代码:
module pll(
input wire sys_clk,
output wire clk_100m,
output wire clk_25m,
output wire clk_90,
output wire clk_d_20,
output wire locked
);
pll_ip pll_ip_inst
(
// Clock out ports
.clk_100m(clk_100m), // output clk_100m
.clk_25m(clk_25m), // output clk_25m
.clk_90(clk_90), // output clk_90
.clk_d_20(clk_d_20), // output clk_d_20
// Status and control signals
.locked(locked), // output locked
// Clock in ports
.pll_clk(sys_clk)); // input pll_clk
endmodule
仿真测试代码如下:
`timescale 1ns / 1ns
module tb_pll();
reg sys_clk;
wire clk_100m;
wire clk_25m;
wire clk_90;
wire clk_d_20;
wire locked;
initial sys_clk=1'b1;
always #10 sys_clk=~sys_clk;
pll pll_inst
(
. sys_clk(sys_clk),
. clk_100m(clk_100m),
. clk_25m(clk_25m),
. clk_90(clk_90),
. clk_d_20(clk_d_20),
. locked(locked)
);
endmodule
Vivado仿真波形
PS:锁定信号为低电平时,表示四路输出信号不稳定,锁定信号为高电平时才代表稳定。
倍频
输入的时钟信号和倍频都正确
分频
相位调整
占空比调整