www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Modelsim will nicht rechnen


Autor: serber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: serber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
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.

Autor: Mirco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie macht man eigentlich hier im Forum den Code rein, dass er so
besonders dargestellt wird ?

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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_schni...

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

Test wiki (spitz):
<vhdl>
--codezeile
</vhdl>

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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}

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... aufgeb ...

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier nimmt man eckige Klammern ;-)

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, ja die gibts ja auch noch, test mer mal

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


Jetzt mit Leerzeichen in der Codezeile

Test forum eckig):
 --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]

Autor: Mentorwürger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was sagt uns das jetzt?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.