Praktikum. Technologie der Funktionswerkstoffe. Digitalschaltungen. (Versuch 3)

Labor für Chip-Design und Mikroelektronik Praktikum Technologie der Funktionswerkstoffe Digitalschaltungen (Versuch 3) Gliederung: 1. Einleitung 2....
Author: Holger Brahms
1 downloads 3 Views 159KB Size
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 'eProduct Designer' von 'Mentor' 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. 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 eProduct Designer

eProduct Designer (ePD) von Mentor 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. eProduct Designer ist modular aufgebaut; die zahlreichen Module können auf die jeweilige Anwendung zugeschnitten beschafft 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 ePD 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 eProduct Designer sowohl die Möglichkeit der 'mixed-level' als auch der 'mixed-signal' Simulation. D. h. mit ePD können gemischt analog/digitale Schaltungen mit Teilbeschreibungen auf verschiedenen Hierarchieebenen durchgeführt werden. 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 ePD 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 PowerPCB der Firma PADs, sowie ein Link zum JTAGSystem, falls die Schaltungen mit Boundary-Scan ausgestattet sind. Für den Einsatz von 'eProduct Designer’ ist folgende File-Struktur erforderlich:

Laufwerk (H): \ cd \ ...... \ pads \ epd \ ...... \ vf \Projekt_1 \ .....

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.

5

Versuchsdurchführung

In dieser Versuchsanleitung wird darauf verzichtet, die Einzelschritte bei der Bedienung der Werkzeuge detailliert zu beschreiben. Die Bedienung wird bei der Versuchsdurchführung in Form eines geführten Versuchs vermittelt. Die für den Versuch erforderlichen Datenpfade auf dem Rechner sowie das Projekt sind zu Versuchsbeginn bereits angelegt. Die für die Verifikation der Teilschaltungen erforderlichen 'Command-Files' finden Sie im Pfad: O:\FE\Prof\wdenner\PUBLIC\techfun\Command_files

Vorhandenes Projekt aktivieren Starten Sie das Programm-Modul 'Dashboard' durch Doppelklick auf das 'Innoveda eProduct Designer' Icon auf dem Desk-Top. Im Frame 'Folders' sind unter 'Projects' die auf dem Rechner vorhandenen Projekte aufgelistet. Selektieren Sie mit der rechten Maustaste das Projekt 'counter' und wählen Sie es im aufgehenden Fenster als aktives Projekt aus. Stellen Sie sicher, dass in der dem Projekt 'counter' zugeordneten 'library' die Bibliotheken 'builtin' und '74ls' eingetragen sind. Öffnen Sie nun das Modul 'DxDesigner' durch Einfaches anklicken des Icon 'Shortcuts.

6

im Frame

Addier-/Subtrahierschaltung Erzeugen Sie ein Symbol '4-bit adder', das Sie im Schaltplan 'toplevel' verwenden. Dieser Schaltplan zeigt das '4-bit adder' Symbol mit den erforderlichen Ein- und Ausgängen.

Unterlegen Sie dem '4-bit adder' Symbol eine Schaltung, bei der die zu entwerfende Gesamtschaltung in vier äquivalente Subsysteme ('fulladder') partitioniert ist, von denen jedes die Addition eine Stelle der 4-Bit Dualzahl übernimmt. Als 'fulladder' verwenden Sie bitte folgendes von Ihnen zu erzeugendes Schaltsymbol:

Bauen Sie den Volladdierer aus Halbaddierern auf und ordnen Sie diesen Schaltplan dem Symbol 'fulladder' zu. Verwenden Sie hierfür folgendes Symbol für den Halbaddierer:

7

Als letzte Verfeinerungsstufe wird der Halbaddierer aus fünf NAND Gattern aufgebaut.

Nachdem Sie sich von der richtigen Funktion der Addiererschaltung durch eine umfassende Simulation erzeugt haben, ist die Schaltung durch geeignetes Einfügen von vier AntivalenzGattern (exor-Gatter) derart zu erweitern, dass Sie auch für Subtraktionen geeignet ist. Hierfür wird bei jeden Bi Eingang ein Antivalenz-Gatter eingefügt. Bi BSTi

= ST

8

Zählerentwurf Beschalten Sie das JK-FF aus der Bibliothek 'builtin' derart, dass es als 'Toggle.FF' arbeitet und lassen Sie bitte nach der Verifikation mit 'ViewSim' mit Hilfe von 'ViewGen' ein zugehöriges Symbol erzeugen.

Verwenden Sie 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.

9

6. Häusliche Vorbereitung

1. Machen Sie sich mit der Addition und Subtraktion von Dualzahlen vertraut. 2. Analysieren Sie die Spezifikation und legen Sie fest, wie viele Ein- bzw. Ausgänge die geforderte Schaltung haben muß. Machen Sie sich klar, welche Aufgabe das Steuersignal ST schaltungsintern zu übernehmen hat.

Carry ST B A

Carry ST B A

Carry ST B A

Carry ST B A

3. Die gesuchte Schaltung kann in vier gleiche Subsysteme (steuerbare 1-Bit Volladdierer/Subtrahierer-Schaltungen) zerlegt werden. Ergänzen Sie den angefangenen Schaltplan derart, daß bei ST=0 die 4-Bit Zahl B (B3,B2,B1,B0) zur 4-Bit Zahl A (A3,A2,A1,A0) addiert und bei ST=1 die Zahl B von A subtrahiert wird.

Sum C_out

Sum C_out

Sum C_out

MSB Sum C_out

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

10

8. Versuchsauswertung

1. Analysieren Sie bitte die zur Simulation der verschiedenen Teilschaltungen bereitgestellten Command-Files. 2. Kommentieren Sie die 'Waveform' Darstellungen der Toplevel-Verifikation mit dem Command-File 'fourbit.cmd'. Stellen Sie die Ergebnisse als vorzeichenbehaftete Dezimalzahl dar. Erläutern Sie am Beispiel eines positiven und eines negativen Ergebnisses, wie Sie zu der angegebenen Dezimalzahl kommen. 3. Überprüfen Sie anhand der Simulationsergebnisse die korrekte Funktion der von Ihnen erstellten Teilschaltungen für den Voll- und den Halbaddierer. 4. Kontrollieren Sie bitte ob mit dem Command-File 'fourbit.cmd' bei allen vier Volladdierern alle acht Eingangskombinationen geprüft wurden. Ai Bi Ci

0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

5. Analysieren Sie die 'Waveform' Darstellungen der Simulationsergebnisse für Entwurfsstufen der beiden Versuchsschaltungen.

11