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
hab noch zwei testsignale vergessen rauszunehmen, jetzt könnt ihr das auch mal simulieren und mich hoffentlich aufklären...
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.