.4 Versuchsreihe 4: Integrierte Logikbausteine Name: Gruppe: Theorie: Versuch: (vom Tutor abzuzeichnen) (vom Tutor abzuzeichnen) In den Versuchsreihen.5 bis.11 soll ein einfacher RISC Prozessor entworfen und auf ein FPGA abgebildet werden. Zur Einarbeitung in die Entwurfswerkzeuge und in den Entwurfsablauf wird in dieser Versuchsreihe ein Volladdierer entworfen, der zunächst mit diskreten Bausteinen aufgebaut und anschließend auf ein FPGA abgebildet wird. Lesen Sie zur Vorbereitung die Kapitel 4 und 5 im Skript. Integrierte Logikbausteine Es soll mit integrierten Logikbausteinen der Reihe 74xx ein Volladdierer aufgebaut Aufgabe 1 werden. Legen Sie zur Spezifikation des Volladdierers eine Tabelle an, die für alle möglichen Eingangsbelegungen die gewünschten Ausgabebelegungen angibt. A B C_IN S C_OUT Zum Aufbau der Schaltung stehen Ihnen die folgenden Gatter zur Verfügung: Aufgabe 2 AN2, OR2, NAN2, NOR2, INV, XOR2. Entwerfen Sie daraus eine Gatternetzliste für den Volladdierer. Hinweis: Um sich später die Arbeit zu erleichtern, sollten Sie versuchen, möglichst wenige verschiedene Gatter zu verwenden (z. B. ist eine Implementierung mit nur zwei XOR2- und drei NAN2-Gattern möglich). Hardware-Praktikum 2008: Versuchsreihe 4 1
Aufgabe 3 Markieren Sie in Ihrer Schaltung einen statisch sensibilisierbaren Pfad mit einer maximalen Anzahl von Gattern. Welches ist der Eingangs-, welches der Ausgangsknoten? Geben Sie eine Belegung der übrigen Eingänge an, so dass der Pfad sensibilisiert wird. Beachten Sie, dass auf dem Pfad alle Off-Path-Knoten einen stabilen Wert aufweisen müssen! Versuch 4 Bauen Sie auf der Experimentierplatine den Volladdierer auf. ie Logikbausteine der Reihe 74xx implementieren jeweils 4 AN, 4 OR, 4 NAN, 4 NOR und 4 XOR Gatter, sowie 6 Inverter. ie Pinbelegung ist in Abbildung.1 skizziert. Validieren Sie die korrekte Funktion des Volladdierers. Schließen Sie dazu den Volladdierer an die Ein-/Ausgabeplatine an und überprüfen Sie, ob für alle möglichen Eingangsbelegungen die korrekte Ausgabe erzeugt wird. Lassen Sie den Versuchsaufbau vom Tutor abzeichnen. Versuch gesehen A B C_IN S C_OUT 2 Hardware-Praktikum 2008: Versuchsreihe 4
Abbildung.1: Logikbausteine der Reihe 74xx. Messen Sie die Verzögerungszeit des Volladdierers entlang des in Aufgabe 3 be- Versuch 5 stimmten Pfades. Legen Sie dazu an den entsprechenden Eingang ein 1 MHz - Rechtecksignal an und verbinden Sie die übrigen Eingänge je nach erforderlicher Belegung mit VCC oder GN. Stellen Sie mit dem Oszilloskop sowohl das Eingangs- (Ch. 1) als auch das Ausgangssignal (Ch. 2) dar. Bestimmen Sie für die steigende und fallende Ausgangsflanke jeweils die Verzögerung und fügen Sie dem Protokoll jeweils eine Skizze des Schirmbildes bei. Hardware-Praktikum 2008: Versuchsreihe 4 3
Entwurf eines Volladdierers (Fulladder) Versuch 6 Erstellen Sie ein Unterverzeichnis fa und wechseln Sie in dieses. name@ralab01:~$ mkdir fa name@ralab01:~$ cd fa Versuch 7 Geben Sie die Gatternetzliste aus Aufgabe 2 in das CA System gschem (GNU Schematic Capture) ein und lassen Sie die Schaltung in VHL-Code übersetzen. Folgen Sie bitte den Anweisungen aus Kapitel 4.3.1 und 4.3.2. Wenn Sie die Eingabe Ihres Entwurfs beendet und ggf. Fehler korrigiert haben, lassen Sie sich den erfolgreichen Versuch vom Tutor bestätigen. Versuch gesehen 4 Hardware-Praktikum 2008: Versuchsreihe 4
Validierung des Volladdierers Loggen Sie sich via ssh auf einem RALAB-Rechner (siehe Kapitel A.2.3) Aufgabe 8 ein. Eine Verbindung aus den Pools der Informatik ist dabei deutlich performanter als über SL. Als Alternative können Sie nx verwenden. Ein kostenloser Client findet sich unter www.nomachine.com. Starten Sie ModelSim, wie im Kapitel 4.4 beschrieben. Vollziehen Sie den Abschnitt Lesson 2 aus dem Tutorial der Online-Hilfe nach und geben Sie einen Ausdruck (Screenshot) des ModelSim Hauptfensters, welches (auch) die Waveform zeigt ab. Hinweis: Im Verzeichnis /cad/mentor/modelsim-6.1b/modeltech/examples/tutorials/vhdl/basicsimulation/ liegen benötigten VHL-Beispieldateien. ie Gatternetzliste muss validiert werden, d. h. es muss überprüft werden, ob die Versuch 9 Funktion der Schaltung der Spezifikation genügt. Validieren Sie den Volladdierer mit Hilfe von ModelSim, indem Sie von Hand alle 8 möglichen Eingabestimuli erzeugen (im Gegensatz zum Tutorial haben Sie im Moment keine Testbench für den Volladdierer). Klicken Sie dazu mit der rechten Maustaste auf das Eingangssignal, welchem Sie einen Wert zuweisen möchten und wählen Sie den Menüpunkt Force... aus. Es öffnet sich ein Fenster, in dem Sie unter Value den gewünschten Wert (0 oder 1) angeben können. Bestätigen Sie mit OK und lassen Sie den Simulator fuer 100ns weiterlaufen, damit die Wertänderung des Signals wirksam wird. Machen Sie einen Ausdruck der Waveform für Ihr Protokoll. Hardware-Praktikum 2008: Versuchsreihe 4 5
Aufgabe 10 Synthese des Volladdierers Nachdem der Volladdierer vollständig validiert wurde, soll der Entwurf synthetisiert, d. h. in Hardware umgesetzt werden. In den vorhergehenden Schritten wurde die Gatternetzliste des Volladdierers entworfen. Welche Arbeitsschritte sind notwendig, um den Volladdierer in ein Layout für die Chipherstellung umzusetzen? Aufgabe 11 Im Praktikum wird als Zieltechnologie ein FPGA gewählt. Welche Arbeitsschritte sind notwendig, um die Gatternetzliste in Programmierdaten für den FPGA umzusetzen? Versuch 12 Für die Schaltungssynthese wird das Programm XST eingesetzt. In Kapitel 4.5.1 finden Sie eine Anleitung, wie Sie dieses Programm bedienen. Erstellen Sie die Projektdatei fa.prj und die XST Skriptdatei fa.scr wie in Kapitel 4.5.1 beschrieben und machen Sie eine Leistungsanalyse vor Place&Route für das Protokoll. 6 Hardware-Praktikum 2008: Versuchsreihe 4
Place & Route In Abbildung.2 sehen Sie den Inhalt der atei fa.ucf die von ngc2bit benötigt Versuch 13 wird. Nachdem Sie mit XST eine.ngc-atei erzeugt haben und mit einem Texteditor die atei fa.ucf eingegeben haben, muss mit ngc2bit (siehe Kapitel 4.5.1) eine Bitdatei erzeugt werden. Machen Sie eine Leistungsanalsyse nach Place&Route für das Protokoll. NET A LOC=P234; NET B LOC=P238; NET C_IN LOC=P236; NET S LOC=P157; NET C_OUT LOC=P160; Abbildung.2: Zuordnung der Ports des Volladdierers zu den Pins des Chipgehäuses für den Volladdierer. Personalisierung und Messung des FPGAs Lassen Sie das FPGA-Board von Ihrem Tutor aufbauen. Lesen Sie während des Versuch 14 Aufbaus die Anleitung für xsload in Kapitel 5.2 nach. Personalisieren Sie das FPGA. Über die roten LEs auf dem FPGA-Board wird die Belegung der FPGA Pins angezeigt. Abbildung.3 zeigt die Bedeutung der LEs. Abbildung.3: Bedeutung der LEs. Signale können mit Hilfe von Tastern auf dem Board, die aus dem Gehäuse herausgeführt sind, angelegt werden. Abbildung.4 zeigt die Belegung der Taster: Achtung: Ziehen Sie niemals einen Stecker vom FPGA-Board. Bei falschem Anschluss der Stecker kann das FPGA-Board zerstört werden. Überprüfen Sie mit Hilfe der Taster, ob die Personalisierung des FPGAs erfolgreich Versuch 15 Hardware-Praktikum 2008: Versuchsreihe 4 7
Abbildung.4: Belegung der Taster. abgelaufen ist. Legen Sie dazu alle möglichen Eingabekombinationen an die Taster A, B und C_IN an. ie Ausgabewerte können direkt an den LEs abgelesen werden. Lassen Sie den Versuch vom Tutor abzeichnen. Versuch gesehen Versuch 16 Schalten Sie alle Geräte bis auf den Rechner aus. Überprüfen Sie, ob alle Leitungen, Multimeter und Tastköpfe aufgeräumt sind. Stellen Sie die Stühle an die Tische und vergewissern Sie sich nochmals, dass der Platz in ordnungsgemäßem Zustand ist. Lassen Sie bitte keinen Unrat unter den Tischen stehen! 8 Hardware-Praktikum 2008: Versuchsreihe 4