`timescale 1ns / 1ps
module tb_ip_clk(); //不需要声明端口
reg sys_clk; //时钟和复位信号定义为reg类型,其他wire
reg sys_rst_n;
wire clk_100M;
wire clk_100M_180;
wire clk_50M;
wire clk_25M;
initial begin
sys_clk = 1'b0;
sys_rst_n = 1'b0;
#200
sys_rst_n = 1'b1;
end
//初始化始终和复位信号
always #10 sys_clk = ~sys_clk;
//50MHz的时钟,每10ns翻转一次
ip_clk u(
sys_clk,
sys_rst_n,
clk_100M,
clk_100M_180,
clk_50M,
clk_25M
);
//实例化需要仿真的文件
//变量取一样的名字,直接粘贴就好
endmodule
第二个是写好的veilog文件
`timescale 1ns / 1ps
module ip_clk(
input sys_clk,
input sys_rst_n,
output clk_100M,
output clk_100M_180,
output clk_50M,
output clk_25M
);
wire locked;
clk_wiz_0 instance_name
(
// Clock out ports
.clk_out1_100M(clk_100M), // output clk_out1_100M
.clk_out2_100M_180(clk_100M_180), // output clk_out2_100M_180
.clk_out3_50M(clk_50M), // output clk_out3_50M
.clk_out4_25M(clk_25M), // output clk_out4_25M
// Status and control signals
.reset(~sys_rst_n), // input reset
.locked(locked), // output locked
// Clock in ports
.clk_in1(sys_clk)); // input clk_in1
endmodule