我正在尝试使用 Verilog 中的 D 触发器创建一个 4 位计数器。我正在关注这张图http://i.imgur.com/VR5593a.png。我得到了单个 D 触发器的代码。我遇到的问题是第一个时钟周期中的 D0。我猜我必须首先假设 Q0 为 1,Q1、Q2、Q3 为 0。我不确定如何在代码中只传递一次 D0 的初始值。
module DFlipFlop(CLK, D, Q);
input CLK, D;
output Q;
reg Q;
always @(posedge CLK) begin
Q <= D;
end
endmodule
module RippleMod(CLK, q0, q1, q2, q3);
input CLK;
output q0, q1, q2, q3;
DFlipFlop d1 (CLK,q3,q0);//not sure about q3 there, think I will get X if i do this.
DFlipFlop d2 (CLK,q0,q1);
DFlipFlop d3 (CLK,q1,q2);
DFlipFlop d4 (CLK,q2,q4);
endmodule