J'ai écrit ce code pour simuler un compteur asynchrone en utilisant D flip flop. Le programme donne la sortie correcte pour la première fois aux itérations, mais la sortie ne change pas du tout. Qu'est-ce que je fais mal?Compteur d'ondulations utilisant Dflip flop
Voici le code:
1er module:
module DFF(d,q,reset,clk);
input d,reset,clk;
output reg q;
always @(posedge reset, posedge clk) begin
if(reset) begin
q=0;
end
if(d)
q=d;
else
q=q;
end
endmodule
second module:
module RippleCounter(d,clk,reset,out);
input [3:0] d;
input clk, reset;
output [3:0] out; // 4bit
DFF a(d[0],out[0],reset,clk);
DFF b(d[1],out[1],reset,out[0]);
DFF c(d[2],out[2],reset,out[1]);
DFF dx(d[3],out[3],reset,out[2]);
endmodule
3ème Module:
module RippleCounterTOP;
reg [3:0] d;
reg clk, reset;
wire [3:0] out;
RippleCounter r(d,clk,reset,out);
initial begin
d=0;clk=0;reset=1;
end
always begin
#5 d=d+1; clk=~clk;
end
endmodule
Que signifie "premier à itérations" signifie? – toolic