Forum: FPGA, VHDL & Co. ISE IOBUF MACRO


von ehde76 (Gast)


Angehängte Dateien:

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

von ehde76 (Gast)


Angehängte Dateien:

Lesenswert?

hier noch die Testbench...

von ehde76 (Gast)


Angehängte Dateien:

Lesenswert?

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

von Klaus Falser (Gast)


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

von ehde76 (Gast)


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

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
Noch kein Account? Hier anmelden.