Forum: FPGA, VHDL & Co. dezimalzähler verilog


von Robert M. (rob2000)


Lesenswert?

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

von Schrotty (Gast)


Lesenswert?

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..

von Schrotty (Gast)


Lesenswert?

hmm... bin mir grad selber etwas unschlüssig, ob das stimmt, was ich 
oben behauptet habe.. aber probier´s doch einfach mal aus ;-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> funktioniert leider nicht so ganz.
Was funktioniert nicht so ganz? Zählt er über 4 bzw. 9 hinaus?

von Robert M. (rob2000)


Lesenswert?

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
Noch kein Account? Hier anmelden.