对于 32 位向量中的每一位,在输入信号从一个时钟周期的 1 变为下一个时钟周期的 0 时进行捕捉。“捕获”表示输出将保持为 1,直到寄存器复位(同步复位)。
每个输出位的行为类似于 SR 触发器:输出位应在 1 到 0 转换发生后的周期设置(为 1)。当复位为高电平时,输出位应在正时钟沿复位(为 0)。如果上述两个事件同时发生,则重置优先。在下面示例波形的最后 4 个周期中,“reset”事件比“set”事件早一个周期发生,因此这里不存在冲突。
在下面的示例波形中,为清楚起见,reset、in[1] 和 out[1] 再次分别显示如下。
module top_module (
input clk,
input reset,
input [31:0] in,
output [31:0] out
);
reg [31:0]temp_in,temp_out;
always@(posedge clk)begin
temp_in<=in;
end
integer i;
always@(posedge clk)begin
for(i=0;i<32;i++)begin
if(reset)
out[i]=0;
else if(~in[i]&temp_in[i])
out[i]=1;
else
out[i]=out[i];
end
end
endmodule