mikrocontroller.net

Forum: FPGA, VHDL & Co. ISE IOBUF MACRO


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

Bewertung
0 lesenswert
nicht lesenswert
Servus,

versuche angehangenes Macro mit Modelsim zu simulieren, bekomme es
jedoch nicht hin. Gelesen wird mit data_tri_en = '1' und geschrieben
mit data_tri_en '0'. Einzeln funktioniert, das heißt, wenn ich in der
Testbench die jeweilige Zeile auskommentiere. Also, wenn ich "data <=
std_logic_vector(cnt_up);" auskommentiere ist funktioniert das lesen
und wenn ich "rd_data <= std_logic_vector(cnt_down);" auskommentiere
funktioniert das schreiben.  Aber wenn beides zusammen spielen soll,
funktioniert nur das Schreiben, beim Lesen bekomme ich dan´n an den
Stellen im std_logic_vector, wo eine '1' stehen müsste ein 'X'. Bin
am Verzweifeln, falls ich etwas falsch mache, klärt mich bitte auf. Als
Testdaten wird jeweils ein Counter verwendet, UP zum Schreiben und Down
zum Lesen. Testbench folgt.

Gruß ehde76

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

Bewertung
0 lesenswert
nicht lesenswert
hier noch die Testbench...

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

Bewertung
0 lesenswert
nicht lesenswert
hab noch zwei testsignale vergessen rauszunehmen, jetzt könnt ihr das
auch mal simulieren und mich hoffentlich aufklären...

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich glaube, der Fehler liegt daran, daß Du "data" beim Lesen nicht
hochohmig schaltest.
data ist ja dein externer Bus. Mit
data <=std_logic_vector(cnt_up);
schreibst Du etwas auf diesen Bus. Dieser Wert bleibt bestehen.
Wenn Dein Tristate-Treiber nun auch etwas schreibt, gibt's einen
Konflikt.
Du muß vor dem Lesen den Bus data mit
data <= (others => 'Z')
hochohmig schalten.

Grüße
Klaus

Autor: ehde76 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Klaus,

it works! Liegt doch eigentlich auf der Hand, das ,wenn am anderen Ende
kein Tristate dranhängt, man diesen in der Testbench simulieren muss.

Danke und Gruß,
ehde76

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.