|
发表于 2010-7-26 15:45:54
|
显示全部楼层
本帖最后由 p.nicholas 于 2010-7-26 16:01 编辑
LZ真是执着啊,关于这个问题都开了好几帖了。
关于这个问题,你需要告知窄脉冲的宽度(1ps、1ns、2ns、10ns……)。
随便写了个程序,你参考参考吧……
module risingedge_detect(
clk,//care for the clk which must be faster than signal_in
reset_n,
signal_in,
signal_risingedge
);
input clk;
input reset_n;
input signal_in;
output signal_risingedge;
reg [2:0] signal_shift_register;
assign signal_risingedge = ( signal_shift_register[2:1] == 2'b01 );//detect the signal's rising edges
always@(posedge clk or negedge reset_n)
begin
if(reset_n == 1'b0)
signal_shift_register <= 3'b000;
else
signal_shift_register <= {signal_shift_register[1:0],signal_in};
end
endmodule |
|