Ich habe eine funktionierende DFF unter dem Modul unten.Verilog Erstellen einer Teilung durch zwei Zähler aus D Flip Flops funktioniert nicht
d_flip_flop_edge_triggered DFFT(Q, Qn, C, D);
jedoch, wenn ich den "D" Eingang zu "Qn" switch - einen Devide-by-2-Zähler zu machen - der Prüfstand Ausgang zeigt nicht entweder Q oder Qn. Es ist rot, als ob es einen Fehler gab.
Hier ist der vollständige Code:
module divBy2UsingDFF(Q, Qn, C, D
);
output Q;
output Qn;
input C;
input D;
wire Qn;
d_flip_flop_edge_triggered DFFT(Q, Qn, C, Qn);
endmodule
Ich bin neu zu verilog und ich vermute, es ist ein Syntax Problem.
Ja, der Q-Wert ist X. Ich habe den Eingang C im Simulator definiert, daher weiß ich nicht, warum er das anzeigt. Es hat auch keinen Reset. Ich denke das Problem könnte sein, dass ich Qn sowohl als Ausgabe als auch als Eingabe verwende? Ich bin mir nicht sicher, was Sie meinen, indem Sie es immer schreiben? – Serg
Nein, die Verwendung des Qn-Ausgangs zur Speisung des Eingangs ist in Ordnung, aber das Problem besteht darin, dass der interne Flip-Flop-Speicher zunächst undefiniert ist und daher nach dem Start als 0 oder Eins definiert werden muss. Betrachte dich selbst; Was ist der Anfangswert eines Flip-Flops nach dem Einschalten? –
Der Anfangswert ist nicht definiert! Ah, ich verstehe was du sagst. Gibt es eine Möglichkeit, die Variable aus dem Code heraus zu initiieren? – Serg