VHDL Zähler zählt falsch

Gast #1068405
Lesenswert?

Hallo,

ich bin neu in der VHDL Programmierung und versuche gerade Zähler zu 
schreiben. Mein Zähler zählt richtig bis zum Übertrag hoch und resetet 
sich dann korrekt. Jedoch fängt er bei "7" an das Vorzeichen falsch 
auszugeben, nach 7 folgt -8 dann -7 und dann 0 statt 7,8,9 (siehe 
Modelsim Screenshot).

Folgend mein VHDL-Code der Architecture. Hoffe Ihr findet meinen Fehler.

Liebe Grüße

Jonas

-----------------------------------------------------------------

signal hundertstel_temp, zehnerhundertstel_temp: std_logic_vector (3 
downto 0);
signal uebertrag_temp: std_logic;

begin

  counterproc:process(in_clk,in_clr)
  begin
  if in_clr='1' then
  hundertstel_temp <= "0000";
  zehnerhundertstel_temp <= "0000";
  uebertrag_temp <= '0';


 elsif in_clk'event and in_clk='1' then

  if hundertstel_temp = "1001" then
      if zehnerhundertstel_temp =  "1001" then
           uebertrag_temp <= '1';
           zehnerhundertstel_temp <= "0000";
         else
           zehnerhundertstel_temp <= zehnerhundertstel_temp + '1';
           uebertrag_temp <= '0';
         end if;
        hundertstel_temp <= "0000";
  else
       hundertstel_temp <= hundertstel_temp + '1';
        zehnerhundertstel_temp <= zehnerhundertstel_temp;
        uebertrag_temp <= '0';
  end if;
end if;

  end process;
Angehängte Dateien:
Gast #1068432
Lesenswert?

hallo,

du musst in Modelsim darauf achten, dass du dein Signalattribut für das 
Signal "out_hundertstel" auf unsigned setzt. Ansonsten bekommst du für 
den Zählstand 8 und 9 eine negative Zahl, da dein höchstwertigstes Bit 
gesetzt wird wird. (vergleiche Zweierkomplementbildung für negative 
Zahlen).
Es ist also nur ein Darstellungsproblem in Modelsim.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren