Autor |
Beitrag |
bmkassel
Registrierter Benutzer
Beiträge: 4
|
|
nach oben |
|
|
bmkassel
Registrierter Benutzer
Beiträge: 4
|
Erstellt: 16.05.06, 14:31 Betreff: Re: DatenBus Konflikt
drucken
weiterempfehlen
|
|
|
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 |
|
|
nach oben |
|
|
Alex
Neuling
Beiträge: 8
|
Erstellt: 16.05.06, 22:09 Betreff: Re: DatenBus Konflikt
drucken
weiterempfehlen
|
|
|
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.
|
|
nach oben |
|
|
bmkassel
Registrierter Benutzer
Beiträge: 4
|
Erstellt: 23.05.06, 10:06 Betreff: Re: DatenBus Konflikt
drucken
weiterempfehlen
|
|
|
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.
|
|
nach oben |
|
|
bmkassel
Registrierter Benutzer
Beiträge: 4
|
|
nach oben |
|
|
cheshmgir2020
Stammgast
Beiträge: 24
|
|
nach oben |
|
|
|