Übung 9

Benutzeravatar
Maradatscha
Computerversteher
Computerversteher
Beiträge: 353
Registriert: 2. Okt 2006 18:53

Übung 9

Beitrag von Maradatscha »

da bin ich mal wieder ;-)

auf dem Aufgabenblatt steht, der Speicher habe einen 8 bit Addresseingang. Ich habe es bisher mit meinem memory generator nicht geschafft mehr als 2 bit adresseingang zu bekommen bei 8 bit breiten aus und eingängen. ein problem könnte sein, dass ich ISE 9 benutze und dabei nur der Block Memory Generator v2.4 ist und nicht der v2.7
mach ich was falsch?
oder soll addra bei dem gar nciht die addresse darstellen die ich suche?

edit:
ich glaub mir fehlt irgendwie der punkt an dem ich sagen kann, wie gross der Speicher werden soll. Oder ich versteh das ganze noch nicht komplett

edit2:
bei der ALU:

Schreibe Inhalt des Akkus in das Ausgaberegister
die ALU hat keine direkte Verbindung zum Ausgabe register, sondern nur über den AKKU, oder überseh ich was?

Wolfgang
Dozentin/Dozent
Beiträge: 359
Registriert: 21. Apr 2004 17:54

Re: Übung 9

Beitrag von Wolfgang »

Hallo zusammen,

angehängt mal das Menü, an dem man die Speichergröße einstellen kann.
Das muß auch bei Dir funktionieren :-) Die Speicher sind schon länger etwas größer ;-)

Zum Thema AKKU: Der AKKU-Inhalt wird in das D_OUT geschrieben! Richtig.
Erreicht wird das (ohne ALU) durch setzen des "lddout".

Viele Grüße

Wolfgang
Dateianhänge
mem.jpg
mem.jpg (130.09 KiB) 1269 mal betrachtet

Benutzeravatar
m0ep
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 189
Registriert: 5. Okt 2006 22:52
Wohnort: Bensheim
Kontaktdaten:

Re: Übung 9

Beitrag von m0ep »

Ich habe vielleicht einen kleinen Verbesserungsvorschlag beim Zustandsgraphen des Steuerwerks.
Wäre es nicht besser noch eine Transition von "Decode_OPC" zu "Fetch_OPC" hinzuzufügen, falls ein NOP auftritt.
So müsste mach nicht extra über "exec_ALUOP" wenn eh nichts gemacht wird.
Lasst mich Arzt, ich bin durch!

SebFreutel
Computerversteher
Computerversteher
Beiträge: 317
Registriert: 30. Okt 2006 21:54

Re: Übung 9

Beitrag von SebFreutel »

Der Sache mit dem NOP stimm ich zu, ist etwas sinnlos.


Ich frage mich gerade, wie das mit dem SetC/ClrC gedacht ist.
Auf den Folien haben wir's ja als eine ALU-Operation eingeführt, auf dem großen Schaubild gibt es aber extra Steuerleitungen vom Steuerwerk aus zum Status-Register... reicht da nicht eins von beidem?

Christoph-D
Computerversteher
Computerversteher
Beiträge: 325
Registriert: 11. Dez 2005 13:14
Wohnort: Darmstadt

Re: Übung 9

Beitrag von Christoph-D »

Ich hätte auch eine Frage zu den Maschinenbefehlen SETC und CLRC: Im Aufgabenblatt hat SETC den opcode 0x90 und CLRC 0x80, der Simulator im Downloadverzeichnis erwartet es aber genau andersherum, also SETC = 0x80 und CLRC = 0x90. Wer hat Recht?
"I believe in the fundamental interconnectedness of all things." (Dirk Gently)

Wolfgang
Dozentin/Dozent
Beiträge: 359
Registriert: 21. Apr 2004 17:54

Re: Übung 9

Beitrag von Wolfgang »

Hallo zusammen,

stimmt...das SETC und CLRC war ursprünglich mal anders definiert.
Wie rum Ihr es macht ist letztens gleich. Ich habe es wie in den Folien gemacht.
Allerdings müßte ich noch den Simulator anpassen. Werde ich bei Gelegenheit machen.
Danke für den Hinweis.

Gruß Wolfgang

SebFreutel
Computerversteher
Computerversteher
Beiträge: 317
Registriert: 30. Okt 2006 21:54

Re: Übung 9

Beitrag von SebFreutel »

Wieso will der Speicher nicht wie ich will? :/

Mit dem IP-Core-Generator 2.7 erstellt (Single Port RAM), initialisiert mit dem Beispielprogramm (so hoff ich zumindest) und aufgefüllt mit 0en, aber bei einem Lesezugriff auf die einzelnen Adressen krieg ich nur "Kein Anschluss unter dieser Nummer"-ZZZs. Was mach ich denn da falsch?
timing_hochohmig2.png
timing_hochohmig2.png (7.96 KiB) 1115 mal betrachtet

Christoph-D
Computerversteher
Computerversteher
Beiträge: 325
Registriert: 11. Dez 2005 13:14
Wohnort: Darmstadt

Re: Übung 9

Beitrag von Christoph-D »

Wenn du den Speicher generierst wird zusätzlich eine .veo-Datei erzeugt. In dieser Datei steht (am Ende) ein Beispiel für die Instanzierung des Speicher-Blocks, hast du es damit versucht?

Bei deinem testbench scheint addra übrigens nicht mit clock synchronisiert zu sein, aber das kann erst stören, wenn der Speicher grundsätzlich funktioniert.
"I believe in the fundamental interconnectedness of all things." (Dirk Gently)

SebFreutel
Computerversteher
Computerversteher
Beiträge: 317
Registriert: 30. Okt 2006 21:54

Re: Übung 9

Beitrag von SebFreutel »

Christoph-D hat geschrieben:Wenn du den Speicher generierst wird zusätzlich eine .veo-Datei erzeugt. In dieser Datei steht (am Ende) ein Beispiel für die Instanzierung des Speicher-Blocks, hast du es damit versucht?
Ja, so wie's da steht hab ich meinen Speicher auch angelegt, bzw. legt ihn auch das ISE-Tool schon automatisch an wenn ich eine Testbench zum Speicher generiere.
Ich würde ja irgendwie annehmen dass ich bei diesem Einstellungsdialog vom IP-Core-Generator ein falsches Häkchen gemacht hab oder ähnliches, aber mir erscheint alles plausibel so wie ichs angegeben hab...
Christoph-D hat geschrieben:Bei deinem testbench scheint addra übrigens nicht mit clock synchronisiert zu sein, aber das kann erst stören, wenn der Speicher grundsätzlich funktioniert.
das stimmt, hatte ich hier zu Testzwecken gemacht damit mir auffällt falls es Fehler bei den Flanken gibt, und dann nicht mehr geändert.

Wolfgang
Dozentin/Dozent
Beiträge: 359
Registriert: 21. Apr 2004 17:54

Re: Übung 9

Beitrag von Wolfgang »

Guten morgen,

leider habe ich auch keine Idee :-(
Bei mir ging´s ohne Probleme.
Schau Dir doch mal die Datei *.mif an. (wobei * der Name Deines Verilog HDL Moduls ist)
Die wird nämlich in dem Verilog HDL Modul geladen (.C_INIT_FILE_NAME("MEM.mif"),)
Da sollte das Programm dann zu sehen sein.

Gruß Wolfgang

SebFreutel
Computerversteher
Computerversteher
Beiträge: 317
Registriert: 30. Okt 2006 21:54

Re: Übung 9

Beitrag von SebFreutel »

Ist es, und wie ich gerade festgestellt habe, hat ein simpler Neustart geholfen, jetzt sieht das ganze wunderbar aus :)
timing_funktioniert.png
timing_funktioniert.png (8.46 KiB) 1057 mal betrachtet
Hätt ich da doch mal gleich dran gedacht, dann hätt ich mir Stunden Testen sparen und Fußball gucken können...

yourmaninamsterdam
Nerd
Nerd
Beiträge: 681
Registriert: 26. Okt 2006 14:04
Kontaktdaten:

Re: Übung 9

Beitrag von yourmaninamsterdam »

Wenn ich versuche, den generierten Speicher zu testen, bekomme ich sowas:
Compiling module glbl
Compiling module BLK_MEM_GEN_V2_7_output_stage(C_...
Compiling module BLK_MEM_GEN_V2_7(C_ADDRA_WIDTH=8...
ERROR:Simulator:615 - "/build/xfndry6/IP0_K.14/env/Databases/ip/export/rtf/verilog/src/XilinxCoreLib/BLK_MEM_GEN_V2_7.v" Line 497. Argument given for file Identifier is not correct
ERROR: no Simulation Engine found in the Transform Input that matches MemoryTest_isim_beh.exe
Hat irgendwer eine Idee, was man da machen kann?
Ich habe bislang nichts weiter getan, als den Speicher zu generieren. Der wird als *.xco im Implementation-Browser angezeigt...

Benutzeravatar
m0ep
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 189
Registriert: 5. Okt 2006 22:52
Wohnort: Bensheim
Kontaktdaten:

Re: Übung 9

Beitrag von m0ep »

Ich wollte jetzt auch mal testen ob der Speicher bei mir funktioniert.
Also erstmal *.coe erstellt und beim Memory Generator als Initfile angegeben (steht nun auch in der *.mif drin)
Dann ein Testmodul erstellt und MEM als uut ausgewählt.

Doch kommen bei mir immer nur 'hZZ aus 'm Ausgang und ich bekomme folgende Warnung

Code: Alles auswählen

WARNING:HDLCompiler:559 - "test_mem.v" Line 38. Instantiating unknown module MEM
Aber das Modul wurde eindeutig in ISE geladen, da ich es nicht neu reinladen kann
sehr sehr komisch :?
Lasst mich Arzt, ich bin durch!

SebFreutel
Computerversteher
Computerversteher
Beiträge: 317
Registriert: 30. Okt 2006 21:54

Re: Übung 9

Beitrag von SebFreutel »

Probiers auch mal mit nem Neustart, das sieht meinem Problem weiter oben sehr ähnlich

Benutzeravatar
m0ep
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 189
Registriert: 5. Okt 2006 22:52
Wohnort: Bensheim
Kontaktdaten:

Re: Übung 9

Beitrag von m0ep »

Also die Warnung ist weg, aber ich bekomme immer noch 8'hZZ raus :|

Bild

so sieht die *.mif aus
http://nopaste.planerd.net/1682
Lasst mich Arzt, ich bin durch!

Antworten

Zurück zu „Archiv“