1、代码如下:
module pulse
(
clk,rst_n,
din,dout
);
input clk; //时钟信号
input rst_n; //异步复位信号,低电平有效
input din; //输入信号
output reg dout; //输出信号,无边沿信号时为0
reg din_reg; //输入信号缓存
always @(posedge clk,negedge rst_n)
begin
if(!rst_n)
begin
dout <= 0;
din_reg <= 0;
end
else
begin
din_reg <= din; //输入数据缓存
if(din_reg!=din)
dout <= 1;
else
dout <= 0;
end
end
endmodule
结论:输入为电平信号时,上升沿到来之后,下一个时钟上升沿到来时输出一个高电平脉冲信号,其高电平持续一个周期;下降沿到来之后,下一个时钟上升沿到来时输出一个高电平脉冲信号,其高电平持续一个周期;
举例说明:
1、当输入信号上升沿和下降沿间隔一个周期,则输出的脉冲信号其高电平持续2个周期;
2、当输入信号为周期性信号,其频率为时钟信号一半,则输出信号为高电平信号;