diff --git a/clk_wiz/clk_wiz.v b/clk_wiz/clk_wiz.v new file mode 100644 index 0000000..75b2020 --- /dev/null +++ b/clk_wiz/clk_wiz.v @@ -0,0 +1,32 @@ +// 对时钟信号使用ip核进行分频倍频和偏移 +module clk_wiz( + (*mark_debug="true"*)input wire sys_clk, // U18 + (*mark_debug="true"*)input wire sys_rst, //J15 + (*mark_debug="true"*)output wire clk_100m, + (*mark_debug="true"*)output wire clk_100m_r, // 180度 + (*mark_debug="true"*)output wire clk_50m, + (*mark_debug="true"*)output wire clk_25m +); + +wire locked; // 内部时钟是否稳定 +wire rst; + +// 如果时钟信号稳定之后, 且sys是高电平, 表示板子已经可以正常使用了 +// 其他的例化可以使用该信号 当做是否复位标志 +assign global_rst = locked && sys_rst; + + + +clk_wiz_0 u_clk_wiz_0( + .clk_in1(sys_clk), + .reset(!sys_rst), + .clk_out1(clk_100m), + .clk_out2(clk_100m_r), + .clk_out3(clk_50m), + .clk_out4(clk_25m) +); + + + + +endmodule \ No newline at end of file diff --git a/clk_wiz/tb_clk_wiz.v b/clk_wiz/tb_clk_wiz.v new file mode 100644 index 0000000..2f5fee2 --- /dev/null +++ b/clk_wiz/tb_clk_wiz.v @@ -0,0 +1,23 @@ +`timescale 1ns/1ns +module tb_clk_wiz(); + +reg sys_clk; +reg sys_rst; + +always #10 sys_clk = ~sys_clk; + +wire clk_100m; +wire clk_100m_r; +wire clk_50m; +wire clk_25m; + +clk_wiz u_clk_wiz( + .sys_clk(sys_clk), // U18 + .sys_rst(sys_rst), //J15 + .clk_100m(clk_100m), + .clk_100m_r(clk_100m_r), // 180度 + .clk_50m(clk_50m), + .clk_25m(clk_25m) +); + +endmodule