Modelsim will nicht rechnen

Gast #417913
Lesenswert?

Hallo

Mache gerade erste Schritte in Modelsim.
Aber anstatt mein Design richtig zu simulieren, spuckt er ständig
folgenden Fehler aus:


"There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand,
the result will be 'X'(es)."

Wie bringe ich den dazu, dass er auch mit std_logic - Typen rechnen
kann?

Mfg
Gast #417914
Lesenswert?

Die Warnung besagt, dass einer der Operanten der arithmetischen Funktion
 einen U, X, W, Z Wert hat und mit diesem nicht gerechnet werden. Somit
kann keine Aussage über das Ergebnis gemacht werden und es wird auf X
gesetzt.

Poste mal deinen Code, dann wird die Fehlersuche einfacher.

Gruß Jörn
Gast #417915
Lesenswert?

Bitteschön:

Das Ding teilt einen (schnellen) Takt.

entity vhdldatei is
  Port (Ausgang: out std_logic_vector (7 downto 0);
        Takt: in bit);
end vhdldatei;

architecture Behavioral of vhdldatei is
signal  ZAHL : std_logic_vector (24 downto 0);
begin
  process (Takt)
  begin
    if (Takt = '1' and Takt'event)
      then ZAHL <= ZAHL + 1;
    end if;
  end process;

  Ausgang <= Zahl (24 downto 17);
end Behavioral;


Ich finde das komische ist, dass das VHDL-Design ohne Probleme
synthetisiert wird und auf dem FPGA auch läuft.
Nur der Simulator kommt damit nicht zurecht.
Gast #417916
Lesenswert?

Da ZAHL am Simulationsstart unititialisiert ist, wird es vom Simulator
erstmal auf 'U' = unitialized gesetzt. Naja, und dann ergeben die
Additionen natürlich erstmal keinen Sinn. Lösung dürfte hier sein, das
Signal ZAHL mit einem Wert zu initialisieren, zB:
1
signal  ZAHL : std_logic_vector (24 downto 0) := (OTHERS => '0');
Arithmentik in VHDL führt man aber besser sowieso mit den Standardtypen
unsigned / signed aus. Zu finden im Package numeric_std.


T.M.
Gast #417918
Lesenswert?

in die zeile vor code schreibt man in geschweiften Klammern  vhdl,
in die zeile nach dem code auch in geschw. Klammern /vhdl.
geschweifte Klammer ist "{" bzw. "}"

Das selbe funktioniert auch im hiesiegen wiki, nur das man dort spitze
klammern verwendet. (also "<" und ">") Siehe:

http://www.mikrocontroller.net/articles/VHDL_schnipsel_or_vectorbits

Test forum (geschw.):
{vhdl}
--codezeile geschw.
{/vhdl}

Test wiki (spitz):
<vhdl>
--codezeile
</vhdl>
Gast #417919
Lesenswert?

Huch :-o ; nochmal


Test forum (geschw.):
{vhdl}
--codezeile geschw.
{/vhdl}


jetzt mit Leerzeichen in der Codezeile

Test forum (geschw.):
{vhdl}
 --codezeile geschw.
{/vhdl}


jetzt mit vhd statt vhdl, ohne Leerzeichen:

Test forum (geschw.):
{vhd}
--codezeile geschw.
{/vhd}


jetzt mit vhd statt vhdl, mit Leerzeichen:

Test forum (geschw.):
{vhd}
 --codezeile geschw.
{/vhd}
Gast #417922
Lesenswert?

Ah, ja die gibts ja auch noch, test mer mal

Test forum (eckig.):
1
--codezeile eckig.


Jetzt mit Leerzeichen in der Codezeile

Test forum eckig):
1
 --codezeile eckig.


jetzt mit vhd statt vhdl, ohne Leerzeichen:

Test forum (eckig.):
[vhd]
--codezeile eckig.
[/vhd]


jetzt mit vhd statt vhdl, mit Leerzeichen:

Test forum (eckig.):
[vhd]
 --codezeile eckig.
[/vhd]

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