ModelSim Problem 'X' anstatt '1' in std_logic_vector signal

Gast #4876094
Lesenswert?
• ▲
▼
Hallo,
ich bin da auf ein Problem mit dem ModelSim Simulator gestoßen und zwar 
sieht er in einem Signal (std_logic_vector) anstelle von den '1'sen 
immer ein 'X'.
Das hat zur Folge das in dem Prozess der mit diesem Signal arbeitet ein 
case nicht mehr funktioniert da er da anstelle von z.B. "00010000" ein 
"000X0000" sieht.
Ich habe meine Dateien mal angehängt, es geht um das Signal 
"instruction" in "gcpu_soc.vhd".
Das ROM aus dem die Daten kommen wird mit dem Inhalt von "ROM.BIT" 
(evtl. in der Version noch "ROM.HEX") initialisiert. Das Funktioniert 
auch in der Simulation, ich sehe das im ROM die std_logic_vector richtig 
sind '1'sen und '0'en aber "instruction" bekommt nur 'X'e und '0'en.
Woran könnte das wohl liegen?
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #4876124
Lesenswert?
• ▲
▼
1
  rom_inst : rom port map(
2
    clk => clk100,
3
    addr => pc,
4
    data => instruction     --- hier wird auf instruction geschrieben
5
  );
6
  
7
  process
8
  begin
9
    wait until rising_edge(clk100);
10
    if (reset = '1') then
11
      pc <= (others => '0');
12
      instruction <= (others => '0'); --- und hier auch --> Kollision
13
    else
14
      ...

BTW:
Das hier geht kürzer:
1
      if (to_integer(unsigned(pc)) < 1) then
2
        pc <= std_logic_vector(to_unsigned(to_integer(unsigned(pc)) + 1, 11));
Denn auch mit unsigned Vektoren kann man rechnen. Und man kann sie mit 
positiven integer Zahlen vergleichen:
1
      if (unsigned(pc) < 1) then
2
        pc <= std_logic_vector(unsigned(pc)+1);
Siehe dazu die Operatoren in der numeric_std:
https://www.csee.umbc.edu/portal/help/VHDL/packages/numeric_std.vhd
Und in logischer Konsequenz könnte man den pc gleich als unsigned Vektor 
definieren...
Gast #4876426
Lesenswert?
• ▲
▼
Vielen Dank daniel__m und Lothar Miller! Ich übe halt noch und das mit 
dem mehrfachem Zugriff auf instruction ist mir hier leider durchgegangen 
:(

Vielen Dank auch für den Tipp mit den unsigned Vektoren, hast völlig 
recht, warum nicht gleich nutzen anstatt der rum-caste / 
konvertiererei!!!

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.