如何用verilog HDL语言实现对一个方波序列的周期检测

RT,可以再加一个时钟输入,该时钟频率远大于要测的方波的频率,跪求高手指点,有源码更好啊
感谢您的回答,不过计数会延迟,而且会少计数一次啊,能尽快再修改一下吗,谢谢了。

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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-29
用状态机一个一个的往下检查你想要的周期序列