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
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
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.
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.
Wie macht man eigentlich hier im Forum den Code rein, dass er so besonders dargestellt wird ?
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>
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}
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]
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.