Digitalschaltungen

Transkrypt

Digitalschaltungen
Labor für Chip-Design und
Mikroelektronik
Praktikum
Technologie der Funktionswerkstoffe
Digitalschaltungen
(Versuch 3)
Gliederung:
1. Einleitung
2. Grundlagen: Hierarchisches Entwurfsverfahren
3. Das Entwurfswerkzeug eProduct Designer
4. Versuchsschaltungsschaltungen
5. Versuchsdurchführung
6. Versuchsvorbereitung
7. Versuchsauswertung
1. Einleitung
Seit der Öffnung der Weltmärkte Anfang der 90-er Jahre sind höchste Qualität und eine möglichst frühe Markteinführung neuer Produkte eine wesentliche Voraussetzung für den Erhalt
der Wettbewerbsfähigkeit und den Gewinn neuer Marktanteile. Bei innovativen hochkomplexen elektronischen Schaltungen scheinen diese beiden Forderungen, einerseits nach steigenden Qualitätsstandards und andererseits trotz zunehmender Komplexität immer kürzeren
Entwicklungszeiten, einen nur schwer lösbaren Widerspruch darzustellen.
Durch einen systematischen Einsatz von CAD-gestützten Entwurfswerkzeugen und die Beachtung erprobter Entwurfsabläufe ('Design-Flows') läßt sich dieses Problem jedoch relativ
gut bewältigen. Bei methodischem Vorgehen kann, trotz steigender Integrationsdichte und
wachsender Komplexität, digitale Hardware in immer kürzerer Zeit mit einer bemerkenswerten Fehlerfreiheit entworfen werden.
Neben der eigentlichen, spezifizierten Funktion der Schaltung nimmt bei modernen DesignFlows die Berücksichtigung der Testbarkeit und die Testvorbereitung eine zentrale Rolle im
Entwurfsprozeß ein, denn bei nahezu konstant bleibender Anzahl externer Anschlüsse (Pins)
werden die komplexeren Schaltungen für den Test immer undurchsichtiger und die Testkosten steigen exponentiell an.
Wirtschaftliche Tests können nur noch gewährleistet werden, wenn bereits zu Beginn des
Entwurfsprozesses die Testmethode festgelegt wird und die zu entwerfende Schaltung um
die erforderliche Testlogik erweitert wird. Parallel zum Entwurf der Schaltung muss mit Hilfe
von Logiksimulationen, Fehlersimulationen und ATPG (Automatic Test Pattern Generation)
dann die Möglichkeit des 100%-igen Tests der Schaltung nachgewiesen werden. Die hierbei
entstandenen Testmuster sowie die laut Simulation zu erwartenden Ausgangsreaktionen der
Schaltung werden später bei praktischen Tests an der realisierten Schaltung verwendet.
Neben diesen CAD-gestützten Entwurfsverfahren, die zu einer weitgehenden Fehlerfreiheit
führen, kann die Zeit bis zur Markteinführung der Produkte vor allem auch durch die Realisierung mit feldprogrammierbaren Gate-Arrays (FPGAs) verkürzt werden. Durch die Fortschritte
in der Halbleitertechnologie ist es mittlerweile möglich, Schaltungen mit bis zu mehreren
100K Gatteräquivalenten in FPGAs zu programmieren. Dies ermöglicht insbesondere auch
kleineren und mittleren Unternehmen kostengünstig und zeitsparend integrierte Schaltungen
in kleinen Stückzahlen zu realisieren. Während FPGAs im eigenen Labor innerhalb von wenigen Sekunden programmiert und bei Bedarf re-programmiert werden können, müssen Gate-Array-; Standardzell- und 'full-custom'-Entwürfe bei Halbleiterherstellern gefertigt werden.
Hierbei können pro Durchlauf immer nur mehrere Tausend integrierte Schaltungen realisiert
werden. Ein Durchlauf dauert dabei mindestens acht Wochen und kostet mehrere zigtausend Euro.
Bei eventuell erforderlichen Änderungen ist ein erneuter Durchlauf notwendig, was zu einer
Vervielfältigung der Kosten und einer erheblichen Verzögerung bis zur Markteinführung führt.
Da im Rahmen eines vierstündigen Praktikumversuchs es nicht möglich ist, eine hochkomplexe Schaltung zu verstehen und zu entwerfen, werden im Rahmen dieses Versuchs ein
einfacher BCD-Zähler sowie eine überschaubare 4-BIT Addier-/Subtrahierschaltung verwendet. Anhand dieser Demonstrationsschaltungen werden die wesentlichen Schritte eines
durchgängigen, hierarchischen 'Bottom-Up' und eines 'Top-Down' Entwurfs durchlaufen. Die
Bedeutung der frühzeitigen Festlegung der Teststrategie und die Integration der hierfür erforderlichen Testhilfen wird am Beispiel des Zählers verdeutlicht.
Als Entwurfswerkzeug wird 'PADS POWER PCB' von 'Mentor Graphics' eingesetzt.
2. Grundlagen: Hierarchische Entwurfsverfahren
Schaltungen mit überschaubarer Komplexität lassen sich durchaus sinnvoll im 'Buttom-Up'Verfahren entwerfen. Bei dieser Vorgehensweise werden bei Digitalschaltungen Teilfunktionen auf Gatterebene entworfen und verifiziert. Diese Teilschaltungen werden zu Schaltungssymbolen zusammengefaßt und in übergeordneten Schaltplänen wiederverwendet. Dieses
2
Verfahren kann in mehreren Stufen durchlaufen werden, bis schließlich eine, die Spezifikation erfüllende Schaltung erstellt ist.
Ein Vorteil dieser Methodik ist, daß bereits von Anfang an mit den realen Laufzeiten der verwendeten Gatter bzw. Technologie gearbeitet werden kann. Nachteilig ist, dass bei dieser
Arbeitsweise keine Arbeit im Team sinnvoll ist. Dieses Verfahren wird industriell mittlerweile
nur noch für den Entwurf von komplexen Schaltungselementen für Bibliotheken verwendet.
Beim Entwurf hochkomplexer Schaltungen ist das hierarchische Prinzip des 'Top-Down'Entwurfsverfahrens unverzichtbar.
Im ersten Schritt wird auf der Basis der Spezifikation eine 'Black Box' der zu entwerfenden
Schaltung mit den erforderlichen Anschlüssen erzeugt. Im folgenden Entwurfsschritt wird die
Gesamtschaltung partitioniert, d. h. in Teilschaltungen zerlegt und es wird eine geeignete
Teststrategie vereinbart. Die Teilschaltungen können bei Bedarf weiter zerlegt werden. Bei
der Partitionierung ist darauf zu achten, daß möglichst viele Teilschaltungen allgemein gehalten werden, um sie bei späteren Entwürfen als bewährte Module wieder verwenden zu können. Die Verfeinerung der einzelnen Module wird solange fortgeführt, bis sie aus Bibliothekselementen oder Grundgattern aufgebaut sind. Anschließend werden die einzelnen Module
sowie die Gesamtschaltung umfassend simuliert.
Nach der Realisierung in Silizium wird die Schaltung zum Test mit den während der Simulation erzeugten Testmustern stimuliert. Als Vergleichsdaten werden die per Simulation erhaltenen Ausgangsmuster verwendet. Um das korrekte Zusammenspiel der Subsysteme zu
prüfen, darf beim Test ein grober Funktionstest nicht fehlen.
3
Das Entwurfswerkzeug PADS POWER PCB (PADS FLOW 9.3)
Das PADS Power PCB von Mentor Graphics ist ein sehr leistungsfähiges Entwurfswerkzeug,
das sowohl unter Windows auf PCs als auch unter UNIX lauffähig ist. Dieses Tool hat sich
als Industrie-Standard bei PC Anwendungen etabliert. Das PADS Power PCB ist modular
aufgebaut; die zahlreichen Module können auf die jeweilige Anwendung zugeschnitten werden, wobei nur wenige Module obligatorisch sind. Von nahezu dreißig Modulen kommt während dieses Versuchs nur eine kleine Auswahl zum Einsatz.
Da das Werkzeug ein streng projektorientiertes Arbeiten erzwingt, muß im ersten Arbeitsschritt mit Hilfe des Project-Wizards ein Projekt im Dashboard angelegt werden.
Im Projektordner sind neben dem Projektnamen und dem Arbeitsverzeichnis ('workdirectory') die Pfade aller im Projekt verfügbaren Bibliotheken enthalten. Neben den bereits
mit dem Programmpaket gelieferten ca. 800 Bibliotheken lassen sich noch zahlreiche herstellerspezifische FPGA-Bibliotheken einbinden. Beim Anlegen des Projektes wird im Arbeitsverzeichnis eine Datei 'viewdraw.ini' erstellt, in der alle augenblicklichen Einstellungen
für das Modul 'DxDesigner (ViewDraw' zur graphischen Schaltplaneingabe dokumentiert
sind.
Zur Schaltungsbeschreibung bietet PADS verschiedene Wege an. Das Schaltverhalten kann
mit Hilfe von Zustandsdiagrammen dargestellt und dann automatisch in ein synthetisierba3
res VHDL-Modell umgewandelt werden. Ausgehend vom VHDL-Modell, das auch manuell
erstellt werden kann, kann per Synthese eine Gatterschaltung oder auch direkt eine Programmierdatei für verschiedene FPGA-Bausteine erstellt werden. Zur vertrauten graphischen Schaltplaneingabe mit Hilfe von Bibliotheksbausteinen steht das Modul 'DxDesigner
' zur Verfügung, das während des Praktikums zum Einsatz kommt.
Zur Verifikation der zu entwerfenden Schaltungen bietet PADS sowohl die Möglichkeit der
'mixed-level' als auch der 'mixed-signal' Simulation. D. h. mit PADS können gemischt analog/digitale Schaltungen mit Teilbeschreibungen auf verschiedenen Hierarchieebenen durchgeführt werden. Hierbei kommt das Simulations- Tool ‚ModelSim‘ zum Einsatz.
Die Simulationsergebnisse lassen sich derart darstellen, daß sie mit Hilfe existierender Interfaces in verschiedenen Testsystemen weiterverwendet werden können.
Sollten die entworfenen Schaltungen in programmierbaren Bausteinen (FPGA, CPLDs...)
realisiert werden, so lassen sich in PADS die Programmierdateien für verschiedene Hersteller direkt erzeugen bzw. es besteht die Möglichkeit, EDIF-Files für Netzlisten und Schematics
zu exportieren, mit deren Hilfe der Übergang zu herstellerspezifischen Entwurfssystemen
möglich ist.
Für Schaltungen, die als Leiterplatte realisiert werden, besteht eine OLE-Verknüpfung zum
leistungsfähigen Layout-System PADS Layout bzw. Logic, sowie ein Link zum JTAGSystem, falls die Schaltungen mit Boundary-Scan ausgestattet sind.
Für den Einsatz von 'PADS’ ist folgende File-Struktur erforderlich:
Laufwerk (H): \ cd
\ ......
\ …..
\ epd
\ ......
\ vf
\ADDER
\ .....
4
Die Versuchsschaltung
Da es utopisch ist, im Rahmen eines ca. 4-stündigen Praktikumversuchs eine komplexe
Schaltung vom Entwurf bis zum Test bearbeiten zu wollen, werden die prinzipiellen Schritte
der hierarchischen Entwurfsverfahren und des Tests an einem BCD-Zähler und einer
überschaubaren 4-Bit Addierer-/Subtrahierer-Schaltung, die schon aus der Lehrveranstaltung 'Grundzüge der Elektronik II' bekannt sind, erläutert.
4
Spezifikation der Versuchsschaltungen:
a)
'Top-Down-Up' Verfahren
Gefordert wird eine Schaltung, die es ermöglicht, eine 4-Bit Dualzahl B zu einer 4-Bit Dualzahl A zu addieren bzw. B von A zu subtrahieren. Ein extern zugängliches Kontrollsignal ST soll steuern, ob eine Addition oder eine Subtraktion ausgeführt wird. ST = 0 soll eine Addition; ST = 1 eine Subtraktion auslösen. Bei der Subtraktion muss erkennbar sein, ob das Ergebnis als negative
oder positive Zahl zu werten ist.
Hinweis: Entwerfen Sie zunächst die Schaltung für die Addition und ergänzen
Sie bitte diese erst nach der Verifikation der vollen Funktionalität zu geforderten Addier-/Subtrahierschaltung
b) 'Bottom-Up' Verfahren
Zu entwerfen ist ein Synchronzähler, der von 0 bis 999 zählt und beim Überlauf einen Schalttakt für die nächst höheren Dekaden erzeugt.
c)
Prüffreundlicher Entwurf
Am Beispiel eines 32-Bit Zählers ist der wirtschaftliche Vorteil einer prüffreundlich entworfenen Schaltung bezüglich Testkosten auf zu zeigen.
Zu a):
Um das 'Top-Down'-Verfahren nachzuvollziehen, wird zunächst das Symbol der Gesamtschaltung mit der erforderlichen Anzahl von Ein- und Ausgängen erzeugt. Die Schaltung
dann im folgenden Entwurfsschritt in 4 Teilschaltungen partitioniert, wobei jede Teilschaltung
die Addition einer einzelnen Stelle der 4-Bit Dualzahl übernimmt. Dieser sogenannte Volladdierer, der drei Bits addiert, wird im nächsten Schritt aus Halbaddierern aufgebaut, die nur
zwei Bits addieren können. Als letzte Stufe wird entsprechend dem Regularitätsprinzip der
Halbaddierer aus fünf NAND Gattern aufgebaut
Für die Verifikation und den späteren Test sind die Stimuli derart zu wählen, dass in jeder
Stufe die volle Funktionalität gewährleistet werden kann; d. h. es sind alle Bitkombinationen
zu testen.
Zu b):
Ausgehend von einem JK-Flip-Flop wird durch geeignete Beschaltung ein Toggle erzeugt,
das mit jedem neuen Taktsignal seinen Ausgang ändert (0-1-0-1-0-..). Diese Schaltung wird
in ein neues Schaltsymbol überführt, mit dem ein Dekadenzähler (0 – 9) aufgebaut wird. Mit
Hilfe eines für den Dekadenzähler generierten Symbols wird der gesuchte Zähler (0 – 999)
aufgebaut
5
Zu c):
Anhand eines 32-Bit Zählers soll aufgezeigt werden, dass ohne prüfgerechten Entwurf der
Test der Schaltung bei Verwendung eines 10 MHz-Taktes bis zu 880 sec dauern kann, was
bei ca. 3ct pro Sekunde Testzeit zu Prüfkosten von 26,40€ führen würde, d.h. das Bauteil ist
wirtschaftlich nicht produzieren und zu vermarkten.
Bei einer prüffreundlichen Schaltung unter Verwendung der 'Scan-Design-Technik' kann die
gleiche Prüfschärfe in nur 96 µsec erreicht werden, was vernachlässigbare Testkosten bedeutet. Das Bauteil lässt sich nun wirtschaftlich herstellen.
Dieser Versuchsteil wird am Praktikumstermin anhand einer vorgefertigten Schaltung diskutiert und demonstriert, zumal hierfür noch die Grundlagen fehlen. Mit diesem Versuchsteil
wird auch der moderne Schaltungsentwurf auf Basis feldprogrammierbarer Schaltungen vorgestellt.
6
Startvorbereitungen treffen- Projekt anlegen
Schalten Sie den Rechner ein und warten Sie, bis das Betriebssystem Windows 7 komplett
gebootet wurde. Das Programm `VMWare- Workstation´ sollte nun automatisch starten. Ist
dies nicht der Fall, starten Sie es durch einen Doppelklick auf das Icon
, welches Sie auf
dem Desktop finden. Stecken Sie jetzt den vom Labor ausgehändigten USB- Stick an.
Wählen Sie das Image PADS Flow 9.3 + ModelSim DE_PLUS aus der angezeigten Liste
aus. Bestätigen Sie ihre Auswahl mit `Play virtual machine´. Nun startet die gewohnte Umgebung mit allen Programmen die Sie benötigen. Erweitern Sie die virtuelle Umgebung, falls
dies nicht automatisch geschieht, in den Vollbild-Modus.
Wird das angeschlossene Speichermedium vorschriftsgemäß erkannt, sollte diesem immer
der Laufwerksbuchstabe H:/ zugewiesen werden. Sollte dies einmal nicht fehlerfrei funktionieren müssen Sie das Medium von Hand anmelden.
Speichern Sie ihre Projekt- Daten nur auf diesem Home-Directory ab!
auf dem Desktop das 'Dashboard 9.3
Starten Sie anschließend mit Hilfe des Icons
PADS'. Falls die Ordner-Struktur noch nicht existent ist werden die erforderlichen Pfade in
Ihrem Home Directory auf dem Stick angelegt und alle notwendigen Files kopiert.
Mit Hilfe des Dashboards werden neue Projekte angelegt, bzw. sollten bereits angelegte Projekte immer aus dem Dashboard heraus gestartet werden. Dies hat den Vorteil, dass ein
hinterlegtes Projekt- Template geöffnet wird und Sie keine Libraries mehr einbinden müssen.
Vor Beginn der eigentlichen Entwurfsarbeiten muss ein neues Projekt angelegt werden.
Führen Sie hierzu bitte folgende Schritte aus:
 Selektieren Sie im Frame 'Folders' mit der rechten Maustaste 'Projects' und
wählen Sie im sich öffnenden Fenster mit der linken Maustaste 'Create Project...'. Erzeugen Sie unter dem Pfad 'H:\cd\epd\vf' das Projekt 'adder'.
 Bestätigen Sie ihre Eingaben mit OK
 Nach kurzer Zeit öffnet sich der DxDesigner automatisch mit den voreingestellten
Projekt- Settings. Das Projekt wird unter dem von ihnen gewählten Namen auf
dem USB- Stick abgelegt.
Das Projekt ist nun erfolgreich angelegt und Sie können nun mit Hilfe von 'DxDesigner'
Schaltungsunterlagen erstellen und mit 'ModelSim' verifizieren.
7
1. 4-Bit Addierer - Top-Down Entwurfsprinzip
Beim Top-Down Verfahren wird zunächst das Schematic für die höchste Beschreibungsebene erstellt und die Schaltung anschließend verfeinert, d.h. von „Oben“ nach „Unten“ entwickelt.
2.1 Erstellen eines Symbols für den Top-Level
Für den zu entwerfenden 4-Bit Addierer muss infolgedessen zunächst ein neues Top-Level
Symbol 'adder_4bit' mit den erforderlichen Ein- und Ausgängen erzeugt werden. Verwenden Sie zur Generierung des erforderlichen Symbols den Symbol-Wizard, der unter File 
New  Library Symbol zu finden ist. Wählen Sie bei der entsprechenden Anfrage 'Launch
Symbol Wizard' und benennen Sie das Symbol:
Wählen Sie im Step1 als block type 'Composite' und 'Do not fracture symbol':
8
Den Schritt 2 übernehmen Sie ohne Änderung. Bei Schritt 3 ist es wichtig, dass der Knopf
„Add PCB layout properties to the symbol“ gedrückt ist, damit später ein entsprechendes
Package erzeugt werden kann. Bei Schritt 4 geben Sie als PKG_TYPE den Typ DIP16 an,
für ein DIP Gehäuse mit 16 Anschlüssen:
In Step 5 wird das eigentliche Symbol erzeugt. Dazu definieren Sie zuerst die Busse A und B
mit jeweils 4 Bits und den Übertrag CIN als Eingang auf der linken Seite, und den Bus S mit
dem Übertragsausgang C_OUT auf der rechten Seite. Die Pin-Number am DIP16-Gehäuse
wurde dabei so gewählt, das die Pins 8 und 16 für GND und VCC frei sind:
9
Nach Erzeugen der Pins wählen sie beide Pin-Zeilen für IN und OUT der Reihe nach aus,
und wandeln diese in Einzelbits um (rechte Maustaste  UnBundle):
10
Versuchen Sie nun, entsprechend Abstand zwischen den verschiedenen Signalen
einzufügen. Final sollte Ihr Symbol-Wizard folgendermaßen aussehen:
11
2.2 Erstellen des Top-Level Schaltplans (Schematic)
Der Top-Level Schaltplan besteht nur aus der Instanziierung des Symbols für den 4-Bit
Addierer. Erzeugen Sie dazu im DxDesigner ein neues Schematic mit File  New  Schematic. Nennen Sie das Schematic im ‚Navigator‘ um zu „TopLevel“ (falls der Naviagtor nicht
angezeigt wird, kann er mit dem Symbol
eingeblendet werden):
im DxDatabook, um die Symbol- Libraries sichtbar zu
Klicken Sie nun auf Show CL View
machen. Wählen Sie das erzeugte Symbol adder_4bit an. Mit dem Schalter „Place Symbol“
lässt es sich im Schematic platzieren. Gleichzeitig wird das Decal des erzeugten Bauteils
angezeigt (hier DIP16)
12
2.3 One step down: Schematic für den 4-Bit Addierer erstellen
Klicken Sie mit der rechten Maustaste auf das Symbol, und erzeugen Sie das Schematic für
das Symbol mit „Push Schematic“. In diesem Schematic sollen 4 Volladdierer verwendet
werden. Zuerst müssen Sie wie zuvor das Symbol für einen Volladdierer (full_adder) erzeugen. Achten Sie darauf, im Schritt 3 den Schalter „Add PCB layout properties to the symbol“
auszuschalten:
Fügen Sie schließlich das neue Symbol 4-mal in das adder_4bit Schematic ein:
13
Nun muss die Schaltung nur noch verdrahtet werden. Dazu verwenden Sie dem Knopf
,
könund verbinden die äußeren Ports mit den vier Symbolen. Mit dem normalen Pfeil
nen Sie Ports, Instanzen und Leitungen verschieben. Versuchen Sie damit, folgenden
Schaltplan zu erstellen:
14
2.4 Schematic des Volladdierers
Völlig analog erzeugen Sie den Volladdierer aus zwei Halbaddierern. Für den Halbaddierer
erzeugen Sie ein neues Symbol. Der Name des Halbaddierers soll half_adder lauten.
Ferner wird ein Oder-Gatter benötigt, das Sie aus der `builtin Library´ beziehen.
Der Volladdierer könnte somit folgendermaßen aussehen:
Zuletzt muss noch der Halbaddierer entworfen werden. Verwenden Sie hierzu nur die nand2Gatter aus der `builtin Library´:
Der DxDesigner hat eine Auto- Backup- Funktion. Änderungen im Projekt werden zeitnah
automatisch übernommen. Wenn Sie den DxDesigner schließen warten Sie noch mit dem
Abmelden des USB- Sticks bzw. Ausschalten der virtuellen Maschine bis alle Änderungen
übernommen wurden. Sollten Sie dies nicht beachten, können Sie ihr angelegtes Projekt
nicht mehr öffnen!
15
2.5 Simulation mit Modelsim
Um die Simulation einfach steuern zu können, öffnen Sie das Top-Level Schematic, und erzeugen drei Busse A[3:0], B[3:0] und S[3:0] mit dem Symbol
. Die Einzelbits der Busse
werden dann mit
an das 4-Bit Addierer-Symbol angeschlossen. Fügen Sie auch zwei
Netze für CIN und COUT hinzu. In den „Properties“ lässt sich der Netznamen für CIN und
COUT entsprechend abändern.
Das TopLevel Schematic sieht final folgendermaßen aus:
Von diesem Schematic exportieren Sie bitte eine VHDL-Netzliste für die Simulation. Dazu
selektieren Sie im Navigator „TopLevel“, und starten File  Export  VHDL Netlist. Erzeugen Sie für die Simulation und die VHDL-Netzliste ein eigenes Directory
H:\cd\epd\vf\adder\Modelsim.
Im Output- Fenster sollten nun die Meldungen `No errors found´ und `Completed Netlist
Generation´ erscheinen.
Der Simulator Modelsim von Mentor Graphics lässt sich über den Desktop mit dem Icon
starten.
Wechseln Sie zuerst mit File  Change Directory in das Directory
H:\cd\epd\vf\adder\Modelsim. Anschließend erzeugen Sie mit File  New  Project ein
neues Projekt mit dem Namen `adder´.
16
Nach „OK“ können Sie mit „Add Existing File“ das VHDL-File von DxDesigner hinzufügen:
Jetzt sollten Sie im Workspace das File sehen. Mit der rechten Maustaste klicken Sie auf
Compile  Compile All:
Falls alles richtig gelaufen ist, muss im Transcript-Directory die Meldung
# Compile of TopLevel.vhd was successful.
erscheinen. Um die Library zu sehen, muss sie noch dem Workspace mit File  New 
Library bekannt gemacht werden (Library Name ‚work‘).
17
Jetzt lässt sich durch Doppelklick auf „toplevel“ in der Library „work“ die Simulation starten:
Um das Ergebnis anzeigen zu können, öffnen Sie das Waveform Panel mit View  Wave,
und selektieren im Workspace-Manager mit der rechten Maustaste im Toplevel-Kontextmenu
Add To Wave  All items in region:
Sie können jetzt im Simulator „Transcript“ Fenster verschiedene Stimuli für die Schaltung
testen. Legen Sie dazu zuerst die Werte 9 und 1 für die Busse A und B an, und setzen den
CIN Eingang auf ‚0‘. Mit ‚run 100ns‘ läuft die Simulation 100ns:
force a 16#9
force b 16#1
force cin 0
run 100 ns
Entspricht das Ergebnis Ihren Erwartungen?
18
Testen Sie noch folgende Belegungen: a=11, b=7, cin=0 und a=5, b=6, cin=1. Die entsprechenden Befehle können Sie auch in ein TCL-File schreiben und mit „source <fileName>“
laden. Das File könnte folgendermaßen aussehen:
restart -f ; # restart simulation
# pattern 1
force a
16#9
force b
16#1
force cin 0
run 100 ns
# pattern 2
force a
16#B
force b
16#7
force cin 0
run 100 ns
# pattern 3
force a
16#5
force b
16#6
force cin 1
run 100 ns
Es sollte sich folgendes Simulationsergebnis einstellen:
19
Versuch B: Zählerentwurf nach dem Bottom-Up Prinzip
Im folgenden soll am Beispiel eines Zählers das Bottom-Up Prinzip erläutert werden, d.h. der
Zähler wird von „unten“ nach „oben“ aufgebaut. Erzeugen Sie dazu im Dashboard ein neues
Projekt „counter“, und beginnen Sie mit dem Design eines Toggle_FF. Beschalten Sie dazu
das JK-FF aus der Bibliothek 'builtin' derart, dass es als Toggle_FF arbeitet:
Im Bottom-Up Stil lässt sich das Symbol automatisch mit Tools  Generate Symbol erzeugen.
Verwenden Sie nun das erzeugte Toggle-Flip-Flop, um eine Dekade eines synchronen BCDZählers aufzubauen und führen Sie diese, wenn sie korrekt funktioniert, in ein Symbol 'Dekade' über.
Mit dem Dekadensymbol ist ein Zähler '3-dekaden' aufzubauen, der von 0 bis 999 zählt und
dann wieder bei 0 beginnt.
20
Für die finale Simulation kann das TCL-File z.B. folgendermaßen aussehen:
restart -f
# Start with counter reset
force res 1
force clk 0
force set 0
run 100
# run with clock period of 200ns
force clk 1 100, 0 200 -r 200
force res 0
run 20000
Die erfolgreiche Simulation liefert dann etwa:
21
6. Häusliche Vorbereitung
B
A
B
A
Carry
Die gesuchte Schaltung kann in vier gleiche Subsysteme (1-Bit VolladdiererSchaltungen) zerlegt werden. Ergänzen Sie den angefangenen Schaltplan derart, dass
die 4-Bit Zahl B (B3,B2,B1,B0) zur 4-Bit Zahl A (A3,A2,A1,A0) addiert wird.
B
A
3.
Carry
Analysieren Sie die Spezifikation und legen Sie fest, wie viele Ein- bzw. Ausgänge die
geforderte Schaltung haben muß.
B
A
2.
Carry
Machen Sie sich mit der Addition und Subtraktion von Dualzahlen vertraut.
Car-
1.
MSB
Sum
C_out
Sum
C_out
C_out
Sum
C_out
Sum
LSB
4.
Vergewissern Sie sich, dass die vorgegebene Schaltung aus NAND-Gattern die Funktion eines Halbaddierers erfüllt. Erstellen Sie hierfür eine Wertetabelle.
5.
Machen Sie sich mit dem Entwurf von Zählern vertraut.
6.
Durch welche Erweiterung wird ein Dualzähler zu einem BCD-Zähler?
7.
Machen Sie sich mit der Funktion des JK-Flip-Flops vertraut
Versuchsauswertung
1.
Analysieren Sie bitte die zur Simulation der verschiedenen Teilschaltungen bereitgestellten Command-Files.
2.
Überprüfen Sie anhand der Simulationsergebnisse die korrekte Funktion der von Ihnen
erstellten Teilschaltungen für den Voll- und den Halbaddierer.
3.
Wie müsste ein Command-File aussehen, bei dem alle acht Eingangskombinationen von
allen vier Volladdierern geprüft wurden.
Ai
Bi
Ci
4.
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
Analysieren Sie die 'Waveformen' der Simulationsergebnisse für Entwurfsstufen der beiden Versuchsschaltungen.
22

Podobne dokumenty