module (clk,
clk2,
rst_2,
period);
input clk,clk2,rst_2;
output [9:0] period;
reg [9:0] period;
reg clk_1d;
reg cnt[9:0];
wire clk_pos;
always @ ( posedge clk2 or negedge rst_2 ) begin
if ( rst_2 == 1'b0 ) begin
clk_1d <= 1'b0;
end
else begin
clk_1d <= clk;
end
end
assign clk_pos = clk & (~clk_1d);
always @ ( posedge clk2 or negedge rst_2 ) begin
if ( rst_2 == 1'b0 ) begin
cnt[9:0] <= 10'd0;
end
else if ( clk_pos == 1'b1 ) begin
cnt[9:0] <= 10'd0;
end
else begin
cnt[9:0] <= cnt[9:0] + 10'd1;
end
end
always @ ( posedge clk2 or negedge rst_2 ) begin
if ( rst_2 == 1'b0 ) begin
period[9:0] <= 10'd0;
end
else if ( clk_pos == 1'b1 ) begin
period[9:0] <= cnt[9:0];
end
else begin
;
end
end
endmodule
补充说明:需要测量的时钟周期最多为追加的时钟频率的1024倍。
祝好,
Timothy
温馨提示:答案为网友推荐,仅供参考