hallo, bin grad dabei mir nen dezimalzähler zu bauen... soweit so gut. nun soll er bei 49 auf 0 gesetzt werden, das habe ich mir wie folgt gedacht: wenn b=4 und a=9 ist setz ich alles einfach zurück, siehe ende vom code; funktioniert leider nicht so ganz. vieleicht kann mir jemand weiter helfen. danke module decimal_counter(A,B,OVERFLOW,CLK,RST); input CLK, RST; output OVERFLOW; output [3:0] A; reg OVERFLOW; reg [3:0] A; reg [3:0] B; always @ (posedge CLK or negedge RST) if (~RST) begin OVERFLOW <= 1'b0; A <= 4'b0000; end else if (A<9) begin A <= A + 1'b1; OVERFLOW <= 1'b0; end else begin A <= 4'b0000; OVERFLOW <= 1'b1; //B <= B + 1'b1; end if (B==4 && A==9) begin OVERFLOW <= 1'b0; A <= 4'b0000; B <= 4'b0000; end endmodule
kann es sein, dass deiner einer-Stelle immer nur bis 8 zählt? und am Ende dein Zähler nicht wieder auf Null geht? Ich bin zwar nicht fit in Verilog, aber mir scheint es so, als würdest du nur bis 8 zählen (A < 9) und dann in den else-zweig springen um dort den Einer-Zähler zurück zu setzen und den Übertrag in die Zehner-Stelle zu machen. Ebenfalls anpassen müsstest du meines Erachtens den Überlauf des Gesamten Zählers, denn der erfolgt vermutlich bei 48.. aber wie gesagt, ich kenn mich mit verilog nicht aus..
hmm... bin mir grad selber etwas unschlüssig, ob das stimmt, was ich oben behauptet habe.. aber probier´s doch einfach mal aus ;-)
> funktioniert leider nicht so ganz.
Was funktioniert nicht so ganz? Zählt er über 4 bzw. 9 hinaus?
habs nun doch noch hinbekommen das er bis 49 zählt. hab einfach zwei counter gemacht einen für die 1er stelle und einen für die 10er stelle. entsprechend dann die overflows gezählt und gesagt bei 4 bzw. 9 zurücksetzen. besten dank trotzdem für eure hilfe. vieleicht steh ich ja schon bald vorm nächsten problem...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.