笔记二是简单介绍clk IP核的使用,并且通过仿真进行验证
1.打开VIVADO,点击IP Catalog
2. 搜索clk,选择Clocking Wizard
3. 配置参数
(1) 选择MMCM
(2) 设置主频50Mhz
(3) 设置输出的4个clk的参数,分别是50M,25M,100M,100M反相。Phase表示相位,0表示同相,180表示反相。
(3) 其他参数
4. 测试文件
module tb_clock;
reg clk; // 输入时钟
reg rst_n; // 输入复位
wire clk_50M; // 输出50M clk
wire clk_25M; // 输出25M clk
wire clk_100M; // 输出100M clk
wire clk_100M_180deg; // 输出100M_180deg
wire locked; // 输出稳定的信号
// 例化clk_wiz IP核
clk_wiz_0 U1
(
// Clock out ports
.clk_50M(clk_50M), // output clk_50M
.clk_25M(clk_25M), // output clk_25M
.clk_100M(clk_100M), // output clk_100M
.clk_100M_180deg(clk_100M_180deg), // output clk_100M_180deg
// Status and control signals
.reset(~rst_n), // input reset
.locked(locked), // output locked
// Clock in ports
.clk_in1(clk)); // input clk_in1
// 初始化
initial
begin
clk =0; // clk为低电平
rst_n =0; // 复位为低电平
# 50 // 延时50ns
rst_n = 1; // 复位为高电平
end
always #10 clk = ~clk; // clk周期为20ns
endmodule
其中clk_wiz的例化可参考模板。点击IP Sources
点开veo文件
找到其中的例化模板,对应更改。其中例化模板如下:
clk_wiz_0 instance_name
(
// Clock out ports
.clk_50M(clk_50M), // output clk_50M
.clk_25M(clk_25M), // output clk_25M
.clk_100M(clk_100M), // output clk_100M
.clk_100M_180deg(clk_100M_180deg), // output clk_100M_180deg
// Status and control signals
.reset(reset), // input reset
.locked(locked), // output locked
// Clock in ports
.clk_in1(clk_in1)); // input clk_in1
5. 仿真结果
观察lockwd信号为高电平之后的结果,locked为高电平时表示系统稳定。