VHDL-Forum - ModelSim

DatenBus Konflikt

DatenBus Konflikt

kann mir jemanden helfen? Seit Tagen versuche ich die Simulation von ein ALU und AKKumulator im griff zu Kriegen??
in dem ordner sind die nötigen Dateien.
MFG

Re: DatenBus Konflikt

Zitat: bmkassel
kann mir jemanden helfen? Seit Tagen versuche ich die Simulation von ein ALU und AKKumulator im griff zu Kriegen??
ich habe dafür ein Test Bench geschrieben alle nötigen Dateien sind als Anhnag zu haben.
MFG

Re: DatenBus Konflikt

Hallo Bmkassel,

ich denke Du beziehst Dich auf das "00X0" auf den Wert des Databus
bei 1 us.
Sowie's aussieht benutzt Du das Signal Databus als inout sowohl aus der
Testbench als auch aus deinem Akku. Im Akku ist zwar ein Tristate-Signal eingebaut, in der Testbench wird das Singal aber immer getrieben.
Das Signal ist als "resolved" definiert, somit in VHDL also zulässig.
Bei 1 us treibt dein Akku den Wert aus dem internen Register
(LoadDaBus=1, AccuIntern="0000") und Deine Testbench immer noch
den Stimuliwert (0010). Die Resolution Funktion macht daraus eben
das X (00X0).

Ob die Testbench so Sinn macht, kann ich nicht sagen, dazu kenne ich
Deine Schaltung zu wenig (ich würde z.B. das Signal nicht als Tristate
definieren sondern in ein DataBusIn und in ein DataBusOut aufteilen).
Dazu musst Du aber schon etwas mehr infos geben als "geht nicht" ... :-)

Gruss,

Alex


PS: Ich hätte das Thema nicht unter ModelSim plaziert, hat mit dem
Tool m.E. nichts zu tun.

Re: DatenBus Konflikt

Hallo Alex,

Danke für die Antwort.

Die Schaltung besteht aus einem ALU und einem Akkumulator.Dieses Komponent ALU_AKKU muss ein Adition mit den Beiden Zahlen a="0001" und b="0010" rechnen. Das Ergbnis "0011" muss auf dem datenbus gelegt. Wie du gesehen hast im Modellsim die Resultat ist "00x0" also ein Buskonflikt.Sicherlich kann man das Datenbus trenen "DataBusIN" , "DataBusout" und das funktioniert prima!! aber es soll auch funktionieren mit einem gemeinsamen Datenbus(inout) zwischen ALU und Akkumulator.

Das Test Bench funktioniert wie folgt:

Der erste Wert a = "0001" wird auf dem Databus gelegt (LDAUNM).Dieses Wert wird im Akkumulator gespeichert.
Der zweiete Wert b = "0010" wird auf dem Databus gelegt so kann die ALU die Beide Werte Addieren(a+b) und das Ergebnis auf dem Datenbus zurückschreiben.

Re: DatenBus Konflikt

Hier noch mal ein Bild für Die Schaltung ALU_AKKU

Re: DatenBus Konflikt

لابیاپلاستی با لیزر مونالیزا
هزینه لیزر مونالیزا تاچ
لابیاپلاستی برای چه کسانی مناسب است؟
واژینیسموس چیست؟