mikrocontroller.net

Forum: FPGA, VHDL & Co. HILFE, ich finde nicht raus wo der Fehler liegt!


Autor: Gabriel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Liebe Kollegen!

Ich bekomme beim simulieren immer den Fehler

There is an U'X'.... in an arithmetic operand, the result will be X

Ich hab alles schon x mal durchgesehen und finde nichts, was mache ich 
falsch?


D A N K E
Gabriel

Autor: Gabriel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei noch die Testbench!

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gefunden, danke!!!!

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie lautet den der Fehler genau? Meist kommt eine Entsprechende WARNUNG 
das zum Zeitpunkt 0ns solch ein Zustand auftritt soblad du aber einmal 
Werte zuweiss ist das Egal..

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
**Warning: There is an 'U'|'X'| .. in an arithmetic operand, the result 
will be 'X'(es)

Fehler besteht doch noch.

Autor: SuperWilly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm doch mal entsprechende Signal-Initialisierungen vor.


z.B.

signal ls_counter : integer range 0 to 15  := 0;

Gruß,
SuperWilly

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, war eine gute Idee, s_ledcounter ist jetzt im Reset drinnen.

Ich hab herausgefunden, dass s_ctr = xxxxxxxx ist obwohl ich ihn im 
Reset habe. ????

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> **Warning: There is an 'U'|'X'| .. in an arithmetic operand, the result
> will be 'X'(es)
Sieh dir z.B. mal deinen s_ledctr an.


Abhilfe: gib gleich bei der Definition von Signalen jedem einen 
Defaultwert an.
signal s_ctr : std_logic_vector (7 downto 0) := (others => '0'); -- da auf einen Ausgang nicht zugegriffen werden darf.    
signal s_ledctr : std_logic_vector (25 downto 0) := (others => '0');
constant C_1HZ : std_logic_vector(25 downto 0):= "10110111000110110000000000"; --48M Dezimal
signal s_led : std_logic_vector (7 downto 0) := (others => '0');
signal s_rep : std_logic := '0';


BTW:
> if reset_n ='1' then --asynchroner Reset
Sowas ist böse:
Ich hätte da (wegen ***_n) einen low-aktiven Reset vermutet    :-o

Sieh dir mal das numeric_std Package an (statt der std_logic_arith Lib).

Wenn du deinen s_ledctr als integer range 0 to 48000000 anlegst, 
kannst du direkt auf 48000000 vergleichen, ohne irgendwelche 
Bitumrechenereien zu machen.

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das wars nicht. Ich hab immer noch bei s_crt xxxxxxxx stehen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du weist s_ctr aus zwei Prozessen etwas zu (einmal getaktet, einmal 
kombinatorisch). Das geht natürlich nicht. Das kommt von der 
Zwei-Prozess-Schreibweise. Pech gehabt :-/

Abhilfe: s_ctr wird nur im getakteten Teil manipuliert.

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
reset_n ist inzwischen auch low active

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schaut gut aus. Ich hab´s beim 2. Prozess übersehen. DANKE, ich hoffe 
jetzt funktioniert der Rest.


D A N K E ! ! !

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.