增加一个时钟倍频和分频的模块, 下班需要使用vivado仿真测试
parent
1d52bd68f8
commit
9a85504756
@ -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
|
@ -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
|
Loading…
Reference in New Issue