边沿检测
FPGA对输入的信号进行边沿检测,有2种情况:
一种是对输入信号的变化进行检测,我们输出一个高电平,通常是通过输入时钟的一个上升沿或者下降沿进行对输入信号的判断。
一种是对输入时钟的上升沿和下降沿同时触发进行对输入信号的变化进行判断。
时钟的上升沿对输入信号的变化判断
上图中若是输入信号其中1位进行了变化,则anyedge 对应位输出一个高脉冲。
module top_module (
input clk,
input [7:0] in,
output [7:0] anyedge
);
reg[7:0] temp;
always@(posedg clk)
begin
temp <= in;
anyedge <= temp ^ in;
end
endmodule
同时用时钟的上升沿和下降沿来触发对输入信号的变化判断(双边沿触发)
FPGA不支持对时钟的上升沿和下降沿同时触发(posedge clk or negedge clk),所以采用2种办法,一种是2选1,一种是异或。