【发布时间】:2014-09-13 15:56:38
【问题描述】:
我正在使用四个 4-1 多路复用器和四个 D 触发器实现一个移位寄存器,并被赋予该模块用作去抖动器(输出到移位寄存器的时钟)。我知道去抖动器是如何工作的以及为什么要使用它们,但是有人可以解释一下这段代码是如何工作的吗?谢谢。
module debounce(
input D_in,
input clk_in,
input reset,
output D_out
);
reg q9, q8, q7, q6, q5, q4, q3, q2, q1, q0;
always @ ( posedge clk_in or posedge reset)
if (reset == 1'b1)
{q9, q8, q7, q6, q5, q4, q3, q2, q1, q0} <= 10'b0;
else begin
q9 <= q8; q8 <= q7; q7 <= q6; q6 <= q5; q5 <= q4;
q4 <= q3; q3 <= q2; q2 <= q1; q1 <= q0; q0 <= D_in;
end
assign D_out = !q9 & q8 & q7 & q6 & q5 &
q4 & q3 & q2 & q1 & q0;
endmodule
【问题讨论】:
标签: verilog