Digitale Schaltungen 1
Digitale Schaltungen 1
Digitale Schaltungen 1
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de
Vorwort<br />
Vorwort<br />
Prof. Ulf Schlichtmann<br />
Lehrstuhl für Entwurfsautomatisierung<br />
Prof. Andreas Herkersdorf<br />
Lehrstuhl für Integrierte Systeme<br />
Das Lehrmodul Digitaltechnik im 1. Semester des Bachelor-Studiengangs „Elektrotechnik<br />
und Informationstechnik (EI)“ besteht aus zwei aufeinander abgestimmten Veranstaltungen:<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 (Prof. Herkersdorf) und Entwurfsverfahren digitaler <strong>Schaltungen</strong><br />
(Prof. Schlichtmann). Während bei <strong>Digitale</strong> <strong>Schaltungen</strong> 1 der Fokus auf den<br />
schaltungstechnischen Strukturen zur Realisierung von IT Funktionen liegt, stehen bei<br />
Entwurfsverfahren digitaler <strong>Schaltungen</strong> rechnergestützte Methoden zum automatisierten<br />
Entwurf sowie Simulation und Test von digitalen <strong>Schaltungen</strong> im Vordergrund.<br />
Informationstechnische Systeme werden heute fast ausschließlich in digitaler Technik<br />
realisiert, um die schier unbegrenzten Realisierungsmöglichkeiten der Mikroelektronik voll<br />
ausschöpfen zu können. <strong>Digitale</strong> <strong>Schaltungen</strong> bilden somit die Grundlage moderner IT-<br />
Systeme. Der Entwurf von digitalen <strong>Schaltungen</strong> geht normalerweise von standardisierten<br />
Grundschaltungen aus, die als Logikgatter und Flipflops bezeichnet werden. Man<br />
unterscheidet kombinatorische <strong>Schaltungen</strong> „ohne Gedächtnis“, die nur Logikgatter<br />
enthalten, von sequentiellen <strong>Schaltungen</strong> „mit Gedächtnis“, die aus Logikgattern und<br />
Flipflops bestehen.<br />
„<strong>Digitale</strong> <strong>Schaltungen</strong> 1“ vermittelt die Grundlagen digitaler Informationsdarstellung,<br />
Verarbeitung und Speicherung anhand von Unterbaugruppen eines Mikroprozessors. Auf der<br />
Basis des binären Zahlensystems wird die schaltungstechnische Realisierung von<br />
arithmetischen Rechenoperationen (Addition, Subtraktion, Multiplikation), logischen<br />
Verknüpfungen (Konjunktion, Disjunktion, Negation) sowie Vergleichsoperatoren (Größer,<br />
Kleiner-Gleich) aus elementaren Basiskomponenten (Logikgatter, Register, MOSFET<br />
Transistor) erläutert. Es wird gezeigt, wie mittels Pipeline-/Fließband-Verarbeitung der<br />
Informationsdurchsatz getakteter, sequentieller Schaltwerke erhöht werden kann und welche<br />
Strukturen von endlichen Automaten (Finite State Machines) sich in der Praxis als Steuerbzw.<br />
Kontrolleinheiten bewährt haben. Neben diesen funktionalen Aspekten digitaler<br />
Schaltungstechnik werden auch die Ursachen und Grenzen der Leistungsfähigkeit, des<br />
Zeitverhaltens, des Energiebedarfs sowie der wirtschaftlichen Aspekte digitaler CMOS<br />
(Complementary Metal Oxide Semiconductor) Technologien vermittelt.<br />
In „Entwurfsverfahren digitaler <strong>Schaltungen</strong>“ werden rechnergestützte Methoden und<br />
Verfahren vorgestellt, die einen möglichst vollautomatisierbaren Entwurf von digitalen<br />
<strong>Schaltungen</strong> mit einer großen Anzahl von Logikgattern und Flipflops gestatten. Es werden<br />
Verfahren zur Synthese, zur Simulation und zum Test digitaler Systeme behandelt. Zur<br />
einfachen Beschreibung der Verarbeitung von digitalen Signalen wird eine zweiwertige<br />
diskrete Algebra, die so genannte Schaltalgebra, verwendet, und es wird eine formale<br />
Beschreibung von Problemen und deren Lösungen benutzt, wie sie in der diskreten<br />
Mathematik üblich ist. Im Einzelnen werden Methoden und Verfahren behandelt, die<br />
durchwegs auf diskreten Algorithmen beruhen und die über den Entwurf von digitalen<br />
Systemen hinaus von grundlegender Bedeutung für viele weitere technische<br />
Aufgabenstellungen sind. Einige Algorithmen, auf die in der Vorlesung näher eingegangen<br />
wird, sind zum Beispiel: kombinatorische Optimierung, lokale und globale Suche in<br />
Lösungsräumen, Tautologienachweis von Booleschen Funktionen, die Konstruktion von<br />
binären Entscheidungsnetzen und die ereignisgesteuerte Simulation.<br />
- 1 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Vorwort<br />
Die Vorlesung dient auch als eine anwendungsgestützte Vorbereitung und Motivation für die<br />
Vorlesung „Mathematische Methoden der Informationstechnik“ (5. Semester), in der<br />
ausgewählte Grundlagen der diskreten Mathematik für EI-Ingenieure zugänglich gemacht<br />
werden.<br />
Ein solides Verständnis der fundamentalen Grundlagen digitaler Schaltungstechnik ist nicht<br />
nur Voraussetzung für weiterführende Veranstaltungen zum Thema digitale<br />
Schaltungstechnik im Bachelor und Masterstudium (z.B. „<strong>Digitale</strong> <strong>Schaltungen</strong> 2“), es<br />
ermöglicht auch dem Analogentwickler bzw. dem mehr Software- oder auf Anwendungen<br />
orientierten Ingenieur von der gesamten Palette an Realisierungsmöglichkeiten zum Zweck<br />
eines optimierten, ganzheitlichen Systementwurfs Gebrauch zu machen. Eine ganzheitliche<br />
Sichtweise auf VLSI (Very Large Scale Integration) Lösungen wird besonders für die künftig<br />
immer relevanter werdenden Multi-Prozessor Systeme für Anwendungen, z.B. im Bereich<br />
des Internet Networking, der mobilen Kommunikation, der industriellen<br />
Automatisierungstechnik, der Medizintechnik und der Automobilelektronik benötigt. Die in<br />
diesen Bereichen erforderlichen komplexen Systeme können auch nur noch mit<br />
umfangreicher Unterstützung durch computerbasierte Werkzeuge entworfen werden –<br />
wesentliche Grundlagen dafür werden in diesem Modul vorgestellt.<br />
Hinweise zur Benutzung des Skripts<br />
Das Skript zur Vorlesung „<strong>Digitale</strong> <strong>Schaltungen</strong>“ besteht aus zwei Teilen.<br />
Teil I (Folien) enthält die Vorlesungsfolien und kann während der Vorlesung durch<br />
eigene Notizen ergänzt werden. Hierzu stehen auch am Ende jedes Kapitels noch<br />
einige freie Seiten zur Verfügung.<br />
Im Teil II (Skriptum) findet sich zu jeder Folie eine textuelle Beschreibung.<br />
Außerdem befindet sich am Ende jedes Kapitels ein Fragenblock mit zugehörigen<br />
Lösungen. Diese Aufgaben dienen der Selbstkontrolle des Lernfortschritts. Am<br />
Ende des Skriptums sind die Aufgaben der Zentralübung zusammengefasst. Die<br />
Lösungen werden nach der jeweiligen Zentralübung auf dem Elearning-Portal<br />
veröffentlicht (www.elearning.tum.de)<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 2 -
Inhaltsverzeichnis<br />
Inhaltsverzeichnis<br />
Einführung .................................................................................................................7<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 – um was geht’s in diesem Kurs? ....................................................8<br />
Literatur.................................................................................................................................8<br />
Bedeutung digitaler <strong>Schaltungen</strong> im täglichen Leben...........................................................9<br />
<strong>Digitale</strong> IT ist eingebunden in eine analoge Welt!.................................................................9<br />
Positionierung: Analog – Digital..........................................................................................10<br />
Vorschau auf Vorlesungskapitel .........................................................................................11<br />
Grundlagen der CMOS Skalierung .....................................................................................13<br />
Moore’sches Gesetz – Die positiven Seiten .......................................................................14<br />
Moore’sches Gesetz – Die Herausforderungen..................................................................14<br />
CPUs in IKT Systemen .......................................................................................................15<br />
Bestandteile eines RISC Mikroprozessorsystems ..............................................................15<br />
RISC Instruktions-Phasen ..................................................................................................16<br />
Das Innenleben eines RISC Prozessors ............................................................................16<br />
Aufgaben ............................................................................................................................17<br />
Lösungen............................................................................................................................18<br />
Zahlensysteme.........................................................................................................19<br />
Lernziele .............................................................................................................................20<br />
Das Innenleben eines Prozessors ......................................................................................20<br />
Polyadische Zahlensysteme ...............................................................................................20<br />
Zahlensysteme: Binärsystem..............................................................................................20<br />
Zahlensysteme: Octal- und Hexadezimalsystem................................................................21<br />
Zahlenkonvertierung Dezimal nach Basis r ........................................................................21<br />
Binäre Addition ...................................................................................................................21<br />
Darstellung Negativer Zahlen: Mittels Vorzeichen-Betrag ..................................................21<br />
Darstellung Negativer Zahlen: Mittels Radix-Komplement .................................................22<br />
Zweier-Komplement............................................................................................................23<br />
Binäre Subtraktion ..............................................................................................................23<br />
Binäre Multiplikation............................................................................................................23<br />
Festkomma / Gleitkomma Darstellung................................................................................24<br />
Gleitkomma Darstellung für Binärsystem: IEEE 754 ..........................................................25<br />
Aufgaben ............................................................................................................................26<br />
Lösungen............................................................................................................................27<br />
MOSFET....................................................................................................................29<br />
Lernziele .............................................................................................................................30<br />
Elektrische Leitfähigkeit ......................................................................................................30<br />
Silizium Kristallgitter Struktur ..............................................................................................31<br />
Der pn Übergang ................................................................................................................31<br />
Die pn Diode .......................................................................................................................32<br />
Die MOS Struktur................................................................................................................32<br />
Der MOSFET Transistor .....................................................................................................32<br />
Der Lineare Bereich............................................................................................................33<br />
Der Sättigungsbereich ........................................................................................................34<br />
Die Ein- und Ausgangskennlinien des MOSFET Transistors .............................................34<br />
MOSFET Modellgleichungen (Sah) ....................................................................................34<br />
Dimensionierung.................................................................................................................36<br />
Aufgaben ............................................................................................................................37<br />
Lösungen............................................................................................................................38<br />
- 3 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Inhaltsverzeichnis<br />
CMOS Inverter und Logik........................................................................................39<br />
Lernziele .............................................................................................................................40<br />
Inverter Grundfunktion ........................................................................................................40<br />
Statischer CMOS Inverter...................................................................................................40<br />
Querschnitt durch einen CMOS Inverter.............................................................................40<br />
Warum CMOS? ..................................................................................................................40<br />
Die Funktionsweise eines CMOS Inverters ........................................................................41<br />
Die statische Spannungs-Übertragungs-Kennlinie .............................................................41<br />
Einfluss der Lastkapazität auf die Verzögerungszeit ..........................................................42<br />
Diskussion ..........................................................................................................................43<br />
CMOS Verlustleistung ........................................................................................................44<br />
Dynamische Verlustleistung ...............................................................................................44<br />
Kapazitive Verlustleistung...................................................................................................45<br />
Formel für kapazitive Verlustleistung..................................................................................45<br />
Kurzschluss Verlustleistung................................................................................................45<br />
Dynamische Verlustleistung: Zusammenfassung...............................................................46<br />
Trends der dynamischen Verlustleistung............................................................................46<br />
Wichtige Parameter ............................................................................................................46<br />
Aufgaben ............................................................................................................................47<br />
Lösungen............................................................................................................................48<br />
Kombinatorische Logik...........................................................................................49<br />
Lernziele .............................................................................................................................50<br />
Das Innenleben eines RISC Prozessors ............................................................................50<br />
Logik Grundschaltung: UND, ODER, NICHT Gatter...........................................................50<br />
Boole‘sche Algebra.............................................................................................................51<br />
Logik Grundschaltung: NAND, NOR Gatter........................................................................52<br />
De Morgan für Logikschaltungen........................................................................................52<br />
NAND, NOR Grundgatter ...................................................................................................52<br />
Logik Grundschaltung: EXOR Gatter..................................................................................52<br />
Boole‘sche Algebra: Wozu verwenden? .............................................................................53<br />
Logikoperationen auf Bitvektoren .......................................................................................53<br />
Kombinatorisches Schaltnetz .............................................................................................53<br />
Disjunktive Normalform (DNF)............................................................................................53<br />
Konjunktive Normalform (KNF)...........................................................................................54<br />
Transformationen zwischen KNF und DNF ........................................................................54<br />
Logik Grundschaltung: EXOR Gatter..................................................................................54<br />
Disjunktive / Konjunktive Normalformen .............................................................................55<br />
Generisches Modell statischer CMOS <strong>Schaltungen</strong>...........................................................55<br />
Fan-In und Fan-Out ............................................................................................................56<br />
Karnaugh Tabelle ...............................................................................................................56<br />
Beispiele für Produktterm Minimierung...............................................................................57<br />
Karnaugh für unvollständig spezifizierte Funktionen ..........................................................57<br />
Volladdierer.........................................................................................................................57<br />
Volladdierer: Logik Implementierung ..................................................................................57<br />
Volladdierer als CMOS Schaltung ......................................................................................58<br />
Logik Zeitverhalten .............................................................................................................58<br />
Volladdierer: Zeitverhalten..................................................................................................58<br />
Multibit Addierer: Ripple-Carry Adder .................................................................................59<br />
Multibit Addierer / Subtrahierer ...........................................................................................59<br />
Multiplexer ..........................................................................................................................60<br />
Bitwort Schiebeoperator .....................................................................................................60<br />
Vergleichsoperatoren..........................................................................................................60<br />
Aufgaben ............................................................................................................................61<br />
Lösungen............................................................................................................................62<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 4 -
Inhaltsverzeichnis<br />
Sequentielle Logik...................................................................................................63<br />
Lerninhalte..........................................................................................................................64<br />
Basis Speicherzelle / Register ............................................................................................64<br />
Set-Reset Latch / Enable Latch ..........................................................................................64<br />
Flip-Flop..............................................................................................................................65<br />
Flip-Flop Timing ..................................................................................................................65<br />
Sequentielles Schaltwerk....................................................................................................65<br />
Endlicher Automat (Finite State Machine) ..........................................................................65<br />
Moore Automat ...................................................................................................................66<br />
Mealy Automat....................................................................................................................66<br />
Noch ‘ne FSM: Moore oder Mealy? ....................................................................................66<br />
Entwurf Endlicher Automaten in der Praxis ........................................................................67<br />
Beispiel: Absicherung der Datenübertragung mit Block Parity ...........................................67<br />
Block Parity: Separation von Daten- und Kontrollpfad........................................................67<br />
Block Parity: Kontrollpfad....................................................................................................68<br />
Timing Analyse Sequentieller Logik....................................................................................69<br />
Pipelining / Fließbandverarbeitung .....................................................................................70<br />
Parallele Verarbeitungseinheiten........................................................................................71<br />
Aufgaben ............................................................................................................................72<br />
Lösungen............................................................................................................................73<br />
Speicher ...................................................................................................................75<br />
Motivation ...........................................................................................................................76<br />
Positionierung .....................................................................................................................76<br />
Klassifizierung.....................................................................................................................76<br />
Der Aufbau von Halbleiter Speichern .................................................................................77<br />
Speicher Architektur: Array (Feld) Struktur.........................................................................77<br />
Speicher Architektur: Hierarchie .........................................................................................78<br />
1-Transistor DRAM Zelle ....................................................................................................79<br />
Der Speicherkondensator ...................................................................................................79<br />
Trench DRAM Zelle ............................................................................................................80<br />
1-Transistor DRAM Zellen ..................................................................................................80<br />
Leseverstärker ....................................................................................................................80<br />
6-Transistor CMOS SRAM Zelle.........................................................................................81<br />
Nicht-flüchtige Speicherzellen (Flash) ................................................................................81<br />
ROM – Read Only Memory ................................................................................................82<br />
Speicher im Mikroprozessor System ..................................................................................82<br />
Embedded DRAM...............................................................................................................83<br />
Zuverlässigkeit – Soft Errors...............................................................................................84<br />
Speicher Ausbeute .............................................................................................................84<br />
Redundanz .........................................................................................................................84<br />
Redundanz und Fehlerkorrektur .........................................................................................84<br />
Aufgaben ............................................................................................................................85<br />
Lösungen............................................................................................................................86<br />
- 5 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Inhaltsverzeichnis<br />
Übungsaufgaben .....................................................................................................87<br />
Übung 1: Kosten bei der Waferherstellung / Moore’s Law .................................................88<br />
Übung 2: Grundrechenarten im Binärsystem .....................................................................89<br />
Übung 3: Negative Zahlen ..................................................................................................89<br />
Übung 4: Boolesche Algebra ..............................................................................................90<br />
Übung 5: De Morgansche Regel ........................................................................................90<br />
Übung 6: Entwurf einer einfachen digitalen Schaltung .......................................................91<br />
Übung 7: Gatterentwurf mit Ein-/Aus-Schaltern..................................................................91<br />
Übung 8: Entwurf eines Volladdierers ................................................................................92<br />
Übung 9: Ripple Carry Adder..............................................................................................93<br />
Übung 10: Zustandsautomaten ..........................................................................................94<br />
Übung 11: Zeitverhalten von CMOS <strong>Schaltungen</strong>..............................................................95<br />
Übung 12: Pipelining vs. Parallel Processing .....................................................................96<br />
Übung 13: Strom- / Spannungskennlinie ............................................................................97<br />
Übung 14: MOS-Transistoren in einer Schaltung ...............................................................97<br />
Übung 15: Laden von Kapazitäten über MOS-Transistoren...............................................97<br />
Übung 16: Dynamische Verlustleistung..............................................................................98<br />
Übung 17: Schaltgeschwindigkeit CMOS Inverter..............................................................99<br />
Übung 18: CMOS Logik......................................................................................................99<br />
Übung 19: Organisation von DRAM-Speichern ................................................................100<br />
Übung 20: Einfluss der Bitleitungskapazität bei DRAM ....................................................100<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 6 -
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
Einführung<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de<br />
- 7 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Einführung<br />
Einführung<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 – um was geht’s in diesem Kurs?<br />
In <strong>Digitale</strong> <strong>Schaltungen</strong> 1 werden die Grundlagen digitaler Schaltungstechnik anhand von<br />
Beispielen in Form von Funktionen, Baugruppen und Entwurfsprinzipien bei RISC (Reduced<br />
Instruction Set Computer) Prozessoren vermittelt. Auf diese Weise soll der Bezug zwischen<br />
Grundlagen digitaler Halbleiterschaltungen und deren Anwendung in komplexen Systemen in<br />
der Praxis aufgezeigt werden.<br />
Voraussetzung für Informations- und Datenverarbeitung in digitaler Halbleitertechnologie ist<br />
die Möglichkeit zur Beschreibung der Daten in einem geeigneten Zahlensystem. Hierzu<br />
führen wir im nächsten Kapitel das Rechnen im dualen oder binären Zahlensystemen ein.<br />
Logikgatter wie AND, OR, NOT sind die Basisbaugruppen aller digitalen <strong>Schaltungen</strong>. Wir<br />
werden zeigen, wie digitale Logik beliebiger Komplexität aus Basisgattern aufgebaut, mit<br />
Boole‘scher Logik mathematisch formal beschrieben und nach definierten Regeln<br />
funktionsneutral zum Zweck der Logikoptimierung umgeformt werden kann.<br />
Im Unterschied zu kombinatorischen Logiknetzen können sequentielle Schaltwerke Daten<br />
temporär speichern und arbeiten quasi „mit Gedächtnis“. Endliche Automaten sind eine weit<br />
verbreitete Realisierungsform von sequentiellen Schaltwerken. Mittels dieser endlichen<br />
Automaten werden gängige Methoden und Prinzipien, wie Fließbandverarbeitung und der<br />
Einsatz paralleler Verarbeitungseinheiten zur Steigerung der Leistungsfähigkeit digitaler<br />
Hardware erläutert.<br />
Bei der Einführung dieser Grundlagen verweisen wir fortlaufend darauf, in welcher<br />
Umsetzungsform diese Basisfunktionen mit RISC Prozessoren eingesetzt werden. RISC<br />
Prozessoren sind die heute am weitesten verbreitete Klasse von Software programmierbaren<br />
Rechenwerken. RISC Prozessoren werden in praktisch allen „Consumer Electronics“<br />
(Unterhaltungselektronik), in so genannten eingebetteten Systemen, wie z.B. in der<br />
Automobilelektronik oder medizinischen Geräten, bis hin zu Höchstleistungsrechnern<br />
eingesetzt.<br />
Konkret gehen wir dabei auf den Entwurf von arithmetischen Funktionen wie Addierer,<br />
Subtrahierer und Multiplizierer, Datenpfad Pipelines sowie die Aufspaltung eines digitalen<br />
Systems in Datenpfad und Kontrollpfad, als Beispiel für das häufig angewandte<br />
Ingenieursprinzip von „Teile und herrsche!“, ein.<br />
Weil leistungsfähige Computer nicht ohne leistungsfähige Speicher realisiert werden können,<br />
führen wir in einem eigenständigen Kapitel die Grundlagen der wichtigsten<br />
Halbleiterspeichertechnologien ein.<br />
Literatur<br />
Wir empfehlen das Folienmaterial zur Vorlesung, die vorliegenden Skript-Texte sowie die<br />
Unterlagen aus der Zentralübung, den Tutor- und Onlineübungen - ergänzt durch<br />
persönliche Aufzeichnungen - als primäre Referenz für die Prüfungsvorbereitung.<br />
Die nachfolgend aufgeführte Liste von Büchern wurde teilweise zur Ausarbeitung der<br />
Veranstaltung „<strong>Digitale</strong> <strong>Schaltungen</strong> 1“ herangezogen:<br />
• Digital Integrated Circuits - A Design Perspective, J. Rabaey, Prentice Hall,<br />
2003, 2nd Edition<br />
• Digital Design – Principles and Practices, J. Wakerly, Prentice Hall,<br />
2006, 4th Edition<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 8 -
Einführung<br />
• Grundlagen der Digitaltechnik, H. Lipp, J. Becker, Oldenbourg,<br />
2008, 6. Auflage.<br />
Diese Literatur bietet eine gute Möglichkeit, den Stoff weiter zu vertiefen. Die Lektüre der<br />
Bücher ist allerdings für ein erfolgreiches Absolvieren der Prüfung nicht verpflichtend.<br />
Bedeutung digitaler <strong>Schaltungen</strong> im täglichen Leben<br />
<strong>Digitale</strong> Halbleiter sind als Hardware Basistechnologie und Treiber der Informations- und<br />
Kommunikationstechnik (IKT) heutzutage allgegenwärtig. IKT Produkte verwenden in<br />
vielfältiger Ausprägung digitale Rechenanlagen, die auf RISC Prozessorarchitekturen<br />
aufgebaut sind. <strong>Digitale</strong> Rechensysteme können in IKT Systemen entweder explizit (in ihrer<br />
Funktion als Rechner) oder implizit (als eingebettetes System) in größeren technischen<br />
Systemen eingesetzt werden. Die hier aufgezählten Beispiele (Unterhaltungselektronik,<br />
Kommunikationstechnik, Automobilelektronik und Internettechnologie) sind lediglich ein<br />
kleiner Ausschnitt aus dem Anwendungsbereich digitaler Mikroelektronik. Diese Beispiele<br />
veranschaulichen allerdings bereits das breite Spektrum der unterschiedlichen funktionalen<br />
und nichtfunktionalen Anforderungen, die an IKT Systeme in ihrer Gesamtheit und an die<br />
darin enthaltenen elektronischen Komponenten im Einzelnen gestellt werden. Der Entwurf<br />
digitaler <strong>Schaltungen</strong> ist in der Regel ein multidimensionales Problem bei dem mehrere<br />
Zielfunktionen gleichzeitig optimiert werden müssen. Teilweise können sich die gesetzten<br />
Zielfunktionen sogar widersprechen. Beispiele für entgegenlaufenden Zielfunktionen sind:<br />
Mehr Funktionalität bei geringeren Kosten, oder höhere Prozessorleistung bei geringerem<br />
Energieverbrauch.<br />
<strong>Digitale</strong> IT ist eingebunden in eine analoge Welt!<br />
Obwohl Daten und Informationen in elektronischen Geräten in überwiegender Mehrheit in<br />
digitaler Form gespeichert, verarbeitet und übertragen werden, so ist die physikalische<br />
Umwelt dieser Systeme doch meist von Natur aus analog. Um beide Welten (Analog und<br />
Digital) miteinander zu verbinden bedarf es entsprechender Signalwandler zwischen dem<br />
analogen, d.h. zeit- und wertkontinuierlichen und dem digitalen, d.h. zeit- und wertdiskreten<br />
Bereich.<br />
Bei dem hier gezeigten integrierten System – einen sogenannten SoC (System on Chip) –<br />
handelt es sich um eine zentrale Funktionskomponente, wie sie in heutigen Mobiltelefonen<br />
häufig zum Einsatz kommt. Integrierte <strong>Schaltungen</strong> in Mobilfunkanwendungen sind ein gutes<br />
Beispiel für die Notwendigkeit der gleichzeitigen Existenz von analogen und digitalen<br />
Schaltungsanteilen auf einem gemeinsamen Chip. Auf diesem SoC sind hochkomplexe<br />
Verarbeitungseinheiten für digitale Daten, wie z.B. eine MCU (Micro Control Unit), ein DSP<br />
(Digital Signal Processor), größere Speicherbereiche (ROM: Read only Memory und SRAM:<br />
Static Random Access Memory) zusammen mit anwendungsspezifischer Hardware (ASIC:<br />
Application Specific Integrated Circuit) untergebracht. Diese Baugruppen bewerkstelligen die<br />
sogenannte „Basisbandverarbeitung“ des Sprachsignals, übernehmen die Mobilfunkstandard<br />
spezifischen Aufgaben zur Protokollverarbeitung und dienen ferner zur Realisierung der<br />
heute zum Standard gewordenen „sekundären“ Funktionen eines Mobilfunktelefons wie PDA<br />
(Personal Digital Assistant), Digitalkamera, Internet Browser, etc. In der linken unteren Ecke<br />
befinden sich analoge Schaltungsanteile bestehend aus Verstärker, Filter und<br />
Schwingkreisen, welche im Wesentlichen die drahtlose Funkschnittstelle realisieren. Es ist<br />
durchaus typisch, dass die analogen Schaltungsanteile nicht mehr als 10-20 % der<br />
gesamten Chipfläche eines derartigen Mixed-Signal SoC ausmachen. Dennoch, durch die<br />
Möglichkeit analoge Schaltungsanteile in eine dominant-digitale integrierte Schaltung<br />
integrieren zu können, wird nur ein einziger Chip benötigt. Andernfalls müsste für die gleiche<br />
Funktionalität ein rein digitaler plus ein rein analoger Chip verwendet werden.<br />
- 9 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Einführung<br />
Sensor- und Aktor-<strong>Schaltungen</strong> für mikromechanische Systeme, Videobildschirme bzw.<br />
Displays allgemeiner Art, Audio Ein- und Ausgabeeinheiten, Schreib- / Leseköpfe für<br />
Magnetplattenspeichersysteme, sowie drahtgebundene bzw. drahtlose Hochfrequenzschnittstellen<br />
im RF (Radio Frequency) Bereich für Mobilfunkkommunikationseinrichtungen<br />
sind eine Auswahl an Beispielen, wo das Zusammenspiel zwischen analoger und digitaler<br />
Datenverarbeitung zur optimierten Realisierung fortschrittlicher Anwendungen unumgänglich<br />
ist.<br />
Positionierung: Analog – Digital<br />
Grundsätzlich lassen sich analoge und digitale Signale wie folgt unterscheiden:<br />
Analoge Signale sind hinsichtlich Zeitauflösung und Wertebereich kontinuierliche Signale, die<br />
durch unendlich viele Signalpunkte dargestellt sind. Im Gegensatz dazu werden digitale<br />
Signale durch zeit- und wertdiskrete Messpunkte mit begrenzter Genauigkeit dargestellt. Um<br />
ein Analogsignal in ein zeit- und wertediskretes Digitalsignal umzuwandeln bedarf es der<br />
Abtastung in äquidistanten Zeitpunkten, gefolgt von der anschließenden Quantisierung /<br />
Rundung der Abtastwerte auf diskrete Werte des Messbereichs. Durch die Rundung entsteht<br />
ein Quantisierungsfehler, der auf +/- ∆/2 (wenn ∆ einem Quantisierungsintervall entspricht)<br />
begrenzt ist. Um das digitalisierte Signal später wieder in das ursprüngliche Analogsignal<br />
rücktransformieren zu können muss die Abtastfrequenz f sample die Nyquist Bedingung: f sample ≥<br />
2 x f max erfüllen (wobei f max den maximalen Frequenzanteilen im Analogsignal entspricht).<br />
Eine genauere quantitative Analyse erfolgt in den entsprechenden Kapiteln der<br />
Veranstaltung zur Signaldarstellung (Prof. Rigoll).<br />
Neben dieser rein analogen bzw. digitalen Signaldarstellung gibt es auch noch die<br />
Mischformen der zeitkontinuierlichen und wertdiskreten Darstellung bzw. der zeitdiskreten<br />
und wertkontinuierlichen Darstellung. Letztere ist in der mittleren Abbildung dargestellt.<br />
Hierbei werden zu äquidistanten Zeitpunkten exakte Signalwertabtastungen durchgeführt<br />
und gespeichert.<br />
Im Folgenden gehen wir auf eine qualitative Gegenüberstellung und Bewertung von analoger<br />
und digitaler Signaldarstellung ein. Prinzipiell ist es durchaus möglich, auch im analogen<br />
Bereich Datenverarbeitung vorzunehmen. Für bestimmte Funktionen ist eine analoge<br />
Signalverarbeitung auch mit weniger Elementen und geringerem Aufwand realisierbar als<br />
dies im digitalen Bereich möglich wäre. Nehmen wir als einfaches Beispiel eine<br />
Integrationsstufe bestehend aus einem Widerstand-Kondensator (RC) Glied. Im Allgemeinen<br />
ist es aber wesentlich einfacher mittels prozeduraler Rechenvorschriften Datenverarbeitung<br />
im digitalen Bereich vorzunehmen. <strong>Digitale</strong> Datenverarbeitung bietet ein breites Spektrum an<br />
Realisierungsvarianten. Angefangen bei der hochperformanten Umsetzung einer Funktion<br />
als digitalen Schaltkreis bis zur flexiblen Programmierung digitaler Rechenanlagen.<br />
Datenverarbeitungsleistung (Rechenoperationen pro Zeiteinheit) sind im digitalen Bereich<br />
wesentlich leichter skalierbar als im analogen Bereich.<br />
Noch markanter ist der Unterschied bei der Datenspeicherung. Bis heute ist es praktisch<br />
unmöglich, analoge Signale mit ihrer unendlichen Auflösung im Zeit- und Wertebereich auf<br />
„analogen Medien“ zuverlässig und nachhaltig zu speichern. Hingegen ist die Speicherung<br />
digitaler Signale in verschiedensten Technologien (Halbleiter Flash-Sticks, DVD, schneller<br />
Systemspeicher) heute gut beherrschbar und in einem weiten Bereich hinsichtlich<br />
Datendichte und Zugriffsgeschwindigkeit skalierbar.<br />
Die wesentlich bessere Signalintegrität (d.h. Robustheit gegen äußere Störungen wie z.B.<br />
Rauschen) ist ein weiterer wichtiger Grund für die bessere, billigere und einfachere<br />
Verarbeitung und Speicherung von Signalen im digitalen Bereich. <strong>Digitale</strong> Signale können<br />
mit Prüfsummen einfach und effektiv gegenüber ungewollten Datenmanipulationen geschützt<br />
werden, bzw. gestörte Daten können relativ einfach wieder rekonstruiert werden. Letztlich<br />
kommt noch hinzu, dass der Aufwand zum Entwurf digitaler Systeme im Vergleich zum<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 10 -
Einführung<br />
Entwurf analoger Systeme wesentlich besser automatisierbar und demzufolge<br />
kosteneffizienter ist.<br />
Analoger Datentransport ist hingegen aufgrund höchstmöglicher Bitraten, d.h. übertragene<br />
Information pro Zeiteinheit und bestmöglichem Verhältnis zwischen Signal- und elektrischer<br />
Verlustleistung dem Datentransport im Digitalbereich mittels breiter Datenbusse überlegen.<br />
Aus der Sicht des integrierten Systementwurfs gilt daher häufig die Devise: „Versuche so<br />
viele Funktionen wie technisch möglich als digitale oder programmierbare Einheiten zu<br />
realisieren, und beschränke die analogen Schaltungsanteile auf die Anteile, welche aufgrund<br />
von Leistungs-, Energie- oder Stromstärke-Vorgaben nicht anders zu realisieren sind.“<br />
Vorschau auf Vorlesungskapitel<br />
<strong>Digitale</strong> Zahlen- und Signalwertdarstellung<br />
Im folgenden Kapitel der Vorlesung gehen wir auf Zahlensysteme, bzw. die digitale Zahlenund<br />
Signaldarstellung als Voraussetzung für digitale Datenverarbeitung näher ein. Einleitend<br />
hatten wir bereits erläutert, digitale Datenverarbeitung basiert auf zeit- und wertdiskreten<br />
Metriken, welche üblicher Weise mittels eines Stellenwertsystems mit passendem Alphabet /<br />
Symbolumfang dargestellt werden. Das naheliegendste Alphabet für elektronische digitale<br />
Datenverarbeitung besteht aus den Symbolen „0“ und „1“, welches als „Spannung“ / „keine<br />
Spannung“ oder als „Stromfluss“ / „kein Strom“ dargestellt werden kann. Im Unterschied zu<br />
dem für uns gewohnten Dezimalsystem mit den 10 Ziffern 0 bis 9, besteht also das<br />
Stellenwertsystem für digitale elektronische Datenverarbeitung aus nur 2 Symbolen, 0 und 1.<br />
Ein Stellenwertsystem mit zwei Symbolen – oder zur Basis 2 – wird als Binärsystem<br />
bezeichnet.<br />
Wir werden zeigen, wie positive und negative ganzzahlige Zahlen, rationale und reelle<br />
Gleitkommazahlen im Binärsystem dargestellt, und wie Zahlen zwischen beliebigen<br />
Stellenwertsystemen umgewandelt werden können. Stehen N Stellen für einen zu W ref<br />
normalisierten digitalisierten Signalwert B zur Verfügung, so beträgt die Auflösung / das<br />
Quantisierungsintervall Q = 2 -N x W ref . Damit lässt sich das ursprüngliche Analogsignal in<br />
einem Wertebereich zwischen –Q/2 und W ref – Q/2 mit einem auf +/-Q/2 begrenzten<br />
Quantisierungsfehler darstellen. Wir werden ferner zeigen, wie mit Binärzahlen gerechnet<br />
(addiert, subtrahiert, multipliziert) wird.<br />
MOSFET Transistor und CMOS Inverter<br />
MOSFET Transistoren bilden die funktionalen Basisbausteine aus denen alle digitalen<br />
Funktionen höherer Ordnung (Elementarlogikgatter, Register, Schaltnetze, Schaltwerke, etc.)<br />
aufgebaut sind. Demzufolge bestimmen die Funktions- und Performanz-Charakteristika von<br />
MOSFET Transistoren unmittelbar das Verhalten und die Leistungsmerkmale digitaler<br />
Komponenten höherer Ordnung. Wenn auch in der heutigen Praxis des digitalen<br />
Schaltungsentwurfs nicht mehr auf Transistorebene entworfen wird (sondern aus Gründen<br />
der Effizienz bevorzugt auf höheren Abstraktionsebenen mit komplexeren Bauelementen<br />
gearbeitet wird), ist ein solides Verständnis der statischen und dynamischen Funktionsweise<br />
von MOSFET Transistoren und der Zusammenhänge zwischen Transistorparametern und<br />
Schaltgeschwindigkeit sowie Verlustleistung unverzichtbar.<br />
<strong>Digitale</strong> Datenverarbeitung: Kombinatorische Schaltnetze<br />
Bei digitaler Datenverarbeitung lassen sich sämtliche Aufgaben und<br />
Verarbeitungsanweisungen auf (boole’sche) Logikgleichungen bzw. auf Sequenzen von<br />
Logikoperationen zurückführen. <strong>Digitale</strong> Verarbeitungsanweisungen schließen arithmetische<br />
Operationen (Addition, Subtraktion, Multiplikation, Division) ebenso ein wie<br />
- 11 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Einführung<br />
Vergleichsoperatoren (>, >, =, ≤, ≠). Zum Beispiel repräsentiert die auf dieser Folie gezeigte<br />
logische Gleichung den algebraischen Ausdruck für den Summationsausgang S eines 1-Bit<br />
Volladdierers mit den Operandeneingängen A, B und C in (wobei C in den Übertragseingang<br />
(carry) der vorherigen Additionsstufe darstellt). Eine Wahrheitstabelle (links), welche die<br />
Werte der Ausgangsvariablen für alle Kombinationen von Eingangswerten tabellarisch<br />
auflistet, ist eine äquivalente Darstellungsform zur boole’schen Logikgleichung. Eine weitere<br />
Darstellungsalternative zu logischen Gleichungen, die nun bereits einen sehr starken Bezug<br />
zur elektronischen Realisierung in Halbleitern hat, ist ein kombinatorisches Schaltnetz. Ein<br />
kombinatorisches Schaltnetz besteht aus elementaren Logikgattern (UND, ODER, NICHT-<br />
UND (NAND), NICHT-ODER (NOR), EXKLUSIVES ODER (EXOR)), welche derart<br />
untereinander und mit den Eingangssignalen (-variablen) verknüpft sind, dass sie ein gemäß<br />
der zu Grunde liegenden Gleichung äquivalentes Ausgangssignal generieren. Die vierte und<br />
für unsere Zwecke letzte Darstellungsalternative für logische Ausdrücke ist das<br />
Zeitdiagramm (timing waveform). Im Zeitdiagramm werden die Ein- und Ausgänge gemäß<br />
ihrem binären Signalwert („0“, niedriger Spannungspegel; „1“, hoher Spannungspegel)<br />
dargestellt. Ausgangssignale folgen den bereits in der Wahrheitstabelle ermittelten Werten.<br />
Als zusätzliche Information wird aus dem Zeitdiagramm die Signalverzögerung, welche nach<br />
Änderung eines Eingangssignals bis zur Aktualisierung des/der Ausgangssignal(e) benötigt<br />
wird, sichtbar. Nur idealisierte Logikgatter schalten „undendlich schnell“ (mit 0 Verzögerung),<br />
reale Gatter weisen stets eine Verzögerung (Latenz) auf bis der Wert des Ausgangs eines<br />
Gatters dem neuen Wert am Eingang folgt.<br />
Im Kapitel „Kombinatorische Schaltnetze“ werden wir lernen, wie beliebige boole’sche<br />
Logikausdrücke systematisch in äquivalente Logikgatterschaltnetze überführt werden<br />
können. Wir werden zeigen, wie mehr-bit Arithmetikoperationen schaltungstechnisch<br />
realisiert und wie redundante (d.h. überspezifizierte) Logikausdrücke optimiert werden<br />
können. Verzögerungszeiten von verschalteten Logikgattern haben maßgeblich Einfluss auf<br />
die Schaltgeschwindigkeit (und, wie wir im nachfolgenden Kapitel sehen werden, somit auf<br />
die Betriebsfrequenz) von Schaltnetzen. Deshalb wird auch besonderer Nachdruck auf die<br />
Zeitanalyse (timing analysis) von Schaltnetzen, als Ausgangspunkt für Performanz-<br />
Optimierung von digitalen Schaltnetzen, gelegt.<br />
<strong>Digitale</strong> Datenverarbeitung: Sequentielle Schaltwerke<br />
Während bei kombinatorischen Schaltnetzen die Werte der Ausgänge unmittelbar von den<br />
Werten der Eingänge abhängen (formal: O(t) = f( I(t) ) ), können die Ausgangswerte bei<br />
sequentiellen Schaltwerken auch von zeitlich zurückliegenden Eingangswerten abhängen<br />
(formal: O(t) = f( I(t, t–kx∆t) , mit k sei eine positive natürliche Zahl und ∆t = 1/f sei die<br />
Periode der Betriebsfrequenz f des Schaltwerks). Schaltwerke besitzen also im Unterschied<br />
zu Schaltnetzen ein Gedächtnis in Form von Registern / Speicherelementen. Von daher<br />
kann man sich allgemein ein Schaltwerk auch als ein um eine (mehr-bit) Registerstufe<br />
erweitertes Schaltnetz vorstellen. Die Registerstufe kann z.B. die Ausgänge des<br />
Schaltnetzes zwischenspeichern und teilweise wieder als Eingänge für das kombinatorische<br />
Schaltnetz zur Verfügung stellen. Mittels derartiger Rückkopplungen können sequentielle<br />
Tiefen (zurückliegende Abhängigkeiten k) beliebiger Tiefe erzeugt werden.<br />
Register oder Flip-Flop Speicherglieder bilden die maßgebliche (schaltungstechnische)<br />
Erweiterung bei Schaltwerken gegenüber Schaltnetzen. Register sind im Unterschied zu<br />
Logikgattern getaktete Schaltelemente, die zu einem bestimmten, vordefinierten Zeitpunkt<br />
(z.B. koinzident mit der steigenden Flanke des Taktsignals clk) den Signalwert vom Eingang<br />
des Register D an dessen Ausgang Q übernehmen (siehe Schaltsymbol und Logiktabelle).<br />
Das Verständnis für die zeitlich richtige Beschaltung eines Registers ist Grundvoraussetzung<br />
für einen erfolgreichen Entwurf korrekter Schaltwerke. Um den Eingangssignalwert D richtig<br />
an den Ausgang Q übertragen zu können muss für eine aus dem Datenblatt des Registers<br />
ersichtliche Zeitdauer t setup vor der steigenden Flanke das Eingangssignal D stabil sein (d.h.<br />
es dürfen während der Setup-Zeit keine weiteren Signaländerungen auf D erfolgen).<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 12 -
Einführung<br />
Desweiteren dürfen keine Signalwechsel auf D während der Hold-Zeit nach der steigenden<br />
Flanke (t hold ) erfolgen. Werden diese beiden Bedingungen erfüllt, stellt sich spätestens zum<br />
Zeitpunkt t c2q nach dem Taktflankenübergang der neue Signalwert am Ausgang Q ein.<br />
Im Kapitel „Sequentielle <strong>Schaltungen</strong>“ wird die im vorherigen Kapitel eingeführte Zeitanalyse<br />
auf <strong>Schaltungen</strong> mit Registerelementen erweitert. Diese Untersuchungen führen und<br />
begründen Techniken zur Steigerung der Leistungsmerkmale (Performanz, Taktrate)<br />
digitaler <strong>Schaltungen</strong> wie Fließbandverarbeitung oder parallele Verarbeitungseinheiten. Die<br />
konsequente Trennung von Daten- und Kontrollpfad, deren korrekte Umsetzung eng mit der<br />
Zeitanalyse sequentieller <strong>Schaltungen</strong> verbunden ist, ist ein weit verbreitetes<br />
Strukturierungsprinzip komplexer digitaler Systeme.<br />
Speicherung <strong>Digitale</strong>r Daten<br />
Voraussetzung zur Verarbeitung digitaler Daten ist deren temporäre oder permanente<br />
Speicherung zum Zweck der Weiterverarbeitung oder des Informationsabrufs zur Darstellung<br />
der Inhalte. Die Leistungskenngrößen zur Datenspeicherung, d.h. die Zugriffsverzögerungen<br />
und Datenraten zum Ablegen und Abruf von Informationen aus Speichermedien beeinflusst<br />
maßgeblich die erzielbaren Leistungskenngrößen des gesamten Prozesses der<br />
Datenverarbeitung.<br />
Vor diesem Hintergrund ist es wichtig zu vermitteln, welche unterschiedlichen Charakteristika<br />
und Einflüsse unterschiedliche Speichertechnologien auf die Leistungskenngrößen von<br />
Halbleiterspeicher haben. Unterschiedliche Speichertechnologien unterscheiden sich in<br />
erster Linie im Aufbau der elementaren Speicherzelle. Die globale Struktur, mit der aus einer<br />
Vielzahl von elementaren Speicherzellen ein größeres Speicherarrays aufgebaut wird, ähnelt<br />
sich bei allen Speichertypen. In dem entsprechenden Kapitel der Vorlesung werden wir den<br />
Aufbau der am häufigsten verwendeten Speicherzellen – SRAM, DRAM, ROM und Flash –<br />
im Detail untersuchen und den Zusammenhang zwischen Aufbau der Speicherzelle und die<br />
daraus resultierenden Einflüsse auf Speicherdichte, Zugriffslatenz und Datentransferrate<br />
ableiten. Bei Prozessorsystemen kommen meist unterschiedliche Speicherarten, die nach<br />
einer systematischen Speicherhierarchie geordnet sind, zum Einsatz. Wir werden<br />
analysieren, warum die üblicherweise eingesetzte Speicherhierarchie sinnvoll ist.<br />
Abschließend werden Techniken zur Steigerung der Zuverlässigkeit der gespeicherten<br />
Information vorgestellt.<br />
Grundlagen der CMOS Skalierung<br />
Der nunmehr über fünf Jahrzehnte kontinuierlich anhaltende Fortschritt und die heutige<br />
Führungsposition digitaler Mikroelektronik kann im Wesentlichen auf die stete Reduktion der<br />
Abmessungen des CMOS MOSFET Transistors zurückgeführt werden. Wenn man einen<br />
integrierten MOSFET Transistor als Rechteck abstrahiert und sowohl die Länge, als auch die<br />
Breite dieses Rechtecks von CMOS Generation zu CMOS Generation um den Faktor √2<br />
reduziert, dann verdoppelt sich die Integrationsdichte mit jeder CMOS Generation. Die Kunst<br />
bestand und besteht darin, diesen Schrumpfungsprozess immer wieder zu wiederholen<br />
(siehe Moore’sches Gesetz im folgenden Abschnitt). Zwischen 1958, der Geburtsstunde der<br />
ersten integrierten Schaltung in Form von einigen wenigen FET Transistoren auf einem<br />
gemeinsamen Halbleitersubstrat, und 2002 konnte die Integrationsdichte um einen Faktor<br />
von > 10 7 gesteigert werden. Dieser Umstand erlaubt es heute Hochleistungsprozessoren,<br />
wie z.B. einen PowerPC 970 mit 52 Millionen MOSFET Transistoren und einer<br />
Betriebsfrequenz von fast 2 GHz, auf einem einzigen Siliziumträger von weniger als 2 cm 2 zu<br />
realisieren.<br />
Eine alternative Darstellung der Führungsrolle digitaler Halbleiter als Basistechnologie der<br />
IKT – dieses Mal mehr unter wirtschaftlichen Gesichtspunkten – zeigt die Folie<br />
„Rechenleistung für $ 1000 …“. Hier werden unterschiedliche Technologien anhand der für<br />
- 13 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Einführung<br />
einen Gegenwert von US Dollar 1.000 erhältlichen Rechenleistung verglichen. Integriere<br />
Halbleiter sind seit vier Jahrzehnte konkurrenzlos führend und erzielten über diesen Zeitraum<br />
ein exponentielles Wachstum in der Rechenleistung. Es ist absehbar, dass innerhalb der<br />
nächsten 10 – 15 Jahren noch keine Nachfolgetechnologie (z.B. Nanotechnologie) in der<br />
Lage sein wird integrierte Halbleiter abzulösen.<br />
Moore’sches Gesetz – Die positiven Seiten<br />
Als Halbleiterpionier und Mitgründer von Intel Inc. hat Gordon Moore bereits in der Mitte der<br />
60er Jahre die Vorhersage gewagt, dass sich die Zahl der Transistoren pro Chip alle 18 bis<br />
24 Monate verdoppeln wird. Diese Verdopplung der Transistoren bei konstanter Chipfläche<br />
ist eine direkte Konsequenz der geraden beschriebenen Reduktion der charakteristischen<br />
Strukturgröße, d.h. der Drain-Source Kanallänge L min , von MOSFET Transistoren um den<br />
Faktor √2 in Länge und Breite. Da diese Vorhersage, basierend auf empirischen<br />
Beobachtungen während den ersten Generationen integrierter <strong>Schaltungen</strong>, sich im<br />
Wesentlichen bis heute bestätigt hat (und voraussichtlich auch noch mindestens ein<br />
Jahrzehnt Gültigkeit behalten wird), wird sie häufig als Moore’sches Gesetz zitiert.<br />
Von den positiven Auswirkungen dieser Entwicklung profitieren wir als Verbraucher der<br />
Mikroelektronik unmittelbar. In unseren MP3 Playern haben wir mehr nichtflüchtige<br />
Speicherkapazität verfügbar, als es vor wenigen Jahren in Rechenservern in Form von<br />
Harddiscs üblich war. Wir beobachten einen exponentiellen Preisverfall (pro gespeichertem<br />
Bit an Information) bei Speichermodulen für digitale Kameras und Personal Computer. Die<br />
Rechenleistung, die wir heute in mobilen Endgeräten wie SmartPhones oder PDAs in der<br />
Westentasche herumtragen, übersteigt die Leistungsfähigkeit von Arbeitsplatzrechnern von<br />
vor 5-7 Jahren.<br />
Die Grafik zeigt den exponentiellen Anstieg der Chipkapazität, ausgedrückt als Anzahl<br />
Transistoren pro Chip, für DRAM (Dynamischer Schreib-Lesespeicher) und<br />
Mikroprozessoren über die vergangenen Jahrzehnte. Anmerkung: In einer halblogarithmischen<br />
Darstellung (logarithmische Ordinate mit Chipkapazität und lineare Abszisse<br />
mit Jahreszahlen) entspricht eine ansteigende Gerade einer exponentiellen Zunahme. Die<br />
Integrationsdichte von Mikroprozessoren steigt langsamer als die von DRAM Speicher weil<br />
DRAM Speicher von seiner Struktur her einen homogeneren und demzufolge kompakteren<br />
Aufbau besitzt. Einhergehend mit dem exponentiellen Anstieg der Chipkapazitäten zeigen<br />
die Transistorkanallängen L min und die Preise von DRAM Speicher (gemessen an jedem<br />
gespeicherten Bit) einen exponentiellen Abfall.<br />
Moore’sches Gesetz – Die Herausforderungen<br />
Aus dem Moore’schen Gesetz ergeben sich neben den beschriebenen Vorteilen auch eine<br />
Reihe von Nachteilen bzw. Herausforderungen. Die unter technischen Gesichtspunkten<br />
gravierendste Konsequenz aus der stetig zunehmenden Zahl der Transistoren pro<br />
konstanter Chipfläche ist die Entwicklung bei der Verlustleistungsdichte und der absoluten<br />
Verlustleistung pro Chip. Wir werden im Kapitel „CMOS Inverter“ zeigen, dass die<br />
dynamische Verlustleistungsdichte (Verlustleistung pro Fläche) proportional zur Anzahl N der<br />
MOSFET Transistoren pro Fläche, zur Betriebsfrequenz f, zur Lastkapazität pro Transistor C<br />
sowie zum Quadrat der Versorgungsspannung V DD ist.<br />
P ×<br />
2<br />
/ A ~ N × C × f Vdd<br />
Eine Reduktion der Transistorabmessungen resultiert in einer Verringerung von C um den<br />
Faktor √2. Allerdings erhalten wir durch die Reduktion der Transistorabmessungen auch<br />
doppelt so viele MOSFET Transistoren pro Fläche, die bei möglichst höherer<br />
Betriebsfrequenz f betrieben werden. Diese Faktoren führen dann letztendlich seit<br />
Generationen von CMOS Technologien zu einer effektiven Zunahme der<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 14 -
Einführung<br />
Verlustleistungsdichte P/A. Ein Pentium-II Prozessor hatte bereits im Jahr 1996 eine<br />
Verlustleistungsdichte von 10 W/cm 2 , ein Wert, der einer heißen Herdplatte entspricht.<br />
Gemäß der ITRS Abschätzung von 1999 wäre beim damaligen Stand der Kenntnis im Jahr<br />
2006 eine Verlustleistungsdichte vergleichbar mit einem Atomreaktor zu erwarten gewesen.<br />
Massive Anstrengungen im Bereich Low-Power Entwurf haben diese düstere Vorhersage<br />
nicht Realität werden lassen. Heute ist Forschung im Bereich energieeffizienter<br />
Halbleiterbauteile und Low-Power Technologien auf allen Abstraktionsebenen der<br />
Mikroelektronik ausschlaggebend für eine erfolgreiche Fortsetzung des Moore’schen<br />
Gesetzes.<br />
Die Zunahme der Entwicklerproduktivität (gemessen in Anzahl verbauter Transistoren pro<br />
Zeit) hinkt mit einer (beachtlichen) 20%igen Steigerung jährlich dem MOSFET<br />
Kapazitätswachstum von annähernd 55% pro Jahr hinterher. Die Folgen sind: Größere<br />
Entwicklerteams benötigen längere Entwicklungszeiten um die nächsten Chip-/<br />
Produktgenerationen bereitzustellen. Dies führt zu einer massiven Steigerung der<br />
Entwicklungskosten und zu einer Verringerung der Gewinnmargen. Dieses Phänomen wird<br />
„Produktivitätslücke“ (productivity gap) genannt und erweist sich als die nachhaltigste<br />
wirtschaftliche Herausforderung für die Fortsetzung des Moore’schen Gesetzes heraus.<br />
Weitere Herausforderungen, die sich ebenfalls unmittelbar aus dem abnehmenden<br />
Strukturgrößen neuer CMOS Generationen ergeben, sind:<br />
• Höhere Herstellungskosten aufgrund aufwändigerer Fertigungsprozesse.<br />
• Reduzierte Zuverlässigkeit des Schaltverhaltens von MOSFET Transistoren aufgrund<br />
der abnehmenden Zahl beteiligter Ladungsträger.<br />
CPUs in IKT Systemen<br />
Grundsätzlich bestehen kaum architekturelle Unterschiede zwischen low-end RISC CPUs in<br />
eingebetteten Systemen und high-end Prozessoren in Rechenservern. Heute machen<br />
allerdings CPUs, die in eingebetteten Systemen in Kombination mit spezifischen<br />
Hardwarebeschleunigern verbaut werden, über 90% aller verbauten Prozessoren aus. Die<br />
meisten in der Praxis eingesetzten Prozessoren werden also gar nicht als eigentliche<br />
Rechner wahrgenommen.<br />
Bestandteile eines RISC Mikroprozessorsystems<br />
Die wesentlichen Funktionseinheiten eines auf einem RISC Mikroprozessor basierten<br />
Rechnersystems sind neben dem eigentlichen Prozessor:<br />
• Das Speicher-Subsystem des Rechners.<br />
• Ein Ein-/Ausgabesystem, über welches der Rechner mit seiner Umwelt<br />
kommuniziert.<br />
• Ein Verbindungsnetz, in der Regel ein Bussystem, welches den Prozessor mit dem<br />
Speicher- und Ein-/Ausgabesystem verbindet.<br />
Der Prozessor selbst besteht aus dem Rechenwerk, in dem die elementaren Instruktionen<br />
oder Operationen des Prozessor ausgeführt werden, dem Register-Satz, welcher die<br />
Operanden und Zwischenergebnisse der Rechenoperationen zwischenspeichert, den Level-<br />
1 (L1) Caches für Daten und Programmcode sowie einem Steuerwerk, dessen Aufgabe es<br />
ist, alle Untergruppen des Prozessors in ihrem Zusammenwirken zu koordinieren.<br />
Charakteristisch für RISC Prozessoren, z.B. Power PC, ARM oder MIPS, im Unterschied zu<br />
einem CISC (Complex Instruction Set Computer) ist, dass alle arithmetischen und logischen<br />
- 15 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Einführung<br />
Operationen ausschließlich auf Register-Operanden ausgeführt werden. Zugriffe auf den<br />
Systemspeicher werden über separate load (ld)/store (st) Operationen abgewickelt.<br />
Das Speichersubsystem besteht üblicherweise aus einem Read Only (ROM) Boot-Segment<br />
zum starten des Prozessorsystems, Random Access Memory (RAM) mit wahlfreien<br />
Lese/Schreibzugriff sowie einem über die Ein-/Ausgabeeinheit zugänglichen dynamischen<br />
(DRAM) Speicher für größere Datenmengen. Ein „Cache“ ist eine spezielle Form von<br />
lokalem Speicher, die einen begrenzten Adressbereich des Hauptspeichers temporär näher<br />
an der CPU ablegt. Auf diese Weise wird die Zugriffslatenz auf die im Cache enthaltenen<br />
Datensätze verringert. Höhere Prozessorleistung hängt immer unmittelbar mit höherer<br />
Zugriffsgeschwindigkeit auf die Daten zusammen.<br />
RISC Instruktions-Phasen<br />
Mikroprozessoren agieren heute allesamt nach dem Fließbandprinzip, d.h., einzelne<br />
Instruktionen werden nicht in einem einzelnen Verarbeitungsschritt ausgeführt sondern in<br />
mehrere Instruktions-Phasen unterteilt. Jede Instruktionsphase wird in der Regel in einer<br />
Taktperiode T = 1/f cpu des Prozessortaktes ausgeführt, wobei f cpu die Betriebsfrequenz des<br />
Prozessors angibt. Die typischen Instruktions-Phasen eines einfachen RISC Prozessors<br />
sind:<br />
• Instruction Fetch (IF): Der Programmzähler (instruction counter) ist ein spezielles<br />
Register, welches die Adresse der nächsten auszuführenden Instruktion im<br />
Programmspeicher anzeigt. Während der Instruction-Fetch-Phase wird die nächste<br />
auszuführende Instruktion in ein CPU-internes Register geladen. Falls sich die<br />
Instruktion im Cache der RISC CPU befindet kann diese Phase innerhalb einer<br />
Taktperiode abgeschlossen werden.<br />
• Instruction Decode (ID): In der Steuereinheit werden der binär codierte Instruktionscode<br />
und die dazugehörigen Operandenregister decodiert. Die Aktivierung der<br />
entsprechenden Steuersignale zur Adressierung der Operanden und der passenden<br />
Ausführungseinheit wird vorbereitet.<br />
• Operand Fetch (OF): Die Operanden werden aus dem Registerblock in die ALU<br />
(arithmetic logic unit) und das Akkumulatorregister geladen.<br />
• Execution (EX): Die passende Ausführungseinheit innerhalb der ALU führt die<br />
eigentliche Instruktion aus und speichert das Ergebnis wiederum im<br />
Akkumulatorregister.<br />
• Write Back (WB): Der Inhalt des Akkumulators wird in das (Ergebnis-)Register der<br />
Instruktion zurück geschrieben.<br />
Für den Zugriff auf Speicherinhalte im Systemspeicher stehen bei einem RISC Prozessor<br />
zwei spezielle load/store (ld/st) Befehle zur Verfügung.<br />
Das Innenleben eines RISC Prozessors<br />
Auf dieser Folie sind 2 Prozessoren aus unterschiedlichen Anwendungsspektren gezeigt.<br />
Beim linken Chipfoto handelt es sich um einen Hochleistungsprozessor der POWER-Familie<br />
von IBM. In der rechten Darstellung um einen low-end Soft-Core Prozessor, wie er in XILINX<br />
FPGAs verbaut ist. Da es sich bei beiden Prozessoren um RISC Architekturen handelt,<br />
bestehen sie im Wesentlichen aus äquivalenten Funktionsblöcken.<br />
In dieser Vorlesung wollen wir spezielles Augenmerk auf die Anwendung der Grundlagen<br />
digitaler <strong>Schaltungen</strong> innerhalb verschiedener Baugruppen von RISC Prozessoren legen.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 16 -
Einführung<br />
Aufgaben<br />
1. Nennen Sie den wesentlichen Unterschied zwischen einem analogen und einem<br />
digitalen Signal.<br />
2. Wieso wird bei integrierten <strong>Schaltungen</strong> versucht, einen Großteil der Verarbeitung<br />
digital auszuführen? Wo werden analoge Schaltungsteile eingesetzt?<br />
3. Wieso kommt es bei der Umwandlung von analogen zu digitalen Signalen zu<br />
Fehlern?<br />
4. Beschreiben Sie die Kernaussage des Mooreschen Gesetzes.<br />
5. Welches sind die größten Herausforderungen bei der fortschreitenden Entwicklung<br />
von ICs?<br />
6. Nennen Sie die wesentlichen Bestandteile eines Mikroprozessor-Systems.<br />
- 17 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Einführung<br />
Lösungen<br />
1. Ein digitales Signal ist im Unterschied zu einem analogen Signal zeit- und<br />
wertdiskret. Zeitdiskret bedeutet hierbei, dass nur zu bestimmten Zeitpunkten ein<br />
Wert übernommen wird (üblicherweise mit festem Zeitabstand zwischen zwei Werten<br />
= Takt). Wertdiskret bedeutet, dass es nur eine endliche Menge an möglichen Werten<br />
gibt.<br />
2. Eine digitale Verarbeitung ist aus verschiedenen Gründen wesentlicher einfacher zu<br />
erreichen, als eine analoge. Dies schließt neben den einfachen Rechenregeln, die<br />
sehr gute Datenspeicherbarkeit, eine hohe Signalintegrität und einen verhältnismäßig<br />
geringen Entwurfsaufwand für digitale <strong>Schaltungen</strong> mit ein. Analoge Schaltungsteile<br />
werden daher meist nur wo unbedingt notwendig verwendet, insbesondere an den<br />
Schnittstellen zur Außenwelt.<br />
3. Analoge Signale besitzen einen kontinuierlichen Wertebereich, <strong>Digitale</strong> dagegen nur<br />
einen Diskreten. Jeder digitale Wert repräsentiert dabei einen analogen Bereich mit<br />
Quantisierungsschritt Δ (= 2-N Vref). Hierbei kann es zwangsläufig zu<br />
Quantisierungsfehlern kommen. Dieser ist umso kleiner, je mehr Bits zur Umsetzung<br />
verwendet werden, je mehr Zwischenstufen also zur Verfügung stehen. Bsp: Bei<br />
einer Referenzspannung Vref von 8V und 3 Bit Auflösung entspricht jede Erhöhung<br />
des digitalen Wertes um 1 einen Sprung um 1V. Bei 3,4V wird der Wert also zu 011b<br />
(also 3V) umgesetzt. Hierbei entsteht ein Fehler von 0,4V. Der maximale Fehler<br />
entspricht ±0,5V.<br />
4. Das Mooresche Gesetz sagt aus, dass sich die Transistordichte - also die Anzahl der<br />
Transistoren pro Flächeneinheit - in etwa alle 18 bis 24 Monate verdoppelt.<br />
5. Verlustleistung, Design-Produktivität, Herstellungskosten.<br />
6. Prozessor, Bus, Speicher, Ein-/Ausgabe (IO).<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 18 -
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
Zahlensysteme<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de<br />
- 19 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Zahlensysteme<br />
Zahlensysteme<br />
Lernziele<br />
In diesem Kapitel werden die grundlegenden Formen zur Darstellung digitaler Daten und<br />
Signale in integrierten <strong>Schaltungen</strong> und elektronischen Rechenanlagen vermittelt. Hierzu<br />
werden verschiedene polyadische (d.h. auf Stellenwertigkeit basierende) Zahlensysteme<br />
eingeführt und Konvertierungsverfahren zwischen diesen Zahlensystemen erörtert. Darauf<br />
aufbauend werden Ausführungsvorschriften für grundlegende Rechenoperationen (Addition,<br />
Subtraktion, Multiplikation) im Binärsystem vorgestellt. Das Kapitel schließt mit einer<br />
Gegenüberstellung von Zahlendarstellungen im Festkomma- und Gleitkommaformat.<br />
Gleitkommazahlen werden immer dann bevorzugt angewendet, wenn mit begrenzter Anzahl<br />
von Stellen ein möglichst großer Wertebereich darzustellen ist.<br />
Das Innenleben eines Prozessors<br />
In Bezug auf unser RISC Prozessormodell spielt die Zahlen- / Datendarstellung für all<br />
diejenigen Funktionsblöcke zur Datenspeicherung (SRAM Speicher, Registerfile) sowie der<br />
Verarbeitungseinheit (ALU) eine zentrale Rolle.<br />
Polyadische Zahlensysteme<br />
Bereits die alten Ägypter nutzten ein Zahlensystem zur Basis 10. Allerdings ähnlich wie das<br />
römische Zahlensystem ohne Stellenwertigkeiten. In Zahlensystemen ohne Stellenwertigkeit<br />
war die Berechnung von Multiplikation, Division oder Wurzelziehen aufgrund fehlender<br />
systematischer Rechenvorschriften einer handvoll von Experten vorbehalten. Seit dem 12.<br />
Jahrhundert hat sich in Europa das aus Indien und Arabien (8. Jahrhundert) stammende<br />
dezimale polyadische Zahlensystem durchgesetzt.<br />
Ein polyadisches Zahlensystem ist gekennzeichnet durch:<br />
• Null ist eine gültige Ziffer, die an jeder Stelle einer Zahl stehen kann und den<br />
positiven vom negativen Wertebereich trennt<br />
• Jede Ziffer einer Zahl besteht aus einer begrenzten Menge von r-1 Symbolen<br />
• Jede Position oder Stelle i einer Zahl hat eine spezifische Wertigkeit r i<br />
• Der Dezimalpunkt trennt Zahlen größer 1 von Zahlen kleiner 1<br />
• Die Ziffer direkt links neben dem Dezimalpunkt hat die Positionsnummer 0 und die<br />
Stellenwertigkeit 1<br />
Der Wertebereich einer Zahl mit p Vorkomma- und n Nachkommastellen reicht von 0 bis<br />
r p - r -n . Die kleinstmögliche positive darstellbare Zahl mit n Nachkommastellen ist r -n .<br />
Zahlensysteme: Binärsystem<br />
In der Welt der digitalen <strong>Schaltungen</strong> und Rechensystemen werden einzelne Ziffern mit 0<br />
oder 1 (hoher Spannungspegel oder niedriger Spannungspegel) dargestellt. Jede Ziffer ist<br />
wertdiskret und kann nur einen aus diesen zwei möglichen Zuständen einnehmen. Es<br />
handelt sich folglich um ein binäres polyadisches Zahlensystem zur Basis 2. Die einzelnen<br />
Ziffern im binären Zahlensystem werden auch als Bits bezeichnet. Die Ziffer oder das Bit<br />
höchster Ordnung mit dem Wert 1 wird als MSB (Most Significant Bit), die Ziffer oder das Bit<br />
niedrigster Ordnung mit dem Wert 1 nach dem Komma als LSB (Least Significant Bit)<br />
bezeichnet.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 20 -
Zahlensysteme<br />
Zahlensysteme: Octal- und Hexadezimalsystem<br />
Octal- (zur Basis 8) und Hexadezimalsysteme (zur Basis 16) sind gängige und kompakte<br />
Darstellungen von Multi-Bit Zahlen in digitalen Systemen. Sie werden häufig zur<br />
kompakteren Darstellung von Binärzahlen oder zu Dokumentationszwecken benutzt. Da wir<br />
in dem für uns üblichen Dezimalsystem lediglich 10 Ziffern unterscheiden, wird die<br />
Ziffernkette zur Darstellung von Hexadezimalzahlen nach der Ziffer 9 mit den ersten<br />
Buchstaben des Alphabets (A bis F) fortgesetzt. Die Basen des Octal- und<br />
Hexadezimalsystems entsprechen jeweils 2er Potenzen. Demzufolge lassen sich<br />
Binärzahlen leicht in Octal- oder Hexadezimalzahlen umwandeln und umgekehrt. Um von<br />
einer Binär- zu einer Octaldarstellung zu gelangen bildet man jeweils 3er Gruppen von Bits<br />
(beginnend mit dem LSB und evtl. mittels Auffüllen von Nullen beim MSB). Jede 3er Gruppe<br />
steht für eine Octalziffer. Zur Umwandlung von Binärzahlen in Hexadezimalzahlen werden<br />
entsprechend 4er Gruppen von Bits gebildet. Der Übergang von Octal- oder<br />
Hexadezimalzahlen zu einer Binärdarstellung ist ebenso einfach: Jede Octal-/<br />
Hexadezimalzahl wird in eine 3er/4er Gruppe an Bits expandiert.<br />
Zahlenkonvertierung Dezimal nach Basis r<br />
Zur Ableitung der Umwandlungsvorschrift für ganzzahlige Dezimalzahlen nach einer<br />
beliebigen Basis r stellen wir die „Summen der Radix-Potenzen“ Darstellung einer Zahl zur<br />
Basis r alternativ als verschachtelte Produktterme dar.<br />
Z<br />
p−1<br />
i<br />
10<br />
= ∑ r ⋅ di<br />
= d<br />
p−1)<br />
⋅ r + d<br />
p−2)<br />
⋅ r + ...) ⋅r<br />
+ d1)<br />
i=<br />
0<br />
((...( ⋅ r + d<br />
Eine Division der Zahl Z durch die Basis r führt zu einem Quotienten Q 1 mit dem Rest d 0. Eine<br />
fortgesetzte Division der so entstehenden Quotienten durch die Basis r ergibt die folgenden<br />
Ziffern d 1 bis d p-1 dargestellt von recht nach links (von Ziffern niedriger zu Ziffern höherer<br />
Ordnung). Dieses Verfahren wird nun anhand dreier Beispiele für Binär- Octal und<br />
Hexadezimalsysteme veranschaulicht.<br />
Die Umwandlung des nicht ganzzahligen Anteils einer Dezimalzahl nach einer beliebigen<br />
Basis r erfolgt durch wiederholte Multiplikation der Zahl Z zu Produkten P i und Abspaltung<br />
des jeweilig entstehenden Übertrags d -i .. Hierzu finden sich ebenfalls drei Beispiele im<br />
Folienmaterial zur Vorlesung.<br />
Binäre Addition<br />
Nach der Zahlendarstellung kommen wir nun zu den elementaren Rechenoperationen.<br />
Zunächst betrachten wir die binäre Addition. Die Rechenregeln für die Addition zweiter<br />
Binärzahlen folgen dem gleichen Schema wie das in der Grundschule erlernte Verfahren für<br />
die Addition von Dezimalzahlen. Einziger Unterschied - und das macht Rechnen mit<br />
Binärzahlen einfacher als mit Dezimalzahlen - der Wertebereich einer Ziffer endet bereits<br />
bei 1.<br />
Beginnend mit dem LSB (dem niederwertigsten Bit) werden die einzelnen Bits der beiden<br />
Summanden addiert. Falls sich eine Bitsumme von größer gleich 2 (dem Wert der Basis des<br />
Binärsystems) ergibt, erfolgt ein Übertrag (carry) auf das Bit der nächst höheren Ordnung.<br />
Darstellung Negativer Zahlen: Mittels Vorzeichen-Betrag<br />
An dieser Stelle führen wir die Darstellung negativer Zahlen ein, um letztlich die Subtraktion<br />
zweier Binärzahlen auf die Addition des Subtrahenden mit einem negativen Minuenden<br />
zurückzuführen. Diese Vorgehensweise, die zunächst als ein „Umweg“ aussehen mag, wird<br />
0<br />
- 21 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Zahlensysteme<br />
sich später als einfach und effizient erweisen. Die übliche Unterscheidung zwischen<br />
positiven und negativen Zahlen erfolgt mittels Vorzeichen: +/-, oder Haben/Soll im<br />
Finanzwesen. Bei Binärzahlen kann man nun das MSB als Vorzeichenbit definieren. Ist das<br />
MSB 0 zeigt dies einen positiven Zahlenwert, ein MSB von 1 einen negativen Zahlenwert an.<br />
Die Beträge von positiven und negativen Zahlen in dieser Darstellung sind identisch. Es fällt<br />
auf, dass es zwei gültige Darstellungen für die Zahl 0 gibt (eine positive und eine negative 0).<br />
Bei näherem Hinschauen fällt allerdings auf, dass der Bau eines digitalen Addierwerkes bzw.<br />
Subtrahierwerkes auf der Basis der Vorzeichen- Betrags-Darstellung recht aufwendig ist.<br />
Nehmen wir das Beispiel (-3) + (+7): Um diese Operation auszuführen ist zunächst die<br />
Prüfung der Vorzeichen beider Summanden notwendig. Wenn die Vorzeichen gleich wären,<br />
dann könnte eine reguläre Addition mit Übernahme des Vorzeichens für die Summe<br />
verwendet werden. Sind die Vorzeichen allerdings, wie in unserem Fall verschieden, dann<br />
muß noch der Betrag der Summanden geprüft werden. In unserem Fall müsste eine<br />
Subtraktion des kleineren Summanden vom größeren Summanden erfolgen (7 – 3). Diese<br />
Art von Überprüfung gestaltet sich bei einer digitalen Realisierung allerdings als aufwändig.<br />
Deshalb führen wir nun eine alternative Darstellung für negative Zahlen ein, die sogenannte<br />
Radix-Komplement Darstellung.<br />
Darstellung Negativer Zahlen: Mittels Radix-Komplement<br />
Das Radix-Komplement K einer n-stelligen Zahl Z ist definiert als<br />
K(<br />
Z)<br />
= r<br />
Die Zahl -3 als 10er Komplement einer 3stelligen Dezimalzahl dargestellt, ergibt 1000 – 3 =<br />
997.<br />
Durch die Subtraktion der darzustellenden Zahl von r n wird der ursprünglich rein positive<br />
Wertebereich 0 bis r n -1 für negative Zahlen im Bereich 0 bis – r n-1 nutzbar. Das Bestimmen<br />
des Radix-Komplements erscheint beim ersten Hinschauen schwieriger als die Vorzeichen-<br />
Betragsdarstellung. Auch erscheint Subtraktion als Operation - entgegen der bei der<br />
vorherigen Folie gemachten Annahme, Subtraktion im eigentlichen Sinne umgehen zu<br />
können - unumgänglich. Durch elementare Umformung obiger Gleichung in<br />
n −<br />
n<br />
n<br />
K( Z)<br />
= r − Z = ( r −1)<br />
− Z + 1<br />
stellt sich die Sache gleich wesentlich einfacher dar.<br />
r n -1 ist eine n-stellige Zahl bestehend aus lauter Ziffern r-1, dem größtmöglichen Betrag<br />
einer Ziffer zur Basis r. Die Subtraktion von Z von der Zahl r n – 1 kann deshalb zurückgeführt<br />
werden auf eine ziffernweise/stellenweise Subtraktion (Komplementbildung) der einzelnen<br />
Ziffern z i von r-1. Da r-1 nie kleiner als z i sein kann, wird vermieden, sich jemals einen<br />
Übertrag von der nächst höheren Stelle „borgen“ zu müssen. Abschließend darf die Addition<br />
von 1 (als Ausgleich zur Subtraktion von 1 von r n ) nicht vergessen werden.<br />
Zahlen in Komplementdarstellung können nun ohne jegliche Vorzeichenprüfung /<br />
Größenvergleich direkt miteinander addiert / voneinander subtrahiert werden. Die<br />
Darstellung negativer Binärzahlen mittels Zweier-Komplement wird nun anhand von<br />
Beispielen erläutert.<br />
Die Tabelle auf der rechten Seite zeigt die Ziffernkomplemente für das Binär-Octal-Dezimalund<br />
Hexadezimalsystem.<br />
Z<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 22 -
Zahlensysteme<br />
Zweier-Komplement<br />
Eine alternative grafische Darstellung des Zweier-Komplements kann mittels eines<br />
Zahlenkreises erfolgen. Dabei wurde der gesamte Wertebereich einer 4-stelligen Binärzahl in<br />
einen möglichst gleich großen positiven und negativen Bereich aufgeteilt. Das MSB fungiert<br />
als Vorzeichenbit. Demzufolge können mit 4 Bits Dezimalzahlen von -8 bis +7 dargestellt<br />
werden.<br />
Ein Durchlaufen des Zahlenkreises im Uhrzeigersinn entspricht einer Addition, entgegen<br />
dem Uhrzeigersinn einer Subtraktion. Überträge beim MSB werden eliminiert / ignoriert.<br />
Demzufolge entspricht die Sequenz 10000 einer 4-stelligen Binärzahl mit dem Wert 0.<br />
Zu beachten ist allerdings, es dürfen durch Addition oder Subtraktion keine Überläufe /<br />
Unterläufe in den Beträgen des erlaubten Wertebereichs auftreten. Mit anderen Worten, wird<br />
bei drei Bits für die Betragsdarstellung die Zahl -8 von links her durch Subtraktion<br />
unterschritten bzw. die Zahl +7 von rechts her durch Addition überschritten, so liefert das<br />
Ergebnis der Subtraktion / Addition ein falsches Ergebnis. Beispiel: -6 - 3 ergibt eben nicht<br />
+7, wie dies beim Überschreiten der -/+ Grenze auf dem Zahlenkreis der Fall wäre. Hier ist<br />
der erlaubte negative Bereich bis -8 unterlaufen worden. Einen Überlauf oder Unterlauf kann<br />
bei Zweier-Komplementzahlen gleicher Länge nur dann auftreten, wenn beide Operatoren<br />
das gleiche Vorzeichen haben (d.h. bei der Addition zweier positiven Zahlen bzw. der<br />
Subtraktion zweier negativen Zahlen). Ist das Vorzeichen des Ergebnisses unterschiedlich<br />
zum Vorzeichen der Operanden, so ist entweder ein Überlauf oder ein Unterlauf aufgetreten.<br />
Binäre Subtraktion<br />
Mit der nun eingeführten Darstellung negativer Zahlen in der Komplementdarstellung können<br />
wir die Operation Subtraktion ganz allgemein auf eine Addition mit einem negativen<br />
Minuenden zurückführen.<br />
Binäre Multiplikation<br />
Die Multiplikation zweier vorzeichenfreier (unsigned) Binärzahlen X und Y, wobei X einen N-<br />
Bit breiten Multiplikanden und Y einen M-Bit breiten Multiplikator darstellt, kann entweder als<br />
Y-fache wiederholte Addition des Multiplikanden mit sich selbst oder als Summation von<br />
maximal M-stellenangepaßter Partialprodukte verstanden werden. Jedes Partialprodukt<br />
repräsentiert eine Multiplikation von X mit jeweils einer der insgesamt M Ziffern von Y.<br />
Z<br />
=<br />
M −1<br />
N −1<br />
j<br />
i<br />
Y = ∑Y<br />
j<br />
2 ; X = ∑ X<br />
i<br />
2<br />
j=<br />
0<br />
i=<br />
0<br />
X × Y<br />
=<br />
M + N −1<br />
∑<br />
k = 0<br />
Z<br />
k<br />
2<br />
k<br />
=<br />
M −1<br />
∑∑ ⎜<br />
j=<br />
0<br />
⎛<br />
⎝<br />
N −1<br />
i=<br />
0<br />
X Y<br />
i<br />
j<br />
2<br />
i+<br />
j<br />
⎞<br />
⎟<br />
⎠<br />
Das Verfahren der aufsummierten Partialbrüche entspricht wiederum vom Konzept her dem<br />
elementaren Vorgehen zur Multiplikation zweier Dezimalzahlen. Wie die Addition so ist auch<br />
die Multiplikation in der binären Zahlendarstellung einfacher als im Dezimalbereich. Jede<br />
Ziffer y i des Multiplikanden ist entweder 0 oder 1. Das bedeutet der Partialbruch ist entweder<br />
0 (wenn y i = 0) oder er ist identisch mit dem Multiplikator (wenn y i =1) war. Die<br />
Partialprodukte müssen dann nur noch richtig um die Stellenzahl i vor der Addition nach links<br />
verschoben werden.<br />
Demzufolge kann das Produkt aus X und Y maximal N + M-Stellen breit sein. Ein Array<br />
bestehend aus M x N-Bit Volladdierern – wie ein Volladdierer funktioniert werden wir im<br />
Kapitel Kombinatorische Logik noch kennen lernen – deren Eingangsoperatoren<br />
- 23 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Zahlensysteme<br />
stellenversetzt beschaltet sind, stellt eine schnelle aber aufwändige Hardwarerealisierung<br />
eines Multiplizierers in digitaler Schaltungstechnik dar.<br />
Trivial einfach wird im Binärsystem die Multiplikation/Division mit oder durch die Zahl 2. Eine<br />
Multiplikation mit oder durch 2 erhält man durch links/rechts Verschiebung des Multiplikators<br />
um eine Position (analog zur Multiplikation/Division um den Faktor 10 im Dezimalsystem).<br />
Eine Multiplikation um 4 / 8 wird durch links / rechts Schieben um 2 / 3 Positionen erreicht.<br />
Eine ressourcenschonendere, allerdings auch weniger performante Lösung als ein Array von<br />
N-Bit Addierern stellt die folgende Realisierung eines Multiplizierers dar. Hierzu werden<br />
insgesamt nur 1 N-Bit Addierer und ein Schieberegister der Länge 2N (Annahme:<br />
Multiplikand ist genauso breit wie Multiplikator) benötigt. Anstatt parallel werden nun die<br />
Partialbrüche sequentiell (auf eine Zwischensumme) aufsummiert. Nach jeder Addition<br />
erfolgt eine Stellenverschiebung um 1 Position. Ist eine Partialsumme 0, d.h. die<br />
entsprechende Stelle y i im Multiplikanden ist 0, so kann man sich die Addition sparen und<br />
gleich schieben.<br />
Hierbei ist es von Vorteil, eine Rechtsverschiebung der Zwischensumme (was identisch mit<br />
einer Linksverschiebung des zu addierenden Partialbruchs ist) durchzuführen. Grund: Bei<br />
der Multiplikation von Ziffern höherer Ordnung des Multiplikanden werden die niederwertigen<br />
Bits der Zwischensumme nicht mehr beeinflusst. Man kommt deshalb mit einem N-Bit<br />
Addierer (anstatt eines 2N-Addierers) aus.<br />
Festkomma / Gleitkomma Darstellung<br />
Bei den bisher beschriebenen Zahlendarstellungen sind wir stets von der<br />
Festkommadarstellung ausgegangen. D.h. die Position des Radix oder Basispunktes war<br />
stets definiert und blieb statisch. Die Zahl der Ziffernstellen p einer Festkommazahl legt<br />
bekanntlich den darstellbaren Wertebereich der Zahl direkt fest. Bei Festkommazahlen mit<br />
identischer Radixpunkteinstellung können die Rechenregeln für arithmetische Funktionen<br />
und algebraische Umformungen somit wie beschrieben direkt angewendet werden.<br />
Für jede Festkommadarstellung einer Zahl Z kann aber auch eine äquivalente<br />
Gleitkommadarstellung gemäß der Formel<br />
Z<br />
= ( −1)<br />
v<br />
⋅m⋅r<br />
e<br />
gewählt werden.<br />
Eine Gleitkommazahl ist beschrieben durch:<br />
• Ihr Vorzeichen v<br />
• eine k-stellige Mantisse m, welche die k Ziffern höchster Ordnung der<br />
darzustellenden Zahl Z enthält sowie<br />
• einen Exponenten e der angibt, um wie viele Stellen zur Basis r die Mantisse<br />
verschoben werden muss, um den eigentlichen Zahlenwert zu approximieren.<br />
Wichtig: Da der Exponent e größere Beträge annehmen kann als die Mantisse m<br />
Stellen hat, werden bei Zahlen > 1 die niederwertigen Bits ggf. mit 0-en aufgefüllt..<br />
Bei Zahlen < 1 werden die höherwertigen Bits der Zahl Z ggf. mit 0-en aufgefüllt.<br />
Beispiel: k=3, m=111, e=1010, r=2: 1,111 x 2 6 = 1111000<br />
Anmerkung: Für das Beispiel gelte die gleiche Annahme wie bei<br />
Gleitkommadarstellung nach IEEE 754 (siehe unten), wonach das MSB der binären<br />
Mantisse nicht in m dargestellt wird.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 24 -
Zahlensysteme<br />
Um die bisher beschriebenen Rechenoptionen auf zwei Gleitkommazahlen auszuführen,<br />
muß vorher eine Skalierung, d.h. eine Anpassung der Exponenten beider Gleitkommazahlen<br />
erfolgen.<br />
Gleitkomma Darstellung für Binärsystem: IEEE 754<br />
Der IEEE Standard 754 legt für 32 Bit Binärzahlen die Gleitkommadarstellung fest. Eine<br />
IEEE 754 kompatible binäre Gleitkommazahl besteht aus einem Vorzeichenbit, 8 Bit-<br />
Exponenten und 23 Bit-Mantisse. Der Exponent e wird so gewählt, dass die Mantisse einen<br />
Wert zwischen 1 und 2 annimmt. Auf diese Weise wird die Mantisse um eine weitere Stelle<br />
(die nicht dargestellt zu werden braucht) verlängert. Bekanntlich hat jeder darzustellende<br />
binäre Zahlenbetrag ein MSB = 1.<br />
Negative Exponenten werden vermieden, indem man dem realen Exponenten e die Zahl 127<br />
hinzuaddiert. Dieser „Bias-Wert“ ist natürlich nur für die Darstellung bzw. Speicherung einer<br />
Gleitkommazahl maßgeblich und muss bei der Rückgewinnung der zugrundeliegenden<br />
Festkommazahl wieder subtrahiert werden. IEEE 754 unterstützt Exponenten im Bereich<br />
-126 bis +127, und schöpft somit 254 der maximal 256 möglichen Werte von e aus. Die<br />
beiden verbliebenden Werte des 8-stelligen Exponenten haben eine spezielle Bedeutung:<br />
• e = 0 10 = 00000000 2 wird zur Darstellung der Zahl „0“ verwendet. Da die Mantisse<br />
(per obiger Definition) stets einen Zahlenwert zwischen 1 und 2 annimmt (nicht<br />
dargestelltes MSB = 1), kann eigentlich die Zahl „0“ nicht dargestellt werden. Dies<br />
erfolgt nun über die Vereinbarung, dass e = 0 der Zahl „0“ entspricht.<br />
• e = 255 10 = 11111111 2 wird zur Darstellung von „Unendlich“ (∞) und somit auch für<br />
einen Betragsüberlaufs beim Exponenten e verwendet.<br />
Die Umwandlung der Zahlendarstellung zwischen Gleitkomma und Dezimalsystem (und<br />
umgekehrt) erfolgt nach folgendem Schema. Als einfaches Anwendungsbeispiel dient die<br />
Dezimalzahl Z = 11,25.<br />
1. Das Vorzeichenbit der positiven Dezimalzahl Z ist v = 0.<br />
2. Der ganzzahlige Anteil von Z wird mittels fortgesetzter Division durch 2, der nicht<br />
ganzzahlige Anteil von Z durch fortgesetzte Multiplikation mit 2 in die jeweilige<br />
Binärdarstellung übergeführt (Siehe Zahlenkonvertierung: Dezial nach Basis r),<br />
3. Nun wird der Radixpunkt um so viele Stellen nach rechts oder links verschoben bis er<br />
unmittelbar rechts neben dem höchstwertigsten 1-er Bit (MSB) positioniert ist. Die<br />
Zahl der Stellen, um die der Radixpunkt verschoben wurde, entspricht dem<br />
Exponenten der Binärzahl (positiver Exponent bei Verschiebung nach links, negativer<br />
Exponent bei Verschiebung nach rechts). Zu diesem Exponenten wird noch der<br />
„Biaswert“ von 127 10 = 10000000 2 hinzuaddiert um den gesuchten Wert e der<br />
Gleitkommadarstellung nach IEEE 754 zu erhalten. Als Mantisse m werden die<br />
„Nachkommastellen“ der Binärdarstellung von Z (nach der Radixpunktverschiebung!)<br />
eingetragen und ggf. mit 0-en aufgefüllt.<br />
Eine Transformation zwischen Gleitkommadarstellung und Dezimalzahl erfolgt entsprechend<br />
in umgekehrter Reihenfolge.<br />
- 25 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Zahlensysteme<br />
Aufgaben<br />
1. Wandeln Sie folgende Zahlen jeweils ins Dezimal-, Binär-, bzw. Hexadezimalsystem<br />
um:<br />
Dezimal Binär Hexadezimal<br />
23<br />
0101 0011<br />
0x35<br />
127<br />
1101 1110<br />
2. Erklären Sie die Vorzeichendarstellung mittels Zweier-Komplement. Welcher<br />
Wertebereich kann mit einer 8-Bit Zahl abgedeckt werden? Warum wird diese Art der<br />
Darstellung negativer Zahlen verwendet?<br />
3. Berechnen Sie im Binärsystem (verwenden Sie 8-Bit Zahlen mit Radix Komplement):<br />
a. 5 + 7<br />
b. 23 − 11<br />
c. 53 − 127<br />
4. Wieso ist eine Multiplikation/Division mit/durch 2 im Binärsystem besonders einfach<br />
zu realisieren?<br />
5. Führen Sie folgende Multiplikationen im Binärsystem aus (alle Zahlen positiv).<br />
Kontrollieren Sie Ihr Ergebnis ggf. durch Umrechnen ins Dezimalsystem.<br />
a. 00110101 ⋅ 10110111<br />
b. 11110101 ⋅ 11111111<br />
c. 00001000 ⋅ 11111111<br />
6. Was ist das entscheidende Merkmal einer Gleitkommazahl gegenüber einer<br />
Festkommazahl? Wie ist diese laut IEEE 754 für 32-Bit Zahlen aufgebaut? Wie lässt<br />
sich daraus wieder eine Dezimalzahl berechnen?<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 26 -
Zahlensysteme<br />
Lösungen<br />
1.<br />
Dezimal Binär Hexadezimal<br />
23 10111 0x17<br />
83 0101 0011 0x53<br />
53 0011 0101 0x35<br />
127 0111 1111 0x7F<br />
222 1101 1110 0xDE<br />
2. Das MSB fungiert beim Zweier-Komplement als Vorzeichenbit. Zur Negation einer<br />
positiven in eine negative Zahl wird bitweise invertiert, anschließend auf das Ergebnis<br />
1 addiert. Mit 8-bit ist ein Wertebereich von -128 bis +127 darstellbar. Durch das<br />
Zweier-Komplement wird im Gegensatz einer Darstellung mittels Vorzeichen-Betrag<br />
eine doppelte Darstellung der '0' (+/-0) verhindert. Zwei Zahlen können damit ohne<br />
Vorzeichenüberprüfung direkt addiert/subtrahiert werden.<br />
3.<br />
a. 5 + 7 = 00000101 + 00000111 = 00001100<br />
b. 23 − 11 = 00010111 + 11110101 = 00001100<br />
c. 53 − 127 = 00110101 + 10000001 = 10110110<br />
4. Multiplikation / Division mit 2 entspricht im Binärsystem einer Shiftoperation nach links<br />
bzw. rechts. Vergleiche Multiplikation / Divison mit 10 im Dezimalsystem. Bsp: 0110 *<br />
0010 = 1100<br />
5. Ergebnis (Binär/Dezimal)<br />
a. 10010111100011 (53 ⋅ 183 = 9699)<br />
b. 1111010000001011 (245 ⋅ 255 = 62475)<br />
c. 11111111000 (8 ⋅ 255 = 2040)<br />
6. Bei einer Gleitkommazahl ist die Stelle des Kommas (Basispunkt) nicht statisch. Nach<br />
IEEE 754 besteht eine Gleitkommazahl aus einem Vorzeichenbit v, einem 8-Bit<br />
Exponenten e und einer 23-Bit Mantisse m.<br />
Die Dezimalzahl lässt sich schließlich nach folgender Formel berechenen:<br />
Z = ( −1) v ⋅ m<br />
2<br />
(e−127)<br />
( 1+<br />
23) ⋅ 2<br />
- 27 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
MOSFET<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de<br />
- 29 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
MOSFET<br />
MOSFET<br />
Lernziele<br />
Das Ziel dieses Kapitels ist der Aufbau eines grundsätzlichen Verständnisses für die<br />
Funktionsweise von MOSFET Transistoren (Metal Oxide Semiconductor Field Effect<br />
Transistor). Nahezu alle digitalen <strong>Schaltungen</strong> sind heute aus MOSFET Transistoren<br />
aufgebaut.<br />
Wir beginnen mit der Betrachtung der elektrischen Leitfähigkeit in Silizium, denn Silizium ist<br />
das dominierende Halbleiter Material für die Massenherstellung von integrierten<br />
<strong>Schaltungen</strong>. Elektrische Ladung kann in Silizium durch Elektronen (N-Typ) oder durch<br />
Löcher (P-Typ) transportiert werden. Der Ladungstransport in beiden Typen wird anhand der<br />
pn Diode illustriert. Dann werden der Aufbau und die Funktionsweise von MOSFET<br />
Transistoren erklärt und anhand einfacher Modellgleichungen beschrieben.<br />
Obwohl MOSFET Transistoren aus Silizium in der digitalen Welt dominieren, gibt es heute<br />
und auch weiterhin spezielle Anwendungen, in denen andere Technologien überlegen sind.<br />
Für extrem schnelle Logik und Hochfrequenz <strong>Schaltungen</strong> bieten SiGe (Silizium Germanium)<br />
und GaAs (Gallium Arsenid) höhere Schaltgeschwindigkeiten und Transitfrequenzen. Laser<br />
Dioden können in GaAs Material hergestellt werden, jedoch nicht in Silizium. Für analoge<br />
<strong>Schaltungen</strong>, z.B. Leistungsverstärker und schnelle Eingangs/Ausgangsstufen sind bipolare<br />
Silizium Transistoren aufgrund ihrer hohen Stromverstärkung vorteilhaft. Obwohl diese<br />
Technologien nicht so häufig verwendet werden wie MOSFET Transistoren, spielen sie doch<br />
oftmals eine Schlüsselrolle bei der Realisierung leistungsfähigster Produkte mit gemischten<br />
analog/digital Funktionen auf einem Chip (Mixed Signal Design). Eine einfache Daumenregel<br />
besagt, so viel wie möglich Funktionalität mit Silizium MOSFET Transistoren zu realisieren,<br />
weil dies am billigsten, einfachsten und zuverlässigsten ist und nur wo es aufgrund der<br />
Frequenz, Stromstärke oder anderer Anforderungen unumgänglich ist, teurere alternative<br />
Technologien einzusetzen.<br />
Elektrische Leitfähigkeit<br />
Die elektrische Leitfähigkeit eines Festkörpers beruht auf dem Vorhandensein von frei<br />
beweglichen Ladungsträgern, in der Regel sind dies Elektronen. In einem Atom können<br />
Elektronen diskrete Energiezustände einnehmen, vergleichbar mit konzentrischen Schalen<br />
um den Atomkern. In einem Kristallgitter gehen diese diskreten Energiezustände in<br />
Energiebänder über, in denen sich Elektronen aufhalten können. Zwischen diesen<br />
Energiebändern gibt es Lücken, in denen keine Elektronen sein können. Je nach Material<br />
kann das oberste Energieband (Valenzband) vollständig oder nur teilweise besetzt sein. In<br />
einem nur teilweise besetzten Band können sich die Elektronen durch das Kristallgitter<br />
bewegen, in einem vollständig gefüllten Band sind alle Elemente fest gebunden und deshalb<br />
nicht mobil.<br />
In einem Metall ist das Valenzband nur teilweise mit Elektronen besetzt. Ein Metall ist<br />
deshalb ein guter elektrischer Leiter, in dem sich die Elektronen frei bewegen können.<br />
In einem Isolator ist das Valenzband vollständig gefüllt. Die Bandlücke zum nächst höheren<br />
Band ist so groß, z.B. 5,33 eV für Diamant, dass die thermische Energie der Elektronen nicht<br />
ausreicht, um in dieses Band zu gelangen. Ein Isolator ermöglicht keine elektrische<br />
Leitfähigkeit, weil im Isolator keine frei beweglichen Ladungsträger vorhanden sind.<br />
Bei einem Halbleiter ist das Valenzband ebenfalls vollständig gefüllt, die Bandlücke zum<br />
Leitungsband ist jedoch deutlich geringer als bei einem Isolator, z.B. 1,14 eV für Silizium. Ein<br />
undotierter Halbleiter verfügt beim absoluten Nullpunkt der Temperatur über keine frei<br />
beweglichen Ladungsträger. Lediglich durch thermische Generation von Elektron/Loch<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 30 -
MOSFET<br />
Paaren stehen vereinzelte positive oder negative Ladungsträger zur Verfügung, die durch<br />
Rekombination wieder verschwinden. Im thermischen Gleichgewicht ist die Generationsrate<br />
gleich der Rekombinationsrate. Durch Dotierung, d.h. durch die gezielte Einbringung von<br />
Fremdatomen, können Elektronen oder Löcher als frei bewegliche Ladungsträger in das<br />
Kristallgitter eingebracht werden. Dabei haben Elektronen eine höhere Beweglichkeit als<br />
Löcher.<br />
Silizium Kristallgitter Struktur<br />
Silizium (Si) ist der am häufigsten verwendete Halbleiter für integrierte <strong>Schaltungen</strong>, weil es<br />
sich relativ gut verarbeiten lässt. Silizium Atome stammen aus der IV Gruppe des<br />
Periodensystems der Elemente. Sie bilden eine regelmäßige Kristallgitter Struktur, in der sie<br />
ihre vier Valenzelektronen mit ihren nächsten Nachbarn teilen. Wenn so alle vier<br />
Valenzelektronen gebunden sind, dann gibt es keine freien Elektronen für die elektrische<br />
Leitung mehr. Durch die Zugabe von Dotieratomen können Elektronen oder Löcher in das<br />
Silizium Kristall eingebracht und so die elektrische Leitfähigkeit erreicht werden.<br />
Durch die Dotierung mit Elementen aus der V Gruppe, z.B. Phosphor oder Arsen, werden<br />
zusätzliche Elektronen in das Kristallgitter eingebracht, die nicht an Nachbaratome gebunden<br />
sind. Jedes Donator Atom bringt ein freies Elektron und einen ortsfesten positiv geladenen<br />
Atomkern in das Kristallgitter ein. Dies ergibt eine verbesserte elektrische Leitfähigkeit für<br />
negative Ladungen. Das Silizium Kristall wird zum N-Typ Halbleiter mit negativen Elektronen<br />
als Majoritätsladungsträgern.<br />
Wenn mit Elementen aus der III Gruppe dotiert wird, z.B. mit Bor, dann ergibt sich eine<br />
andere Situation. Ein Atom aus der III Gruppe akzeptiert nicht vier, sondern fünf Elektronen<br />
von Nachbaratomen, um seine äußerste Schale auf acht Elektronen aufzufüllen. Deshalb<br />
fehlt dann ein Elektron im Kristallgitter. Man spricht von einem Loch, d.h. einem fehlenden<br />
Elektron, das sich frei im Kristall bewegen kann. Jedes Akzeptor Atom bringt ein freies Loch<br />
und einen ortsfesten negativ geladenen Atomkern in das Kristallgitter ein. Das Silizium<br />
Kristall wird dadurch zum P-Typ Halbleiter mit positiven Löchern als<br />
Majoritätsladungsträgern.<br />
Der pn Übergang<br />
Ein pn Übergang ist ein einfaches Halbleiter Bauelement. Es besteht aus zwei homogenen<br />
Regionen aus P-Typ und N-Typ Halbleiter, die in direktem Kontakt stehen. Metallkontakte,<br />
z.B. aus Aluminium, dienen der Stromzuführung. Um das Verhalten so einer pn Diode zu<br />
erklären, betrachten wir eine 1-dimensionale Vereinfachung dieser Struktur. Wenn sich die<br />
P- und N-Typ Bereiche berühren, entsteht ein hoher Konzentrationsgradient von Elektronen<br />
und Löchern an der Grenzfläche beider Bereiche. Aufgrund dieses Gradienten diffundieren<br />
Elektronen in den P-Bereich und Löcher in den N-Bereich und rekombinieren dort. Wenn die<br />
Elektronen den N-Bereich verlassen, dann bleiben die ortsfesten positiven Atomkerne<br />
zurück. Deshalb wird die Grenzschicht auf der N-Seite positiv geladen. Entsprechend bildet<br />
sich auf der P-Seite eine negative Ladung aufgrund der verbleibenden negativen Atomkerne<br />
der P-Dotierung, da Löcher in den N-Bereich diffundiert sind. Im Bereich an der Grenzfläche,<br />
an dem die Majoritätsladungsträger auf beiden Seiten miteinander rekombiniert und damit<br />
verschwunden sind, bildet sich aufgrund der verbleibenden ortsfesten Atomkerne der<br />
Dotieratome ein elektrisches Feld vom N- in den P-Bereich, das der weiteren Diffusion der<br />
Ladungsträger entgegen gerichtet ist. Dieser Bereich wird „Raumladungszone“ genannt.<br />
Die Größe der Raumladungszone hängt von der Dotierung ab, je größer die Dotierung, desto<br />
kleiner die Raumladungszone, weil dann auf kleinerem Raum mehr Dotieratome sind. Die<br />
Ladungsträgerdichte ist im niedriger dotierten Gebiet niedriger, als im höher dotierten Gebiet.<br />
Die Summe der Ladungen ist auf beiden Seiten gleich, so dass sich positive und negative<br />
Ladungen ausgleichen. Die elektrische Feldstärke ist an der pn Grenzfläche am größten, fällt<br />
- 31 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
MOSFET<br />
nach beiden Seiten ab und geht am Rand der Raumladungszone auf Null. Aufgrund der<br />
Ladungsverteilung bildet sich eine elektrostatische Potentialbarriere.<br />
Wenn an den pn Übergang eine externe Spannung angelegt wird, so dass sich das<br />
elektrische Feld von N nach P erhöht (Sperrspannung), dann werden Elektronen und Löcher<br />
weiter von der Grenzfläche weg gedrückt, die Raumladungszone vergrößert sich und die<br />
Potentialbarriere erhöht sich. Es fließt – abgesehen von einem vernachlässigbaren<br />
Sperrstrom I S – kein Strom über den pn Übergang. Anmerkung: Der Sperrstrom resultiert<br />
aus thermisch generierten Minoritätsladungsträgern in den N- und P-Bereichen, welche dann<br />
im elektrischen Feld der Raumladungszone transportiert werden (Elektronen aus dem P-Si<br />
driften zum positiven Potential im N-Bereich, Löcher aus dem N-Si driften zum negativen<br />
Potential im P-Bereich).<br />
Wenn an den pn Übergang jedoch eine Spannung in Flussrichtung angelegt wird, die so<br />
groß ist, dass sie die Potentialbarriere überwindet, dann diffundieren Elektronen und Löcher<br />
verstärkt auf die Grenzfläche zu und rekombinieren dort. Dadurch wird elektrische Ladung<br />
transportiert, es fließt Strom. Die Spannung, bei der der Stromfluss einsetzt, wird<br />
Durchlassspannung U D des pn Übergangs genannt.<br />
Die pn Diode<br />
Die Sperr- und Durchlass-Mechanismen des pn Übergangs werden in der pn Diode genutzt.<br />
Eine Diode ist ein zweipoliges Bauelement, das in einer Richtung sperrt, weil die<br />
Potentialbarriere des pn Übergangs durch die Sperrspannung erhöht wird, in der anderen<br />
Richtung Strom leitet, sobald die Durchlassspannung U D überschritten wird, weil die<br />
Flussspannung die Potentialbarriere des pn Übergangs erniedrigt. Der Strom steigt dann<br />
gemäß der Diodengleichung exponentiell mit der Spannung V D an. Die Durchlassspannung<br />
einer Si pn Diode ist abhängig von der Dotierungsdichte im N-/P-Si und beträgt ca. 0,7 V. Für<br />
Spannungen V D < U D kann der Diodenstrom I D in guter Näherung vernachlässigt werden.<br />
Die MOS Struktur<br />
Die Abkürzung MOS steht für Metall Oxyd Silizium und bezeichnet eine Metall Elektrode<br />
(Gate), die durch eine dünne Oxydschicht von einer Silizium Oberfläche getrennt ist. Wir<br />
betrachten hier P-Typ Silizium als Substrat, mit vielen Löchern als Majoritätsladungsträgern<br />
und nur vereinzelten, thermisch generierten Elektronen als Minoritätsladungsträgern.<br />
Wenn nun eine positive elektrische Spannung an das Gate angelegt wird, dann werden die<br />
positiven Ladungsträger im P-Si von der Elektrode weg gedrückt. Es entsteht eine<br />
Verarmungsschicht. Wird die angelegte Spannung größer, dann sammeln sich zunehmend<br />
mehr Minoritätsladungsträger (Elektronen) unter dem Gate an und es entsteht die<br />
sogenannte Inversion, d.h. die Zahl der Elektronen in der Inversionsschicht wird höher als<br />
die Zahl der Löcher. Das P-Silizium wird in der Inversionsschicht zu N-Silizium. Die<br />
Spannung, bei der die Inversion einsetzt, wird Schwellspannung genannt, englisch Threshold<br />
Voltage, V t .<br />
Der MOSFET Transistor<br />
Der Aufbau eines MOS Feldeffekt Transistors (englisch Field Effect Transistor, FET, weil er<br />
durch das elektrische Feld in der MOS Struktur gesteuert wird) basiert auf der MOS Struktur.<br />
Zusätzlich zum Gate und der isolierenden Oxydschicht verfügt der MOSFET Transistor über<br />
zwei elektrisch leitende Gebiete im Substrat, die direkt an den Gate Bereich angrenzen.<br />
Diese hoch dotierten Bereiche werden Source und Drain genannt. Die Dotierung von Source<br />
und Drain ist entgegengesetzt der Substrat Dotierung, in unserem Beispiel sind Source und<br />
Drain also N-dotiert. Das Substrat ist P-dotiert. Der Transistor wirkt wie ein Schalter zwischen<br />
Source und Drain, der durch das Gate Potential geöffnet oder geschlossen werden kann.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 32 -
MOSFET<br />
Der Aufbau eines MOSFET Transistors ist symmetrisch, d.h. es besteht kein Unterschied<br />
zwischen Source und Drain. Erst durch das Anlegen von Spannungen wird bestimmt, welche<br />
Gebiete als Source oder Drain arbeiten. Die Source ist als die Quelle der Ladungsträger<br />
definiert, deshalb liegt die Source eines N-Kanal Transistors auf niedrigerem, die Source<br />
eines P-Kanal Transistors auf höherem Potential. Bei einem N-Kanal Transistor muss die<br />
Gate Source Spannung positiv sein, um einen Inversionskanal zu erzeugen, bei einem P-<br />
Kanal Transistor muss sie negativ sein. Die Eingangs/Ausgangskennlinien eines nMOS sind<br />
üblicherweise mit V GS , V DS , I D > 0 definiert, für einen pMOS mit V GS , V DS , I D < 0. Wir<br />
empfehlen dringend, sich an diese Konventionen zu halten und die umgekehrten<br />
Spannungsrichtungen V SG , V SD und V DG nicht zu verwenden.<br />
Für die heute aktuellen Kurzkanaltransistoren mit Kanallängen im Nanometer Bereich wird<br />
eine spezielle Kanaldotierung auf der Drain Seite verwendet, um schnelle Elektronen aus<br />
dem Kanal langsam abzubremsen, bevor sie die Drain erreich. Dadurch ergeben sich auch<br />
strukturelle Unterschiede zwischen Source und Drain.<br />
Um die Funktionsweise eines N-Kanal MOSFET Transistors zu verstehen, betrachten wir<br />
den Kanalbereich unterhalb des Gates. Wir legen Spannungen an die Gate-Source und an<br />
die Drain-Source Elektroden an, V GS und V DS . Die Source Elektrode ist elektrisch mit dem<br />
Substrat verbunden. Solange V GS kleiner als die Schwellspannung V t des MOSFET<br />
Transistors ist (Subschwellspannung), entsteht keine Inversionsschicht im Kanal und es<br />
kann kein Strom von der Source zur Drain fließen. Vom Substrat zur Drain kann auch kein<br />
Strom fließen, weil die Potentialbarriere des gesperrten pn Übergangs dazwischen liegt.<br />
Wenn wir die Gate Source Spannung V GS über die Schwellspannung V t erhöhen, dann bildet<br />
sich eine Inversionsschicht im Kanal, der Kanal wird N-leitend und es fließt ein Drain Strom<br />
I D von der Source zur Drain durch den n-Kanal. Der Drain Strom steigt linear mit der Drain<br />
Source Spannung an (linearer Bereich), solange die Drain Source Spannung kleiner als V GS -<br />
V t bleibt. Wird die Gate-Source Spannung V GS weiter erhöht, dann wird der Kanal tiefer und<br />
der Kanal Bahnwiderstand wird kleiner, der Drain Strom wird entsprechend größer.<br />
Wenn wir die Drain Source Spannung weiter erhöhen, über den Wert V GS - V t hinaus, dann<br />
baut sich in der Nähe der Drain ein elektrisches Feld von der Drain zum Gate auf, das die<br />
Inversion in der Nähe der Drain verhindert. Das Potential am Drain-seitigen Ende des Kanals<br />
beträgt V GS - V t . Man nennt diesen Effekt die Abschnürung des Kanals, englisch Pinch-Off,<br />
und das Ende der Inversionsschicht den Abschnürpunkt. Bei weiterer Erhöhung von V DS<br />
wandert der Abschnürpunkt nach links unter das Gate in Richtung auf die Source zu. Die<br />
Elektronen aus dem Inversionskanal werden am Abschnürpunkt in die Raumladungszone<br />
des Drain-seitigen pn Übergangs injiziert und driften im elektrischen Feld der<br />
Raumladungszone zur Drain. Der Kanal ist in zwei Bereiche unterteilt: Im linken Sourceseitigen<br />
Bereich existiert eine Inversionsschicht (Inversionsbereich), im rechten Drainseitigen<br />
Bereich driften die Ladungsträger, d.h. sie bewegen sich im elektrischen Feld zur<br />
Drain (Driftbereich). Im Inversionsbereich wird der Strom durch die Gate Source Spannung<br />
beeinflusst, nicht jedoch durch die Drain-Source Spannung, weil der Spannungsabfall<br />
entlang des Inversionskanals (vom Abschnürpunkt zur Source) konstant V GS – V t bleibt (nur<br />
der Abschnürpunkt wandert nach links). Im Driftbereich werden dann alle Elektronen, die aus<br />
dem Inversionsbereich kommen, zur Drain abgesaugt. Man nennt diesen Bereich den<br />
Sättigungsbereich.<br />
Der Lineare Bereich<br />
Wir benutzen ein einfaches Modell, um den Strom im linearen Bereich des MOSFET<br />
Transistors zu bestimmen. In einer dünnen Schicht des Kanals an der Stelle x mit der Länge<br />
dx befindet sich die Ladung dQ, die durch die Inversion in der Gate Substrat Kapazität C<br />
angesammelt wurde. Diese Ladung bewegt sich mit der Geschwindigkeit v auf die Drain zu<br />
und bildet damit den Strom I D .<br />
- 33 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
MOSFET<br />
Der Drain Strom beträgt<br />
(1) I D = ρ x v = dQ v / dx<br />
mit der Ladungsdichte ρ x .<br />
Die Ladung dQ im Kanal ist<br />
(2) dQ = dC (V GS -V t -V(x))<br />
Wir nehmen eine konstante differentielle Kanalkapazität an<br />
(3) dC / dx = C G / L<br />
mit C G : Gate Kapazität, L: Kanallänge<br />
Die Geschwindigkeit der Ladungsträger beträgt<br />
(4) v = - µ dV/dx<br />
mit µ: Ladungsträger Beweglichkeit<br />
Die Randbedingungen für die Spannungspegel an Source und Drain sind:<br />
V(0)=0 and V(L)=V DS<br />
Nun setzen wir die Gleichungen (2) und (4) in die Gleichung (1) ein und integrieren von x=0<br />
bis x=L. Daraus erhalten wir die folgende Gleichung für den Drain Strom I Dn des N-Kanal<br />
MOSFET Transistors:<br />
μ CG<br />
⎛ VDS<br />
⎞<br />
(5) I Dn = ⎜VGS<br />
−Vt<br />
− ⎟V<br />
2<br />
DS<br />
L ⎝ 2 ⎠<br />
Für einen P-Kanal Transistor können die Gleichungen auf ähnliche Weise abgeleitet werden.<br />
Der Sättigungsbereich<br />
Für V DS > V GS - V t geht der Transistor in Sättigung. Den Sättigungsstrom I Dn des nMOS FET<br />
erhalten wir durch Einsetzen von V DS = V GS - V t in Gleichung (5):<br />
C<br />
= μ<br />
2L<br />
G<br />
(6) ( ) 2<br />
I<br />
Dn<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 34 -<br />
2<br />
V<br />
GS<br />
−V<br />
t<br />
Die Ein- und Ausgangskennlinien des MOSFET Transistors<br />
Die Eingangskennlinien von nMOS und pMOS Transistoren werden für konstante Drain<br />
Source Spannungen V DS dargestellt. Für |V GS | < |V t | ist der Transistor abgeschaltet. Wir<br />
vernachlässigen dabei den so genannten Subschwellenstrom. Für |V GS | > |V t | ist der<br />
Transistor eingeschaltet. Der Drainstrom I D wird durch die Gate Source Spannung V GS<br />
kontrolliert.<br />
Die Ausgangskennlinien werden für konstante Gate Source Spannungen |V GS | > |V t |<br />
dargestellt. Die beiden Arbeitsbereiche sind der lineare Bereich mit |V DS | < |V GS - V t | und der<br />
Sättigungsbereich mit |V DS | > |V GS - V t |.<br />
MOSFET Modellgleichungen (Sah)<br />
Ein einfaches Modell für den Betrieb von MOSFET Transistoren wird durch die<br />
Modellgleichungen von Sah gegeben. Dieses Modell wurde aus dem Verhalten von<br />
Langkanaltransistoren abgeleitet, es vernachlässigt alle Effekte aufgrund von kurzen<br />
Kanallängen, z.B. die Kanallängenmodulation und den Substratsteuereffekt.<br />
Im Sättigungsbereich beschreibt das Sah Modell einen konstanten Drain Strom ID, der von<br />
V GS kontrolliert wird, jedoch unabhängig von V DS ist. In heutigen Kurzkanaltransistoren ist<br />
dies nicht mehr der Fall, hier steigt der Drain Strom mit V DS an, weil die Verkürzung des<br />
Inversionskanals durch die Abschnürung relativ zur Kanallänge nicht mehr vernachlässigt<br />
werden kann.
MOSFET<br />
Das Sah Modell ist jedoch hilfreich für eine einfache Analyse und ein grundsätzliches<br />
Verständnis der Funktionsweise von CMOS <strong>Schaltungen</strong>.<br />
Für nMOSFET Transistoren gibt es drei Gleichungen für den Drain Strom I D , für den<br />
abgeschalteten Zustand (off), für den linearen Bereich (linear) und für den Sättigungsbereich<br />
(saturation):<br />
I<br />
Dn<br />
⎧<br />
⎪<br />
⎪ 0<br />
⎪<br />
⎪<br />
⎪ ⎛ V<br />
= ⎨β<br />
⎜VGS<br />
−Vt<br />
−<br />
⎪ ⎝ 2<br />
⎪<br />
⎪ β<br />
⎪<br />
GS t<br />
⎪ 2<br />
⎩<br />
DS<br />
( V −V<br />
)<br />
2<br />
⎞<br />
⎟V<br />
⎠<br />
DS<br />
V<br />
V<br />
V<br />
GS<br />
GS<br />
GS<br />
< V<br />
t<br />
> V<br />
t<br />
> V<br />
t<br />
∧V<br />
∧ 0 < V<br />
∧V<br />
DS<br />
DS<br />
≥ 0<br />
DS<br />
> V<br />
< V<br />
GS<br />
GS<br />
−V<br />
−V<br />
t<br />
t<br />
( aus)<br />
( linear)<br />
( Sättigung)<br />
Die entsprechenden Gleichungen für pMOS Transistoren sind:<br />
I<br />
Dp<br />
⎧<br />
⎪<br />
⎪<br />
⎪<br />
⎪<br />
⎪<br />
⎪<br />
= ⎨−<br />
⎪<br />
⎪<br />
⎪<br />
⎪<br />
⎪<br />
⎪<br />
⎩<br />
⎛<br />
β ⎜V<br />
⎝<br />
GS<br />
− β<br />
2<br />
0<br />
−V<br />
t<br />
V<br />
−<br />
2<br />
( V −V<br />
)<br />
GS<br />
DS<br />
t<br />
2<br />
⎞<br />
⎟V<br />
⎠<br />
DS<br />
V<br />
V<br />
V<br />
GS<br />
GS<br />
GS<br />
> V<br />
t<br />
< V<br />
t<br />
< V<br />
t<br />
∧V<br />
∧ 0 > V<br />
∧V<br />
DS<br />
DS<br />
≤ 0<br />
DS<br />
< V<br />
> V<br />
GS<br />
GS<br />
−V<br />
t<br />
−V<br />
t<br />
( aus)<br />
( linear)<br />
( Sättigung)<br />
W<br />
Die Steilheit β ist gegeben durch: β = K'<br />
L<br />
mit<br />
μεOxε<br />
0<br />
K'<br />
=<br />
G =<br />
tOx<br />
W= Kanalweite<br />
L = Kanallänge<br />
µ = Beweglichkeit der Elektronen bzw. Löcher<br />
ε Ox = relative Dielektrizitätskonstante des Gate Oxyds<br />
ε 0 = Dielektrizitätskonstante<br />
t Ox = Gate Oxyd Dicke<br />
C G = Gate Kapazität<br />
C ε Oxε<br />
0<br />
WL<br />
t<br />
Ox<br />
- 35 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
MOSFET<br />
Dimensionierung<br />
Zwei Arten von Parametern beeinflussen die elektrischen Eigenschaften von MOSFET<br />
Transistoren: Design Parameter (Kanallänge, Kanalweite) und Technologie Parameter<br />
(kleinste Strukturgröße, Oxyd Dicke, Materialeigenschaften).<br />
Üblicherweise wird die kleinste herstellbare Strukturgröße L min für die Kanallänge von<br />
MOSFETs verwendet, um möglichst kleine Transistoren mit hohen Drain Strömen zu<br />
erzeugen. Je höher der Drain Strom, desto schneller kann ein Transistor (und damit auch ein<br />
Logik Gatter, wie wir später sehen werden) schalten. Die Kanalweite ist der einzige Design<br />
Parameter, den ein Schaltungsentwickler beeinflussen kann. Die Kanalweite beeinflusst die<br />
Schaltgeschwindigkeit und die Fläche in entgegengesetzter Weise: Je größer die<br />
Kanalweite, desto größer der Drain Strom und damit die Schaltgeschwindigkeit, desto größer<br />
jedoch auch die Fläche. Ein sinnvolles Vorgehen bei der Dimensionierung der Kanalweite ist<br />
es deshalb, zuerst alle Transistoren einer digitalen Schaltung mit minimaler Kanalweite zu<br />
dimensionieren und dann die Kanalweiten so weit zu erhöhen, bis die erforderliche<br />
Schaltgeschwindigkeit erreicht wird.<br />
Technologie Parameter werden durch den Herstellungsprozess und durch die Eigenschaften<br />
der verwendeten Materialien festgelegt. Dies gilt für die kleinste herstellbare Strukturgröße<br />
L min , für die Oxyd Dicke t Ox , sowie für die relative Dielektrizitätskonstante des Gate Oxyds ε Ox .<br />
Die Beweglichkeit der Ladungsträger ist ebenfalls materialabhängig. In Silizium ist die<br />
Beweglichkeit der Elektronen ca. 1,5 bis 3,5 mal so hoch wie die Beweglichkeit der Löcher.<br />
Um dies auszugleichen werden pMOS Transistoren in der Regel mit größeren Kanalweiten<br />
dimensioniert als nMOS Transistoren.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 36 -
MOSFET<br />
Aufgaben<br />
1. Nennen Sie den Unterschied zwischen einem N-typ bzw. P-typ Halbleiter!<br />
2. Erklären Sie die grundsätzliche Funktionsweise eines MOS Transistors!<br />
Welches sind die verschiedenen Arbeitsbereiche und wie verhält sich der Transistor<br />
in diesen jeweils?<br />
3. Unterscheiden sich ein nMOS und pMOS Transistor hinsichtlich der<br />
Schaltgeschwindigkeit bei gleichen Abmessungen? Bitte begründen Sie.<br />
Falls ja, wie kann man die Schaltgeschwindigkeit beider Transistorarten anpassen?<br />
4. Ordnen Sie folgende Abbildungen a-d den markierten Punkten 1-4 in der<br />
dargestellten Kennlinie zu:<br />
V GS<br />
V GS<br />
V GS<br />
V DS<br />
V DS<br />
V DS<br />
I D<br />
(3)<br />
V GS2<br />
V GS<br />
(1)<br />
(4)<br />
(2)<br />
V GS1<br />
V DS<br />
V DS<br />
- 37 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
MOSFET<br />
Lösungen<br />
1. Je nach verwendeten Dotieratomen entstehen in einem Halbleiter mehr freie negative<br />
Ladungsträger (Elektronen) oder mehr freie positive Ladungsträger (Löcher). Im<br />
ersten Fall spricht man von einem n-Halbleiter, im Zweiten von einem p-Halbleiter.<br />
2.<br />
Source<br />
(gnd)<br />
V gs<br />
N-Si<br />
P-Si<br />
Substrat<br />
(gnd)<br />
V ds<br />
In der Abbildung ist ein typischer Aufbau eines nMOS Transistors gegeben. Im n-<br />
Silizium herrschen Elektronen als freie Ladungsträger vor, im p-Silizium dagegen<br />
Löcher. Bei Anlegen einer Drain-Source Spannung VDS können die Elektronen das<br />
p-Silizium zunächst nicht überwinden. Erst wenn VGS erhöht werden sammeln sich<br />
aufgrund des elektrischen Feldes immer mehr Elektronen aus thermischer<br />
Generation an der Trennschicht zwischen p-Silizium und Gate an. Wenn VGS einen<br />
bestimmten Grenzwert überschreitet (=Vt), haben sich soviele Elektronen<br />
angesammelt, dass diese die Anzahl der freien Löcher überwiegt, das p-Silizium wird<br />
in diesem Bereich quasi zum n-Silizium – ein leitender Kanal entsteht und der<br />
Transistor schaltet durch. Wird die Spannung weiter erhöht, vergrößert sich dieser<br />
Kanal. Damit wird auch der Strom zwischen Source und Drain immer größer.<br />
a. Subschwellbereich: es besteht kein (nennenswerter) Stromfluss<br />
b. Linearer Bereich: Der Transistor verhält sich wie ein ohmscher Widerstand.<br />
Erhöht man VDS steigt auch der Strom ID entsprechend linear an.<br />
c. Sättigungsbereich: Der Transistor ist in Sättigung. Eine weitere Erhöhung von<br />
VDS führt zu keiner (nennenswerten) Erhöhung von ID. ID hängt in diesem<br />
Bereich allein von VGS und damit von der Breite des leitenden Kanals ab.<br />
3. Aufgrund der höheren Beweglichkeit der Elektronen im Vergleich zu den Löchern (µn<br />
= 1,5...3,5 µp) und der direkten Abhängigkeit zwischen Drainstrom ID und<br />
Beweglichkeit haben nMOS Transistoren bei gleichen Abmessungen einen höheren<br />
Drainstrom und können damit in Logikschaltungen schneller schalten als pMOS<br />
Transistoren:<br />
μεOxε<br />
0<br />
W<br />
I<br />
D<br />
~ ⋅<br />
t L<br />
Ox<br />
Die geringere Ladungsträgerbeweglichkeit kann bei pMOS Transistoren durch eine<br />
entsprechend vergrößerte Kanalweite W auf Kosten der Siliziumfläche kompensiert<br />
werden.<br />
4. a:2; b:3; c:4; d:1<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 38 -
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
CMOS Inverter und Logik<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de<br />
- 39 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
CMOS Inverter und Logik<br />
CMOS Inverter und Logik<br />
Lernziele<br />
CMOS (Complementary Metal Oxide Semiconductor) ist die am weitesten verbreitete<br />
Schaltungstechnik für elektronische Halbleiter. Wir werden den Aufbau des einfachsten<br />
CMOS Gatters, eines Inverters, betrachten und daran die Funktionsweise, das statische und<br />
dynamische Schaltverhalten, die Verzögerungszeit und den Leistungsverbrauch, sowie<br />
deren Abhängigkeiten von der Lastkapazität und von den Spannungspegeln erklären. Die<br />
Grundregeln für die Dimensionierung von CMOS Gattern werden hergeleitet und diskutiert.<br />
Inverter Grundfunktion<br />
Ein Inverter gibt am Ausgang einen jeweilig komplementären binären Logikwert des<br />
Eingangs aus. D. h. der Ausgang ist logisch “0”, wenn am Eingang eine “1” anliegt und<br />
umgekehrt. Bei CMOS <strong>Schaltungen</strong> erfolgt dies durch die Herstellung einer direkten<br />
elektrischen Verbindung zwischen dem Ausgang und entweder der Versorgungsspannung<br />
(für eine logische „1“) oder dem Masse Anschluss (englisch einen Ground, gnd, für logische<br />
„0“). Die Realisierung könnte mit einem Kippschalter oder mit zwei wechselweise betätigten<br />
Schaltern erfolgen, die vom Eingang gesteuert werden. Einer der beiden Schalter ist immer<br />
ein-, der andere immer ausgeschaltet. Es besteht keine elektrisch leitende Verbindung vom<br />
Eingang zum Ausgang. Ferner besteht keine elektrisch leitende Verbindung von<br />
Versorgungsspannung nach Masse. Auch wenn das Logiksignal am Eingang kleine<br />
Schwankungen aufweist (Rauschen), dann wirken sich diese nicht auf den Ausgang aus,<br />
solange das Rauschen innerhalb der definierten 0/1 Logikpegel bleibt und die Schalter<br />
dadurch nicht betätigt werden. Der Logikpegel wird im CMOS Inverter regeneriert.<br />
Statischer CMOS Inverter<br />
In einem statischen CMOS Inverter werden die beiden Schalter durch MOSFET Transistoren<br />
realisiert. Der Eingang des Inverters ist mit den beiden Gate Elektroden verbunden, der<br />
Ausgang mit den beiden Drain Elektroden. Der pMOS Transistor liegt zwischen Ausgang und<br />
Versorgungsspannung V DD , der nMOS Transistor zwischen Ausgang und gnd. Wenn der<br />
Eingang auf „1“ liegt, dann leitet der nMOS Transistor, der pMOS Transistor sperrt.<br />
Umgekehrt, wenn der Eingang auf „0“ liegt, dann leitet der pMOS, der nMOS sperrt.<br />
Querschnitt durch einen CMOS Inverter<br />
Das Bauelemente Querschnittsbild zeigt den nMOS Transistor links im P-dotierten Substrat,<br />
den pMOS Transistor rechts in einer N-dotierten Wanne. Die Verwendung einer Wanne<br />
ermöglicht die Herstellung beider Transistor Typen (nMOS und pMOS) in einem<br />
gemeinsamen Substrat. Die Source Elektrode des nMOS und das Substrat liegen<br />
gemeinsam auf Masse (gnd), die Source Elektrode des pMOS und der Wannenkontakt<br />
liegen gemeinsam auf V DD . Die miteinander verbundenen Drain Gebiete beider Transistoren<br />
bilden den Ausgang des Inverters und können, vom Eingang (mit den beiden Gate<br />
Elektroden verbunden) gesteuert, entweder mit gnd oder V DD verbunden werden. Auf diese<br />
Weise wird ein Inverter gebildet, der im statischen Betrieb keine elektrisch leitende<br />
Verbindung zwischen Eingang und Ausgang aufweist.<br />
Warum CMOS?<br />
Es gibt mehrere Gründe, warum sich CMOS zur dominierenden Halbleitertechnologie<br />
entwickelt hat. Erstens wird der Herstellungsprozess von Silizium gut beherrscht. Silizium<br />
lässt sich gut oxidieren, so dass das Gate Oxyd (SiO 2 ) in der erforderlichen Qualität auf der<br />
einkristallinen Si Oberfläche aufwachsen kann. Die Geometrie der Transistoren und<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 40 -
CMOS Inverter und Logik<br />
Leiterbahnen wird durch Lithographie bestimmt, indem eine Schicht von Fotolack unter einer<br />
Maske, die die Struktur abbildet, mit UV Licht bestrahlt und dann frei geätzt wird. Auf diese<br />
Weise können Source Drain Dotierungen und Metallabscheidungen für Leiterbahnen<br />
strukturiert werden. Der Herstellungsprozess von MOS Transistoren ist gut verstanden, sie<br />
sind hoch integrierbar, d.h. Milliarden von Transistoren können auf einem Chip erzeugt<br />
werden, und für den Entwurf ist gute Werkzeugunterstützung verfügbar. Zweitens bietet das<br />
elektrische Verhalten von CMOS <strong>Schaltungen</strong> überzeugende Vorteile. Durch die<br />
Verwendung komplementärer Transistoren (nMOS und pMOS) ergibt sich geringe<br />
Verlustleistung, geringe Störempfindlichkeit und einfache Kaskadierung der Logikgatter.<br />
Die Funktionsweise eines CMOS Inverters<br />
Das Bild zeigt zweimal den Querschnitt durch einen Inverter. In der oberen Abbildung liegt<br />
eine „0“ am Eingang, entsprechend ist der linke nMOS Transistor gesperrt (kein leitfähiger<br />
Kanal im nMOS) und der rechte pMOS Transistor leitet. Der Ausgang ist mit V DD verbunden.<br />
In der unteren Abbildung liegt der Eingang auf „1“, entsprechend leitet der linke nMOS<br />
Transistor, während der rechte pMOS nun sperrt. Der Ausgang ist mit gnd verbunden. Die<br />
Source Drain Gebiete aller Transistoren bilden jeweils pn Übergänge zum Substrat, bzw. zur<br />
Wanne, und sind dadurch elektrisch voneinander isoliert. Die pn Übergänge dürfen niemals<br />
in Flussrichtung betrieben werden, sonst würden die Transistoren durch Kurzschlussströme<br />
zerstört.<br />
Die statische Spannungs-Übertragungs-Kennlinie<br />
Das Diagramm zeigt die statische Spannungs-Übertragungs-Kennlinie (englisch Voltage<br />
Transfer Curve, VTC) eines CMOS Inverters. Die Ausgangsspannung V Z ist über der<br />
Eingangsspannung V A aufgetragen. Der Inverter schaltet bei der Gatter Schwellspannung V th<br />
um. Bitte beachten Sie den Unterschied zwischen den Schwellspannungen der Transistoren<br />
(V tn und V tp ) und der Schwellspannung des Gatters V th . Am Ausgang des Inverters nehmen<br />
wir eine kapazitive Last an, die durch die Eingangskapazitäten der nachfolgenden Stufen<br />
und durch die Leitungskapazitäten verursacht wird.<br />
Bei Eingangsspannungen im Bereich V A < V tn ist der nMOS Transistor abgeschaltet, der<br />
pMOS leitet im linearen Bereich, mit I p = 0 und V Z = V DD .<br />
Bei Eingangsspannungen im Bereich V tn < V A < V th leitet der nMOS Transistor im<br />
Sättigungsbereich (V ds > V gs -V tn ), der pMOS im linearen Bereich, und V Z wird durch den<br />
nMOS Transistor entladen.<br />
Bei V A = V th sind beide Transistoren im Sättigungsbereich, V Z wird durch den nMOS<br />
Transistor entladen.<br />
Bei V th < V A < V DD - |V tp | ist der nMOS Transistor im linearen Bereich, der pMOS Transistor in<br />
Sättigung, und V Z wird noch weiter durch den nMOS Transistor entladen.<br />
Bei V A > V DD - |V tp | leitet der nMOS Transistor im linearen Bereich, der pMOS Transistor<br />
sperrt und V Z ist vollständig mit gnd verbunden.<br />
Im statischen Betrieb ist jeweils einer der beiden Transistoren immer abgeschaltet und es<br />
fließt kein Strom von V DD zu gnd, deshalb wird bei Vernachlässigung der Sub-Schwellströme<br />
keine Verlustleistung verbraucht. Während des Schaltvorgangs sind beide Transistoren<br />
kurzfristig eingeschaltet und es fließt ein Kurzschlußstrom durch beide Transistoren von V DD<br />
nach gnd, der zur dynamischen Verlustleistung beiträgt.<br />
- 41 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
CMOS Inverter und Logik<br />
Einfluss der Lastkapazität auf die Verzögerungszeit<br />
In CMOS <strong>Schaltungen</strong> haben alle Gatter im wesentlichen kapazitive Ausgangslasten zu<br />
treiben, die aus den internen Kapazitäten der treibenden Gatter, den Leitungskapazitäten der<br />
Verbindungsleitungen zwischen den Gattern und den Eingangskapazitäten der<br />
nachfolgenden Gatter bestehen. Diese Kapazitäten sind störend, können aber nicht<br />
vermieden werden.<br />
Die Hauptanteile der internen Kapazitäten kommen von den pn Übergängen der Drain<br />
Gebiete, von Überlappungen zwischen Gate und Drain und von interner Verdrahtung<br />
zwischen den Transistoren der Gatter.<br />
Die Leitungskapazitäten der Verbindungsleitungen zwischen den Gattern bestehen aus<br />
Koppelkapazitäten zwischen benachbarten Leitungen auf derselben Verdrahtungsebene und<br />
zwischen benachbarten Ebenen.<br />
Die Eingangskapazität eines Gatters besteht aus den Gate Substrat Kapazitäten, die<br />
erforderlich sind um die Transistoren zu steuern (nützlicher Anteil) und parasitären Anteilen,<br />
z.B. Überlapp Kapazitäten zwischen Gate und Source/Drain Gebieten und interner<br />
Verdrahtung.<br />
In einem vereinfachten Schaltbild können alle diese Kapazitäten zusammengefaßt und durch<br />
einen einzigen Kondensator als Lastkapazität dargestellt werden. Für genauere Analysen<br />
müssen verteilte RC Netzwerke verwendet werden, um die Leitungen realistischer zu<br />
modellieren.<br />
Bei früheren CMOS Technologie Generationen waren die Eingangskapazitäten der Gatter<br />
dominierend, während bei heutigen und künftigen Technologie Generationen zunehmend die<br />
Leitungskapazitäten einen dominierenden Einfluß auf die Verzögerungszeiten, den<br />
Leistungsverbrauch und die Signalpegel erlangen. Speziell Kopplungen zwischen schnell<br />
schaltenden Verbindungsleitungen auf den Chips stören die Signalübertragung.<br />
Betrachten wir den Verlauf der Signalflanke am Ausgang eines CMOS Inverters genauer.<br />
Für eine erste, einfache Betrachtung nehmen wir die Eingangsflanke als unendlich steil an.<br />
Wir verwenden ein ganz einfaches Transistormodell, einfacher als das Sah Modell, ohne<br />
Sättigungsbereich, nur mit linearem Bereich. Wenn ein MOS Transistor eingeschaltet ist,<br />
dann leitet er mit einem Kanalwiderstand R on , wenn er ausgeschaltet ist, dann verhält er sich<br />
wie ein offener Schalter. Solange der Eingang auf „1“ liegt, ist der Ausgang über den<br />
Kanalwiderstand R on,n des nMOS Transistors mit gnd verbunden. Sobald der Eingang von „1“<br />
auf „0“ wechselt, wird der nMOS Transistor abgeschaltet und der Ausgang wird über den<br />
Kanalwiderstand R on,p des pMOS Transistors auf V DD aufgeladen.<br />
Mit diesem einfachen Modell lässt sich die Verzögerungszeit t p abschätzen:<br />
Die Kirchhoff Gleichung für Ströme lautet:<br />
(1) I I = 0<br />
dp + C<br />
Wir setzen die Strom/Spannungs-Beziehung des Kondensators in Gleichung (1) ein:<br />
∂V<br />
(2) I + C C<br />
dp = 0<br />
∂t<br />
Das Ohm’sche Gesetz wird für den Strom I dp in Gleichung (2) eingesetzt:<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 42 -
CMOS Inverter und Logik<br />
Vdsp<br />
∂V<br />
(3) + C C = 0<br />
R ∂t<br />
on,<br />
p<br />
Die Kirchhoff Gleichung für Spannungen lautet:<br />
V<br />
(4) C −Vdd<br />
∂V<br />
+ C C = 0<br />
R ∂t<br />
Umformung von (4) ergibt<br />
on,<br />
p<br />
− Ron,<br />
pC<br />
(5) ∂t<br />
= ∂VC<br />
V −V<br />
C<br />
dd<br />
Durch Integration von t = 0 bis t = t p , wo die Ausgangsspannung den 50% Pegel schneidet,<br />
ergibt sich:<br />
(6)<br />
t<br />
p<br />
∫<br />
0<br />
∂t<br />
=<br />
0.5V<br />
∫<br />
0<br />
dd<br />
− Ron,<br />
pC<br />
∂V<br />
V −V<br />
C<br />
dd<br />
C<br />
=> t<br />
p<br />
= R<br />
on,<br />
p<br />
C<br />
1<br />
ln<br />
2<br />
Dies entspricht dem bekannten Aufladen eines RC Gliedes.<br />
Entsprechend dem Sah Transistor Modell kann der Kanalwiderstand eines MOS Transistors<br />
im linearen Bereich folgendermaßen angenähert werden:<br />
R<br />
on,<br />
p<br />
V<br />
=<br />
DSp<br />
I<br />
dp<br />
≈<br />
1<br />
β<br />
mit V
CMOS Inverter und Logik<br />
Schaltung minimieren, ginge jedoch zu Lasten der Fläche und - wie wir später sehen werden<br />
- der Verlustleistung.<br />
Die Verringerung der Kanallänge und der Leitungskapazität, sowie die Erhöhung der<br />
Ladungsträgerbeweglichkeit würden zwar Vorteile bringen, sind jedoch durch den<br />
Herstellungsprozess und die verwendeten Materialien begrenzt. Die anderen Parameter<br />
stehen dem Schaltungsentwickler nicht für Optimierungen zur Verfügung. Die Verringerung<br />
der Oxyddicke t Ox würde die Verzögerungszeit verringern, jedoch gleichzeitig die<br />
Eingangskapazität erhöhen, was zu einer größeren Verzögerungszeit beim vorhergehenden<br />
Gatter führen würde. Eine größere Kanalweite würde auch zu einer schnelleren Schaltung<br />
führen, jedoch gleichzeitig die Fläche und, wie wir später sehen werden, auch die<br />
Verlustleistung erhöhen, da die parasitären Source/Drain Kapazitäten des Gatters größer<br />
werden. Der Ersatz des Oxyds durch ein Isolationsmaterial mit höherer Dielektrizitätskonstante<br />
würde einerseits die Transistoren schneller machen, andererseits die parasitäre<br />
Lastkapazität der Verdrahtung erhöhen. Hier geht die Tendenz zur Verwendung<br />
unterschiedlicher Materialien: Ein Material mit hoher Dielektrizitätskonstante (high ε) für den<br />
Gate Bereich und ein Material mit niedriger Dielektrizitätskonstante (low ε) für die Isolation<br />
zwischen den Verbindungsleitungen. Besondere Aufmerksamkeit verdient die<br />
Dimensionierung der Versorgungsspannung und der Transostor Schwellspannungen, denn<br />
diese Spannungspegel beeinflussen nicht nur die Verzögerungszeit, sondern auch die<br />
statische und dynamische Verlustleistung sehr stark.<br />
CMOS Verlustleistung<br />
Bevor wir die Verlustleistung einer CMOS Schaltung optimieren können, müssen wir die<br />
Ursachen für die Verlustleistung verstehen. Es gibt zwei grundsätzlich verschiedene<br />
Beiträge: Dynamische Verlustleistung und statische Verlustleistung.<br />
Die dynamische Verlustleistung hängt mit der Funktion der Schaltung zusammen und ist mit<br />
den Schaltflanken der Signale verknüpft. Sie besteht aus einem kapazitiven Anteil und einem<br />
Kurzschlußanteil. Die statische Verlustleistung ist primär auf parasitäre Effekte<br />
zurückzuführen, z.B. Sub-Schwellströme, Leckströme und Gatter Tunnelströme. Auf die<br />
statische Verlustleistung von CMOS <strong>Schaltungen</strong> wird im Rahmen dieser Vorlesung nicht<br />
näher eingegangen. Ihr Einfluss wird lediglich qualitativ diskutiert. Statische Verlustleistung<br />
ist stark abhängig von den Signalpegeln der Versorgungs- und Schwellspannung und steigt<br />
im Bereich kleiner Schwellspannungen exponentiell mit abnehmender Schwellspannung an.<br />
Dynamische Verlustleistung<br />
Die dynamische Verlustleistung einer CMOS Schaltung wird durch ihre Schaltvorgänge<br />
verursacht. Jeder Vorgang, der im Zeitintervall T event = 1 / f event die Energie E verbraucht,<br />
verursacht dabei die dynamische Verlustleistung P = f event E<br />
In einer typischen CMOS Schaltung werden nicht alle Gatter in jeder Taktperiode<br />
umschalten. Um die dynamische Verlustleistung P auf die Taktfrequenz f clk zu beziehen,<br />
verwenden wir die Schalthäufigkeit α 01 .<br />
P = α 01 f clk E<br />
α 01 beschreibt die Häufigkeit der 0/1 Übergänge, entsprechend ist die Häufigkeit der 1/0<br />
Übergänge genauso groß. α 01 hängt stark von der jeweiligen Schaltungsfunktion und der<br />
jeweiligen Anwendung ab. Typische Werte sind 10-20% für Logik und 40-100% für<br />
Ein/Ausgangsschaltungen.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 44 -
CMOS Inverter und Logik<br />
Kapazitive Verlustleistung<br />
Der Hauptbeitrag zur dynamischen Verlustleistung in statischen CMOS <strong>Schaltungen</strong><br />
resultiert aus Umladungsvorgängen der Lastkapazitäten. Bei jedem Schaltvorgang wird die<br />
Lastkapazität CL am Ausgang entweder von gnd nach V DD aufgeladen oder von V DD nach<br />
gnd entladen. Elektrische Leistung wird dabei in den Kanalbereichen der MOS Transistoren<br />
in Wärme umgewandelt.<br />
Formel für kapazitive Verlustleistung<br />
Wir betrachten das bereits verwendete einfache Transistormodell, um eine Formel für die<br />
dynamische Verlustleistung eines statischen CMOS Inverters herzuleiten. Die MOS<br />
Transistoren werden wieder als Schalter modelliert, mit einem Kanalwiderstand wenn der<br />
Transistor eingeschaltet ist.<br />
Wenn die Lastkapazität am Ausgang durch den pMOS Transistor aufgeladen wird, dann wird<br />
dabei die Energie dE = V c dq auf den Kondensator transportiert. Mit V c = q / C und durch<br />
Integration von V c = 0 bis V c = V DD kann die auf dem Kondensator gespeicherte Energie mit<br />
Estored = ½ Q 2 / C angegeben werden. Mit Q = C V DD lautet der Ausdruck für die<br />
gespeicherte Energie:<br />
E stored = ½ C V DD<br />
2<br />
Die selbe Energie wurde im Kanalwiderstand R on,p des pMOS Transistors in Wärme<br />
umgewandelt, während der Strom durch den Transistor floß, E heat = ½ C V DD 2 . Folglich wurde<br />
beim Aufladen der Lastkapazität von gnd auf V DD die Energie E = E heat + E stored aus der<br />
Versorgungsspannungsquelle entnommen.<br />
Wenn die Lastkapazität durch den nMOS Transistor von V DD nach gnd entladen wird, dann<br />
wird dabei die auf dem Kondensator gespeicherte Energie im Kanalwiderstand R on,n des<br />
nMOS Transistors in Wärme umgewandelt.<br />
Die gesamte Energie, die bei einem Schaltvorgang in Wärme umgewandelt wurde, beträgt E<br />
= C V DD 2 und ist unabhängig von den Kanalwiderständen der MOS Transistoren. Mit der<br />
Schalthäufigkeit α 01 ergibt sich die kapazitive Verlustleistung eines CMOS Inverters zu<br />
P = α 01 f C V DD<br />
2<br />
Kurzschluss Verlustleistung<br />
Wie wir bei der Betrachtung der statischen Spannungs-Übertragungs-Kennlinie eines CMOS<br />
Inverters gesehen haben, gibt es bei jedem Schaltvorgang einen Bereich, in dem beide<br />
Transistoren leiten. Dabei fließt ein Kurzschlußstrom von V DD nach gnd, der Verlustleistung<br />
verursacht.<br />
Die Bedingung für die Existenz eines Kurzschlußpfades lautet:<br />
V tn < V A < V DD – |V tp |<br />
Die Formel für die Kurzschlußverlustleistung lautet:<br />
P short = α 01 f β n τ (V DD – 2V tn ) 3<br />
mit den folgenden Annahmen:<br />
τ = τ r = τ f Anstiegs/Abfallzeit des Eingangssignals<br />
β n = β p Steilheit der nMOS, pMOS Transistoren<br />
V tn = V tp Schwellspannungen der nMOS, pMOS Transistoren<br />
- 45 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
CMOS Inverter und Logik<br />
Bei steileren Eingangsflanken wird der Kurzschlußbereich schneller durchlaufen und die<br />
Kurzschluß Verlustleistung sinkt.<br />
Dynamische Verlustleistung: Zusammenfassung<br />
Bei heutigen CMOS <strong>Schaltungen</strong> (L min = 65 nm) beträgt der Anteil der dynamischen<br />
Verlustleistung noch mehr als 50% an der Gesamtverlustleistung eines Chips. Die<br />
kapazitiven Anteile der dynamischen Verlustleistung belaufen sich dabei auf ca. 70-90%. Die<br />
dynamische Verlustleistung steigt linear mit der Schaltaktivität, mit der Taktfrequenz und mit<br />
der kapazitiven Last. Die Komplexität des Chips, Ein/Ausgabe Pins und der Taktbaum tragen<br />
wesentlich zur kapazitiven Last bei. Die Versorgungsspannung geht quadratisch in die<br />
dynamische Verlustleistung ein. Von daher ist eine Absenkung der Versorgungsspannung<br />
von CMOS <strong>Schaltungen</strong> sehr effektiv unter „Low Power“ Gesichtspunkten, zumindest was<br />
die dynamische Verlustleistung anbelangt (siehe auch nachfolgenden Absatz). Bei<br />
langsameren Signalflanken und geringeren Schwellspannungen (d.h. p- und n-Kanal<br />
Transistoren sind länger im gleichzeitig leitenden Bereich im Vergleich zu schnellen<br />
Signalflanken und höheren Schwellspannungen) steigt der Kurzschlußanteil der<br />
dynamischen Verlustleistung.<br />
Trends der dynamischen Verlustleistung<br />
Bei zukünftigen Technologiegenerationen mit immer kleineren Strukturgrößen sinkt die<br />
Verlustleistung pro Gatter. Trotzdem steigt die gesamte Verlustleistung eines Chips weiter<br />
an, weil die Taktfrequenzen steigen, die Integrationsdichte (Anzahl von Transistoren pro<br />
Fläche) und die Chipfläche steigen. Ohne „Low-Power“ Entwurfsmaßnahmen würden künftig<br />
die Verlustleistungsdichte und die absolute Verlustleistung pro Chip weiter zunehmen.<br />
Wichtige Parameter<br />
Die Folie zeigt den Einfluß der Versorgungsspannung und der Schwellspannung auf die<br />
dynamische und statische Verlustleistung, sowie auf die Verzögerungszeit einer CMOS<br />
Schaltung. Die Kurzschluß Verlustleistung wird gegenüber der kapazitiven Verlustleistung<br />
vernachlässigt.<br />
Das Diagramm links oben zeigt die Abhängigkeit von der Schwellspannung V t . Die<br />
dynamische Verlustleistung ist unabhängig von der Schwellspannung. Während die statische<br />
Verlustleistung mit steigender Schwellspannung exponentiell abnimmt, steigt die<br />
Verzögerungszeit mit V t an.<br />
Das Diagramm rechts oben zeigt die Abhängigkeit von der Versorgungsspannung V DD . Die<br />
Verzögerungszeit sinkt reziprok mit steigender Versorgungsspannung. Die dynamische<br />
Verlustleistung steigt hingegen quadratisch mit V DD. Die statische Verlustleistung ist bei<br />
ausreichend hoher Schwellspannung um Größenordnungen geringer als die dynamische<br />
Verlustleistung und wird hier vernachlässigt.<br />
Das Diagramm rechts unten faßt alle Abhängigkeiten zusammen. Hier werden V DD und V t so<br />
skaliert, dass immer V DD - V t = const. gilt. Die Verzögerungszeit bleibt damit konstant. Die<br />
Spannungspegel können so gewählt werden, dass sich ein Optimum für die gesamte<br />
Verlustleistung ergibt. Wenn V DD und V t niedriger wären, dann würde die statische<br />
Verlustleistung ansteigen (linker Bereich), wenn V DD und V t höher wären, dann würde die<br />
dynamische Verlustleistung ansteigen (rechter Bereich).<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 46 -
CMOS Inverter und Logik<br />
Aufgaben<br />
1. Zeichnen Sie das Transistorschaltbild eines CMOS Inverters und erklären Sie dessen<br />
Funktionsweise.<br />
2. Was versteht man unter Propagation Delay t p . Wie entsteht dieser Effekt?<br />
3. In welche zwei Klassen werden die verschiedenen Verlustleistungen bei CMOS<br />
eingeteilt? Nennen Sie für jede Klasse die verschiedenen Arten von<br />
Verlustleistungen, die Sie kennen.<br />
4. Welchen Einfluss hat die Versorgungsspannung auf die kapazitive Verlustleistung.<br />
Wie kann diese gesenkt werden und welchen Einfluss hat dies auf die<br />
Schaltgeschwindigkeit?<br />
5. Bewerten Sie den Anteil der zwei Arten von Verlustleistungen an heutigen<br />
integrierten <strong>Schaltungen</strong> und den Trend für zukünftige Technologien!<br />
- 47 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
CMOS Inverter und Logik<br />
Lösungen<br />
1.<br />
Ein CMOS Inverter besteht aus einem nMOS und einem pMOS Transistor.<br />
Grundgedanke dabei ist, dass je nach Eingangswert nur einer der beiden<br />
Transistoren durchschaltet und der Ausgangs somit auf Ground (logisch 0) oder V DD<br />
(logisch 1) gelegt wird. Falls U E = 0V leitet der pMOS Transistor und der nMOS<br />
Transistor sperrt. Damit liegt der Ausgang auf V DD . Im Falle von U E =V DD ist es genau<br />
umgekehrt. Damit wird der logische Eingangswert genau invertiert.<br />
2. Unter Propagation Delay versteht man die Zeit, die benötigt wird damit sich eine<br />
Änderung des Eingangspegels in einer Änderung des Ausgangspegels bemerkbar<br />
macht. Diese Verzögerung entsteht, da die Transistoren erst Umschalten müssen<br />
(entspricht einer Be-/Entladung der Gatekapazität) und die anliegende Lastkapazität<br />
umgeladen werden muss.<br />
3.<br />
a. Dynamische Verlustleistung: Anteil an der Verlustleistung der beim<br />
Umschalten der Transistoren entsteht (damit abhängig von der<br />
Schalthäufigkeit):<br />
- Kapazitive Verlustleisung<br />
- Verlustleistung durch Kurzschluss/Querströme<br />
b. Statische Verlustleistung: Anteil an der Verlustleistung der auch bei<br />
konstanten Eingängen auftritt:<br />
- Sub-Schwellströme<br />
- Leckströme<br />
- Gate Ströme<br />
4.<br />
P<br />
cap<br />
= α<br />
2<br />
01<br />
fCVdd<br />
Damit steigt die kapazitive Verlustleistung quadratisch mit der Versorgungsspannung<br />
an, bzw. fällt ab. Somit ist es wünschenswert, die Versorgungsspannung möglichst<br />
weit zu senken. Das Propagation Delay t p dagegen ist linear abhängig zur<br />
Versorgungsspannung. Eine Halbierung der Versorgungsspannung führt zu einem<br />
doppelten t p - die Schaltung wird also langsamer. Angestrebt wird daher oft ein<br />
Trade-off zwischen Schaltgeschwindigkeit und Verlustleistung.<br />
5. Die dynamische Verlustleistung hatte traditionell einen recht hohen Anteil an der<br />
Gesamtverlustleistung. Bei neueren Technologien (kleinere Strukturen) tritt das<br />
Problem der Leckströme aber immer mehr zu Tage. Beispielsweise verursachen<br />
Isolierschichten mit nur noch wenigen Atomen an Dicke relative hohe Leckströme.<br />
Auch aus anderen Gründen gewinnt die statische Verlustleistung immer mehr an<br />
Bedeutung.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 48 -
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
Kombinatorische Logik<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de<br />
- 49 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Kombinatorische Logik<br />
Kombinatorische Logik<br />
Lernziele<br />
Im letzten Kapitel wurden die binäre Zahlendarstellung und die grundlegenden<br />
Rechenoperationen im Binärsystem mathematisch formal eingeführt. In diesem Kapitel liegt<br />
der Schwerpunkt auf der schaltungstechnischen Realisierung von binären Rechenoperatoren<br />
und Schaltnetzen zur Umsetzung beliebiger kombinatorischer Funktionen auf der Grundlage<br />
elementarer Logikgatter.<br />
Insbesondere soll vermittelt werden, daß kombinatorische Schaltnetze auf unterschiedliche<br />
Weise und aus verschiedenen „Blickwinkeln“ dargestellt werden können. Z.B.: Als vernetzte<br />
Schaltsymbole, um die Realisierungsstruktur einer Logikfunktion zu betonen, mittels<br />
Wahrheits- oder Logiktabelle, um die Eingangs-/Ausgangsbeziehungen darzustellen, als<br />
Signalverläufe mit Informationen zum Zeitverhalten der Logikschaltung, als<br />
mengentheoretische Darstellung und – nicht zuletzt – mittels formaler Gleichungen der<br />
Schaltalgebra (Boole´sche Algebra).<br />
Boole´sche Algebra ist auf der Basis elementarer Logikoperationen aufgebaut und legt<br />
Regeln zur systematischen Transformation von Logikgleichungen und somit auch von<br />
Logikschaltnetzen fest. Boole´sche Algebra bildet die mathematische Grundlage für<br />
Schaltungssynthese und Logik-Minimierung (d.h. die Realisierung einer kombinatorischen<br />
Funktion mit weniger Schaltelementen).<br />
Neben den funktionalen Eigenschaften kombinatorischer Logik wird in diesem Kapitel auch<br />
das Zeitverhalten von Logiknetzen als essentielle Metrik zur Leistungsbewertung<br />
kombinatorischer Logik eingeführt.<br />
Das Innenleben eines RISC Prozessors<br />
Die elementaren Rechenoperationen eines RISC Prozessors werden bekanntlich in der ALU<br />
(Arithmetic Logic Unit) ausgeführt. Typische Beispiele von RISC Instruktionen sind:<br />
Logikoperationen auf Bitvektoren, arithmetische Funktionen wie Addition oder Subtraktion,<br />
Rechts-/Linksschieben von Bitmustern, Vergleichsoperationen auf Äquivalenz, ≥, ≤<br />
verbunden mit Sprunganweisungen im Programmcode. Jede dieser Elementaroperationen<br />
wird üblicherweise in digitaler Hardware als kombinatorisches Logikschaltnetz realisiert.<br />
Logik Grundschaltung: UND, ODER, NICHT Gatter<br />
Beginnen wir mit den elementaren Logikgrundschaltungen UND, ODER, NICHT. Die auf<br />
diesen Folien gezeigten Darstellungen sind hinsichtlich ihrer Aussage zur Funktion des<br />
Logikelements gleichwertig. In der Praxis wird jede der Darstellungen allerdings zu<br />
unterschiedlichen Zwecken genutzt.<br />
Boole´sche Ausdrücke bilden eine kompakte, rein formal mathematische Beschreibung von<br />
Logikfunktionen. Boole´sche Ausdrücke beziehen sich in diesen Folien auf einzelne<br />
Logikgatter mit 2 Eingangswerten, sind aber grundsätzlich erweiterbar auf Logikfunktionen<br />
beliebigen Grades oder beliebiger Komplexität. Für jede logische Elementaroperation gibt es<br />
verschiedene Notationen. Beispiele „v“ und „+“ als ODER Funktion.<br />
Die Form und Beschriftung von Schaltsymbolen identifiziert ebenfalls die jeweilige<br />
Logikfunktion. Hier gezeigt sind Schaltsymbole nach amerikanischer und europäischer Norm.<br />
Die Zahl der Anschlüsse auf der linken Seite (Eingänge) des Gatters, entsprechen den<br />
Operanden der Boole´schen Gleichung. Schaltsymbole werden primär zur strukturalen<br />
Darstellung der Verknüpfung mehrerer auch unterschiedlicher Gatter verwendet. Hierdurch<br />
werden die Zahl der Gatter zwischen Primäreingängen und Primärausgängen des<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 50 -
Kombinatorische Logik<br />
Schaltnetzes sowie die Verzweigungen von Zwischenergebnissen zu mehreren Folgegattern<br />
(FAN-out) grafisch dargestellt.<br />
Die Wahrheits- oder Logiktabelle stellt den Zusammenhang zwischen den möglichen<br />
Kombinationen der binären Eingänge und dem Ausgangswert der Funktion dar.<br />
Aus der Signaldarstellung wird gleichfalls der funktionale Zusammenhang zwischen<br />
Eingangs- und Ausgangssignalen deutlich, hinzu kommt allerdings noch weitere Information<br />
zum Zeitverhalten, insbesondere der Zeitpunkt für Signalwechsel an den Eingängen. Bei den<br />
hier gezeigten Signalformen wird eine ideale Verzögerung mit 0 Zeiteinheiten zwischen<br />
Signalwechseln an Eingängen zum Ausgang angenommen.<br />
Abschließend ist hier noch das aus der Mengenlehre bekannte Venn-Diagramm zur<br />
Darstellung von Logikfunktionen aufgezeigt. Eine UND Verknüpfung zweier Multbit-Signale<br />
kann eben auch als Schnittmengenbildung, eine ODER Verknüpfung als<br />
Vereinigungsmengenbildung verstanden werden.<br />
Boole‘sche Algebra<br />
Boole‘sche Algebra oder Schaltalgebra ist – wie einleitend bereits gesagt – auf der Basis<br />
elementarer Logikoperationen aufgebaut. Boole‘sche Algebra legt Axiome und Regeln zur<br />
systematischen Transformation von Logikgleichungen und somit implizit auch von<br />
Logikschaltnetzen fest. Boole‘sche Algebra bildet die mathematische Grundlage für<br />
Schaltungssynthese und Logik-Minimierung.<br />
Das Äquivalenzgesetz besagt, die UND oder ODER Verknüpfung eines Logiksignals mit sich<br />
selbst ergibt wiederum das ursprüngliche Logiksignal.<br />
Hingegen ergibt eine UND bzw. ODER Verknüpfung eines Logiksignals mit dem<br />
invertierten/negierten Logiksignal eine „logische 0“ bzw. eine „logische 1“<br />
(Komplementärgesetz).<br />
Die doppelte Negation (2 NICHT Gatter in Serie geschaltet) ergeben ebenfalls den<br />
ursprünglichen Signalwert.<br />
Mittels einer „logischen 0“ an einem Eingang eines UND Gatters wird der Ausgang des UND<br />
Gatters unabhängig vom Wert am anderen Eingang fix auf „logisch 0“ gelegt. Eine „logische<br />
1“ an einem Eingang eines UND Gatters leitet den Wert des anderen Eingangs transparent<br />
zum Ausgang weiter.<br />
Ein ODER Gatter verhält sich entsprechend komplementär: Mittels einer „logischen 1“ an<br />
einem Eingang eines ODER Gatters wird der Ausgang des Gatters unabhängig vom Wert<br />
am anderen Eingang fix auf „logisch 1“ gelegt. Eine „logische 0“ an einem Eingang eines<br />
ODER Gatters leitet den Wert des anderen Eingangs transparent zum Ausgang weiter.<br />
Das Kommutativgesetz besagt, die Reihenfolge der Eingangssignale hat keine Auswirkung<br />
auf das Ergebnis einer logischen Verknüpfung. Z.B., A v B = B v A.<br />
Das Assoziativgesetz bedeutet für Logikschaltungen, daß eine UND bzw. ODER<br />
Verknüpfung mit mehreren Eingangssignalen stets in eine Gruppe von UND/ODER<br />
Verknüpfungen aus Gattern mit weniger Eingängen ergebnisneutral umgewandelt werden<br />
kann.<br />
A + ( B + C ) = A + B + C<br />
Das Distributivgesetz ist ein einfaches Beispiel dafür wie mittels Gleichungsumformung<br />
Logikminimierung realisiert werden kann. Die rechte Seite der Formeln<br />
- 51 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Kombinatorische Logik<br />
A⋅(<br />
B + C)<br />
= ( A⋅<br />
B)<br />
+ ( A⋅C)<br />
= A⋅<br />
B + A⋅C<br />
A + ( B ⋅C)<br />
= ( A + B)<br />
⋅(<br />
A + C)<br />
erfordern jeweils 3 Gatter mit je 2 Eingängen, die linken Seiten hingegen lediglich 2 Gatter<br />
mit jeweils 2 Eingängen.<br />
Mittels des Gesetzes von De Morgan lassen sich negierte UND bzw. ODER Verknüpfungen<br />
in ODER bzw. UND Verknüpfungen mit jeweils invertierten Eingängen umwandeln.<br />
Logik Grundschaltung: NAND, NOR Gatter<br />
Negierte UND/ODER Gatter (NAND, NOR) können grundsätzlich aus UND/ODER Gattern<br />
mit nachgeschaltetem NICHT Gatter dargestellt werden. NAND und NOR Verknüpfungen<br />
sind in praktisch allen digitalen Schaltungsbibliotheken als Basisgatter vertreten. Wir werden<br />
im Kapitel „CMOS Inverter“ gegen Ende dieses Semesters sehen, daß die Umsetzung eines<br />
NAND/NOR Gatters weniger MOSFET Transistoren erfordert, als die nicht-invertierten<br />
UND/ODER Gatter.<br />
De Morgan für Logikschaltungen<br />
Das Gesetz von De Morgan besagt auch, daß jede Boole’sche Gleichung mit ausschließlich<br />
NAND oder NOR Gattern realisiert werden kann. Die Gleichungen und<br />
Schaltsymboldarstellungen auf dieser Folie zeigen wie anhand NAND oder NOR Gattern die<br />
gesamte Palette von UND, ODER, NICHT, NAND, NOR Funktionen realisierbar sind.<br />
Offensichtlich sind die Umsetzungen mit ausschließlich NAND bzw. NOR allerdings nicht<br />
diejenigen Implementierungen mit geringstem Aufwand (Flächenbedarf, Anzahl an<br />
Elementargattern).<br />
NAND, NOR Grundgatter<br />
Wie wir beim CMOS Inverter gesehen haben, invertieren statische CMOS <strong>Schaltungen</strong><br />
grundsätzlich immer. Deshalb werden als Grundschaltungen keine UND/ODER Gatter<br />
verwendet, sondern NAND (= negiertes UND) sowie NOR (= negiertes ODER). Mithilfe der<br />
De Morgan Umformungen lassen sich alle Boole’schen Funktionen mit NAND/NOR Gattern<br />
darstellen.<br />
Aus der Wahrheitstabelle einer NAND Funktion ist ersichtlich, dass nur dann ein leitfähiger<br />
Pfad vom Ausgang Z nach gnd besteht, wenn beide Eingänge (A und B) auf „1“ liegen. In<br />
allen anderen Fällen ist der Ausgang mit V DD verbunden. Entsprechend werden die beiden n-<br />
MOSFETs in Serie, die beiden p-MOSFETs parallel geschaltet.<br />
Für die NOR Funktion wird dieselbe Überlegung angewendet. Wenn einer der beiden<br />
Eingänge (A oder B) oder beide Eingänge auf „1“ liegen, dann soll es einen leitfähigen Pfad<br />
vom Ausgang Z nach gnd geben. Nur wenn beide Eingänge auf „0“ sind, dann soll der<br />
Ausgang mit V DD verbunden sein. Entsprechend werden hier die beiden n-MOSFETs<br />
parallel, die beiden p-MOSFETs in Serie geschaltet.<br />
Logik Grundschaltung: EXOR Gatter<br />
Als letzte Logikgrundschaltung führen wir noch das EXOR Gatter, oder „ausschließliches<br />
ODER“ Gatter ein. Der Ausgang eines EXOR Gatters mit 2 Eingängen ist dann „logisch 1“<br />
wenn genau einer der beiden Eingänge mit „logisch 1“ belegt ist. Da für EXOR ebenfalls das<br />
Assoziativgesetz gilt, erzeugt ein EXOR mit beliebig vielen Eingängen genau dann einen<br />
„logisch 1“ Wert am Ausgang, wenn eine ungerade Anzahl von Eingängen einen „logisch 1“<br />
Wert haben.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 52 -
Kombinatorische Logik<br />
Boole‘sche Algebra: Wozu verwenden?<br />
Neben der bereits beschriebenen Logikminimierung mittels Distributivgesetz können auch<br />
das Konstanz- und Komplementärgesetz zur Elimination redundanter Signalvariablen und<br />
somit ebenfalls zur Logikminimierung verwendet werden. Boole’sche Gleichungen und<br />
algebraische Transformationen werden zur formalen, rein verhaltensbezogenen<br />
Beschreibung und Vereinfachung von beliebigen kombinatorischen Schaltnetzen weit<br />
verbreitet eingesetzt. Sie sind äquivalent zu einer Beschreibung mittels Wahrheitstabelle<br />
bzw. vernetzten Schaltsymbolen.<br />
Logikoperationen auf Bitvektoren<br />
In RISC Prozessor Instruktionssätzen beziehen sich Logikoperatoren in der Regel auf 2<br />
Mehrbit-Operanden (z.B. 2 32Bit CPU Datenworte). Eine UND, NOR oder EXOR Operation<br />
zweier N-Bitvektoren liefert dabei nicht einen 1-Bit Ausgangswert, sondern wiederum ein N-<br />
Bit Ergebnis. Dieses Ergebnis entspricht der Bit-weisen Logikverknüpfung zwischen den<br />
beiden Eingangsoperatoren A und B.<br />
Z ( i)<br />
= A(<br />
i)<br />
op B(<br />
i)<br />
∀i<br />
Kombinatorisches Schaltnetz<br />
Kombinatorische Schaltnetze lassen sich als eine Menge F von kombinatorischen<br />
Funktionen f j beschreiben. Die Gesamtheit der Eingangssignale eines Schaltnetzes F wird in<br />
der Menge I, die Gesamtheit der Ausgangssignale in der Menge O zusammengefaßt. Bei<br />
m + 1 Elementen in der Ausgangsmenge O kann das Schaltnetz aus maximal m + 1<br />
Funktionen f j bestehen. Jede Funktion f j kann von einer beliebigen Untermenge der<br />
Eingangsmenge I abhängen(einschließlich der gesamten Eingangsmenge I).<br />
Charakteristisch für kombinatorische Schaltnetze ist: die Ausgänge des Schaltnetzes zu<br />
einem beliebigen (aber diskreten) Zeitpunkt t hängen ausschließlich von den<br />
Eingangswerten des Schaltnetzes zum Zeitpunkt t ab. Wir werden später noch sehen,<br />
welchen Einfluß die Logikgatterlaufzeitverzögerungen auf die Festlegung eines diskreten<br />
Zeitintervalls zur Einhaltung dieser Bedingung haben werden. Das Schaltnetz enthält keine<br />
Signalspeicher und hat somit kein „Gedächtnis“.<br />
Jede Funktion f j kann mittels Boole’scher Gleichungen bzw. mittels einer Logiktabelle<br />
dargestellt werden.<br />
Disjunktive Normalform (DNF)<br />
Die Beschreibung eines Schaltnetzes ausgehend von einer Logiktabelle mit anschließender<br />
Umsetzung in eine Boole’sche Gleichung zeigen wir nun anhand des Anwendungsbeispiels<br />
der „Geradzahligen Parity-Prüfsummen“ Generierung.<br />
Eine Parity-Prüfsumme ergänzt einen N-Bit Vektor mit einem zusätzlichen Prüfsummenbit.<br />
Das Prüfsummenbit ermöglicht die Erkennung einer (einzelnen) ungewollten Bitmanipulation<br />
innerhalb des n+1 Bit Vektors (ursprünglicher N-Bit Vektor + Prüfsummenbit). Eine<br />
geradzahlige Parity-Prüfsumme ergänzt einen N-Bit Vektor derart, daß nach Einfügen der<br />
Prüfsumme die Zahl der „logisch 1 Bitwerte“ in den N + 1 Bit Vektor geradzahlig ist.<br />
In unserem Beispiel wird die Parity Prüfsumme Z über einen Eingangsvektor bestehend aus<br />
3 Bit (A B C) gebildet. Der Ausgang Z unseres Parity-Prüfsummen-Schaltnetzes wird immer<br />
dann „logisch 1“ wenn die Anzahl der „logisch 1 Bits“ im Eingangsvektor ungeradzahlig ist.<br />
- 53 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Kombinatorische Logik<br />
Aus der aufgestellten Logiktabelle läßt sich ein äquivalenter Boole’scher Ausdruck in der<br />
sogenannten disjunktiven Normalform (DNF) wie folgt erzeugen:<br />
• Wir betrachten ausschließlich Zeilen der Logiktabelle, deren Ausgangswert Z eine<br />
„logische 1“ enthält<br />
• Um in einer Zeile der Logiktabelle einen „logisch 1“ Ausgangswert zu erzeugen,<br />
müssen alle Eingänge bestimmte Logikwerte annehmen. Z. B. wird Z „logisch 1“,<br />
wenn sowohl A, als auch B „logisch 0“ sind und gleichzeitig C „logisch 1“ ist. Die UND<br />
Verknüpfung (Konjunktion) von Eingangswerten, welche einen „logisch 1“ Wert am<br />
Ausgang erzeugt, wird als Minterm bezeichnet. Im vorliegenden Beispiel lautet der<br />
Minterme: A ∧ B ∧ C<br />
• Die Summe (ODER Verknüpfung oder Disjunktion) aller Minterme, die den Ausgang<br />
zu „logisch 1“ werden lassen, beschreibt dann die Boole’sche Gleichung für die in der<br />
Logiktabelle dargestellte Funktion Z<br />
Die Darstellung eines beliebigen kombinatorischen Schaltnetzes erfolgt auf 2 Logikebenen:<br />
UND Produktterme (Minterme) der Eingangsvariablen werden unter einander ODER<br />
verknüpft. Diese äußere ODER (Disjunktion) Verknüpfung gibt dieser Darstellungsform ihren<br />
Namen: Disjunktive Normalform.<br />
Man kann zeigen, dass die Boole’sche Gleichung für die Erzeugung der geradzahligen Parity<br />
Prüfsumme sich auch als EXOR Verknüpfung aller Eingangswerte darstellen läßt. Dies paßt<br />
zu einer zuvor gemachten Aussage, nach der EXOR stets dann einen „logisch 1“<br />
Ausgangswert ergibt, wenn eine ungerade Zahl der Eingänge auf „logisch 1“ gesetzt ist.<br />
Demzufolge erzeugt man eine geradzahlige Parity Prüfsumme mit beliebig vielen Eingängen<br />
aus der EXOR Verknüpfung aller Eingangswerte.<br />
Konjunktive Normalform (KNF)<br />
Eine alternative Darstellung zur DNF ist die Konjunktive Normalform (KNF). Bei der KNF<br />
werden mittels UND Verknüpfungen (Konjunktionen) mehrere ODER Summenterme (auch<br />
als Maxterme bezeichnet) verknüpft. Die Maxterme der KNF beziehen sich nun auf<br />
Ausgänge der Funktion Z, deren Werte in der Logiktabelle eine „logische 0“ annehmen.<br />
Der Ausgang Z einer Funktion wird „logisch 0“, wenn (mindestens) ein Maxterme „logisch 0“<br />
ist. Damit der Ausgang Z in der KNF den Wert „logisch 1“ annimmt, darf keiner der<br />
enthaltenen Maxterme zu „logisch 0“ werden.<br />
Allgemein gilt: Die Negation eines Minterms ergibt den entsprechenden Ausdruck für den<br />
Maxterm und umgekehrt. DNF und KNF sind demzufolge komplementär zueinander.<br />
Transformationen zwischen KNF und DNF<br />
Die Komplementarität zwischen DNF und KNF läßt sich durch Anwendung von „De Morgan“<br />
auf die jeweilige inverse Funktion Z nachweisen. Ausgehend von der KNF für Z erhält man<br />
nach entsprechenden Transformationen eine DNF von Z und umgekehrt.<br />
Logik Grundschaltung: EXOR Gatter<br />
Mit dem Aufstellen der DNF für eine Logiktabelle des bereits eingeführten EXOR<br />
Logikgatters sehen wir, dass sich EXOR ebenfalls auf ein 2stufiges UND/ODER Schaltnetz<br />
zurückführen läßt.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 54 -
Kombinatorische Logik<br />
Disjunktive / Konjunktive Normalformen<br />
Werden in den Produkttermen (Mintermen) der DNF bzw. den Summentermen (Maxtermen)<br />
der KNF sämtliche Eingangsvariablen verwendet, so spricht man von einer kanonischen<br />
Normalform.<br />
Kanonische Normalformen repräsentieren in der Regel keine minimalen<br />
Funktionsausdrücke. Um flächen- oder leistungsoptimierte Realisierungen einer<br />
Logikfunktion zu erhalten, werden funktionsäquivalente Transformationen zur<br />
Logikminimierung durchgeführt.<br />
DNF und KNF sind grundsätzlich gleichwertig. Welche Darstellungsform bevorzugt<br />
anzuwenden ist, hängt davon ab wie häufig die Logikfunktion den Ausgangswert „logisch 0“<br />
bzw. „logisch 1“ erzeugt. Bei wenig „logisch 1“ Werten besteht die DNF aus weniger<br />
Mintermen (als die entsprechende KNF). Bei weniger „logisch 0“ Werten ist hingegen die<br />
KNF Darstellung entsprechend vorteilhafter.<br />
Generisches Modell statischer CMOS <strong>Schaltungen</strong><br />
Wir verallgemeinern nun den Schaltungsaufbau von NAND/NOR Grundgattern mit nur zwei<br />
Eingängen auf beliebig viele Eingänge. Jeder Eingang wird mit einem n-MOSFET und einem<br />
p-MOSFTE verbunden.<br />
Für eine NAND Funktion werden die n-MOSFTEs in Serie, die p-MOSFTEs parallel<br />
geschaltet. Für eine NOR Funktion ist es genau umgekehrt, hier sind die n-MOSFETs<br />
parallel, die p-MOSFETs in Serie. Diesen Gegensatz von Serien- und Parallelschaltung<br />
nennt man „Dualität“.<br />
Die Lastkapazität C repräsentiert die kapazitive Last am Ausgang der Schaltung, die aus den<br />
Eingängen der nachfolgenden Stufen und den Verbindungsleitungen besteht.<br />
Beachten Sie bitte auch hier, dass jedes statische CMOS Gatter immer invertiert. Falls dies<br />
nicht gewünscht wird, dann muss ein zusätzlicher Inverter am Ausgang eingefügt werden.<br />
Wir betrachten nun an einem Beispiel, wie für eine beliebige Boole’sche Funktion eine<br />
statische CMOS Schaltung aufgebaut werden kann. Dies erfolgt in mehreren Schritten. Das<br />
Beispiel lautet Z = AB + C<br />
1. Schritt: Überprüfung des invertierenden Verhaltens<br />
In unserem Beispiel haben wir eine nicht-invertierende Funktion vorliegen. Wir<br />
müssen deshalb durch Umformung zuerst eine invertierende Funktion bilden<br />
( Z = AB + C ), dann diese Invertierung durch einen zusätzlichen Inverter am<br />
Ausgang rückgängig machen ( Z = Z ).<br />
2. Schritt: Verschaltung der n-MOS Transistoren<br />
Für jede UND Verknüpfung von Eingangsvariablen (AB) werden die zugehörigen n-<br />
MOSFETs in Serie, für jede ODER Verknüpfung (C) parallel geschaltet.<br />
3. Schritt: Verschaltung der p-MOS Transistoren<br />
Die p-MOSFETs werden dual zu den n-MOSFETs verschaltet, d.h. jede<br />
Serienschaltung von n-MOSFETs ergibt eine Parallelschaltung von p-MOSFETs und<br />
umgekehrt.<br />
- 55 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Kombinatorische Logik<br />
Auf diese Weise ergibt sich ein entweder leitfähiger Pfad von V DD zum Ausgang Z<br />
(Ausgang auf „1“), oder von Z nach gnd (Ausgang auf „0“), aber niemals ein<br />
Kurzschluss zwischen V DD und gnd und niemals ein undefiniertes Potential am<br />
Ausgang.<br />
Fan-In und Fan-Out<br />
In einer Schaltung kann der Ausgang eines Gatters (Inverter oder anderes Logik Gatter) mit<br />
den Eingängen mehrerer nachfolgender Gatter verbunden sein. Die Anzahl der<br />
nachfolgenden Gatter wird als Fan-Out bezeichnet. Das maximal zulässige Fan-Out eines<br />
Gatters ist in einer Gatter Bibliothek spezifiziert. Wenn ein Gatter viele nachfolgende Gatter<br />
zu treiben hat (hohes Fan-Out), dann wird das treibende Gatter langsamer.<br />
Die Ausgänge von Gattern dürfen nie zusammen geschaltet werden, sonst würden<br />
Kurzschlüsse zwischen V DD und gnd entstehen, wenn die Ausgänge auf unterschiedliche<br />
Logikpegel (0/1) geschaltet werden.<br />
Die Anzahl der Eingänge eines Logik Gatters wird als Fan-In bezeichnet. Ein Inverter hat nur<br />
einen Eingang (Fan-In = 1), andere Logikgatter, z.B. NAND, NOR, können mehrere<br />
Eingänge haben (Fan-In > 1).<br />
Karnaugh Tabelle<br />
Eine zur Logiktabelle gleichwertige Alternativdarstellung kombinatorischer Funktionen,<br />
welche die Aufgabe der Logikminimierung besonders gut unterstützt, ist das Karnaugh<br />
Diagramm oder die Karnaugh Tabelle.<br />
Eine Karnaugh Tabelle besteht aus einer Matrize, deren Zahl von Feldern durch die Anzahl<br />
von Eingangsvariablen I bestimmt wird. Beispiele: Bei kombinatorischen Funktionen mit 2<br />
Eingangsvariablen hat die Karnaugh Tabelle 4 Felder. Bei 3 Eingängen 8 Felder und bei 4<br />
Eingängen 16 Felder. Grundsätzlich hat die Karnaugh Tabelle so viele Felder wie Zeilen in<br />
einer gleichwertigen Logiktabelle auftreten (bei N-Eingängen, 2 N Felder).<br />
Jedes Feld einer Karnaugh Tabelle entspricht einer Zeile in einer Logiktabelle. Demzufolge<br />
wird der Ausgangswert der kombinatorischen Funktion als Wert direkt in ein Feld der<br />
Karnaugh Tabelle eingetragen. Der besseren Übersicht halber werden üblicherweise nur die<br />
„logisch 1“ Werte dargestellt (jedes freie Feld entspricht demnach einem „logisch 0“ Wert).<br />
Die Tabellenindizes entsprechen den Eingangsvariablen der Boole’schen Funktion. Dabei ist<br />
entscheidend, benachbarte Indizes von Karnaugh Feldern unterscheiden sich nur in einer<br />
einzigen Binärstelle (Tabellenindizes sind „Gray codiert“), eine Eigenschaft, die sich - wie wir<br />
gleich sehen werden - vorteilhaft zur Logikminimierung nutzen läßt.<br />
Betrachten wir die durch die (kanonische) DNF:<br />
y = abc + abc + abc + abc<br />
darstellbare kombinatorische Funktion mit 3 Eingangsvariablen. Durch Anwendung des<br />
Distributivgesetzes wird klar, die redundante Eingangsvariable b aus dem ersten beiden<br />
Produkttermen kann mittels Komplementärgesetz eliminiert werden. Ebenso kann die<br />
Variable c aus den beiden letzten Produkttermen ohne Auswirkung auf die Funktion y<br />
entfernt werden.<br />
Eine zur Logiktabelle gleichwertige Karnaugh Tabelle ist in der unteren Folienhälfte gezeigt.<br />
Horizontal bzw. vertikal benachbarte Einträge mit „logisch 1“ entsprechen bei einer „Gray<br />
Code“ indizierten Darstellung der Eingangsvariablen ( x ∨ x ) einem Ausdruck bei einer nach<br />
dem Distributivgesetz umgeformten Boole’schen Gleichung. Die Variable x bezeichnet dabei<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 56 -
Kombinatorische Logik<br />
diejenige Eingangsvariable, die sich zwischen den benachbarten Feldern als einzige<br />
geändert hat. Da diese Änderung offensichtlich keinen Einfluß auf das Ergebnis von y hatte<br />
(das Ergebnis ist in beiden Fällen „logisch 1“) kann x als redundante Variable eliminiert<br />
werden.<br />
Beispiele für Produktterm Minimierung<br />
Zwei benachbarte Felder mit „logisch 1“ Werten in einer Karnaugh Tabelle entsprechen einer<br />
eliminierbaren redundanten Variablen. 4 benachbarte Felder mit „logisch 1“ Werten<br />
entsprechen demzufolge 2 redundanten Variablen. Allgemein: 2 N benachbarte Felder mit<br />
„logisch 1“ Werten entsprechen N redundanten Variablen.<br />
Benachbarte Felder können linear (horizontal oder vertikal) angeordnet sein, können aber<br />
auch quadratische (4 Felder) oder rechteckige (8 Felder) Form besitzen. Ferner ist es<br />
zulässig - um möglichst große Nachbarschaftsbereich zu formieren - Überlappungen<br />
zwischen benachbarten Bereichen zu haben. Diagonal angeordnete Felder bezeichnen<br />
hingegen keine zur Logikminimierung ausnutzbare Nachbarschaftsbeziehung.<br />
Felder, die an horizontal oder vertikal gegenüberliegenden Rändern der Karnaugh Tabelle<br />
liegen, entsprechen ebenfalls gültigen Nachbarschaften. Grund hierfür ist wiederum die<br />
„Gray Codierung“ der Karnaugh Tabelle: Zwischen letztem und erstem Feld einer Reihe bzw.<br />
Spalte unterscheiden sich die Variablen-Indizes ebenfalls nur in einer Binärstelle.<br />
Karnaugh für unvollständig spezifizierte Funktionen<br />
Eine Logikfunktion kann auch unvollständig spezifiziert sein. D. h. für bestimmte<br />
Eingangswerte können die dazugehörigen Ausgangswerte undefiniert bleiben (also „logisch<br />
0“ oder „logisch 1“ sein). Undefinierte Ausgangswerte werden in der Logik- und Karnaugh<br />
Tabelle als X (don´t care) markiert. Undefinierte Ausgänge können vorteilhaft zur<br />
Gruppenbildung von benachbarten Feldern verwendet werden.<br />
Volladdierer<br />
Nachfolgend analysieren wir einige Beispiele von Kombinatorischen Schaltnetzen, die in der<br />
Praxis häufig Verwendung finden. Das erste Schaltungsbeispiel ist ein Multibit-Addierer, der<br />
als Elementaroperation einer RISC ALU in praktisch allen Prozessoren integriert ist.<br />
Im vorherigen Kapitel „Zahlensysteme“ haben wir gesehen, dass die binäre Addition zweier<br />
Bit-Vektoren durch bitweise Addition der einzelnen Ziffernstellen unter Berücksichtigung<br />
eines möglichen Übertrags von der vorherigen Ziffernposition erfolgt. Ein Schaltnetz,<br />
welches 2 Einzelbits + 1 Übertragsbit miteinander addiert und daraus ein Summenbit sowie<br />
ein mögliches Übertragsbit für die direkt nachfolgende Bitposition als Ausgabewerte erzeugt,<br />
bezeichnet man als 1-bit Volladdierer.<br />
Der Entwurf einer 1-bit Volladdiererschaltung beginnt wiederum mit dem Aufstellen der<br />
Logiktabelle und deren Umsetzung in KDNFs für die Summen (S) und Übertragsausgänge<br />
(C out ).<br />
Volladdierer: Logik Implementierung<br />
Die Boole’sche Gleichung für den Summenausgang entspricht (ohne dass funktionale<br />
Parallelen bestehen) der Gleichung für die zuvor besprochenen geradzahlige Parity<br />
Prüfsummenbildung. Der Summenausgang S eines Volladdierers nimmt genau dann einen<br />
“logisch 1“ Wert an, wenn entweder 1 Eingang oder alle 3 Eingänge den Wert „logisch 1“<br />
haben. Dementsprechend kann die Gleichung für S als EXOR Verknüpfung aller 3 Eingänge<br />
A, B, C in überführt werden.<br />
- 57 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Kombinatorische Logik<br />
Durch bereits bekannte Gleichungsumformungen (Distributivgesetz, Komplementärgesetz)<br />
kann der Ausdruck für C out vereinfacht werden. P und G sind Zwischenterme, denen später<br />
bei der Erweiterung zur Multibit-Addiererschaltung noch besondere Bedeutung zukommen<br />
wird. G steht hier für „Generate C out “ und bedeutet, wenn G „logisch 1“ wird, auf alle Fälle<br />
auch C out auf „logisch 1“ gesetzt wird. P steht für „Propagate C in to C out “ und besagt, bei P =<br />
„logisch 1“ wird der Wert von C in (egal ob „logisch 1“ oder „logisch 0“) nach C out<br />
„durchgereicht“ (propagiert). P und G sind ausschließlich von den Summandenbits A und B<br />
abhängig.<br />
Die linke Seite der Folie zeigt eine den Logikgleichungen entsprechende Darstellung des 1-<br />
bit Volladdierers mit Schaltsymbolen.<br />
Volladdierer als CMOS Schaltung<br />
Aus der Wahrheitstabelle wurden die Boole’schen Gleichungen für den Summenausgang S<br />
und den Übertragsausgang C out abgeleitet. Die Zwischenvariable X bezeichnet den<br />
invertierten Übertragsausgang X = C . Im linken Bereich der Abbildung ist die Schaltung<br />
out<br />
für C out dargestellt, im rechten Bereich die Schaltung für den Summenausgang S.<br />
Die dargestellte Schaltung entspricht dem generischen Modell statischer CMOS <strong>Schaltungen</strong><br />
und enthält auch den zusätzlichen Inverter für den Übertragsausgang C out . Dies ist nur ein<br />
Beispiel für eine mögliche Volladdierer Schaltung, es gibt auch andere Möglichkeiten mit<br />
jeweils unterschiedlichen Eigenschaften bezüglich Komplexität, Verzögerungszeit und<br />
Verlustleistung.<br />
Logik Zeitverhalten<br />
In bisherigen Darstellungen wurden Signalwechsel an Ausgängen von Logikgattern stets<br />
zeitgleich mit den Wechseln an den Eingängen vollzogen. Ferner wurden Signalflanken ohne<br />
Anstiegs- bzw. Abfallzeiten dargestellt. Die technischen Ursachen und die quantitative<br />
Bewertung für eine verzögerte Signalfolge des Ausgangs und endlicher Signalflanken<br />
werden wir erst im Kapitel „Inverter“ detailliert kennenlernen. An dieser Stelle soll aber<br />
bereits ein realistisches Modell des Zeitverhaltens digitaler Logikelemente eingeführt werden:<br />
• Ausgänge von Logikgattern folgen Eingangssignalen mit endlichen Verzögerungen t p<br />
> 0. Als relevante Meßpunkte dienen die 50% Signalpegel von Eingangs- und<br />
Ausgangssignal. Wichtig zu merken ist: Verzögerungszeiten (Propagation Delays)<br />
sind stets zwischen Eingängen und Ausgängen eines Schaltungselements definiert.<br />
• Signalwechsel erfolgen mit endlichen Flankensteilheiten, d.h. mit Anstiegszeiten (t r )<br />
und Abfallzeiten (t f ) > 0. Anstiegs- und Abfallzeiten werden zwischen 10% und 90%<br />
des maximalen Signalpegels eines Signals gemessen. Anstiegs- und Abfallzeiten<br />
beziehen sich stets nur auf ein einziges Signal.<br />
Volladdierer: Zeitverhalten<br />
Diese Folie zeigt die Auswirkungen der Logiklatenzen auf die Signaldarstellung von Ein- und<br />
Ausgängen des Volladdierers. Hierbei wurde angenommen: UND und ODER Gatter haben<br />
eine Verzögerung von 1 Zeiteinheit, EXOR Gatter von 2 Zeiteinheiten. Es wird keine<br />
Differenzierung zwischen „low-to-high“ bzw. „high-to-low“ Verzögerungen gemacht.<br />
Aus der Darstellung mittels Schaltsymbolen wird ersichtlich, um von den<br />
Summandeneingängen A oder B zum Summenausgang S zu gelangen, müssen 2 EXOR<br />
Gatter mit insgesamt 4 Zeiteinheiten Verzögerung durchlaufen werden. Von A bzw. B zum<br />
Übertragsausgang C out gibt es 2 Pfade mit 2 bzw. 4 Zeiteinheiten Verzögerungen. Vom<br />
Übertragseingang C in zum Summenausgang S gelangt man über ein EXOR Gatter mit 2<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 58 -
Kombinatorische Logik<br />
Zeiteinheiten Verzögerung, zum Übertragsausgang C out über 2 Gatter mit je 1 Zeiteinheit<br />
Verzögerung.<br />
Der Signalanstieg von A zum Zeitpunkt t = 0 wirkt sich am Ausgang S erst zum Zeitpunkt t =<br />
4 aus. Zuvor (kurz nach t = 3) wechselt C out von „logisch 0“ auf „logisch 1“ als Folge des<br />
Anstiegs von B kurz nach t = 1. Ähnlich lassen sich die übrigen Signalwechsel der Ausgänge<br />
S und C out nachvollziehen.<br />
Wichtig ist, aufgrund der Verzögerungszeiten im Allgemeinen und der unterschiedlichen<br />
Pfadlängen zwischen verschiedenen Ein- und Ausgängen von Schaltnetzen im Speziellen,<br />
entsprechen die Ausgangssignale nur zu bestimmten Zeitperioden den zu den<br />
Eingangssignalen passenden Logikfunktionswerten. Deshalb ist es Konvention, die<br />
Ausgangssignale vom Zeitpunkt eines Eingangssignalwechsels bis zum Erreichen stabiler<br />
Ausgangssignale als undefiniert (grauschattierte Bereiche zwischen den beiden<br />
Signalpegeln) zu deklarieren.<br />
Multibit Addierer: Ripple-Carry Adder<br />
Aus N 1-bit Volladdierern (VA) wird bei gezeigter Verschaltung ein N-bit Multibit Addierer für<br />
2 Summanden A (0 … N - 1) und B (0 … N – 1). Charakteristisch für diese „Ripple-Carry“<br />
(„weitergereichter Übertrag“) Verschaltung ist die Verbindung der C in Eingänge jeder VA<br />
Stufe mit den C out Ausgängen der jeweiligen vorherigen VA Stufe. Der C in Eingang der ersten<br />
Stufe ist auf „logisch 0“ gesetzt.<br />
Aus den zuvor abgeleiteten Gleichungen für S und C out ist offensichtlich, die Ausgänge eines<br />
VA in der Stufe k hängen über C in von den Übertragsausgängen der vorherigen Stufen k – i,<br />
mit 0 < i ≤ k ab. Bedingung für ein „Weiterreichen“ des C in Wertes zum Ausgang C out eines<br />
VA ist P = 1 (zur Erinnerung, P hängt ausschließlich von den lokalen Summandenbits A i und<br />
B i ab).<br />
Demzufolge ist nachvollziehbar, daß die maximale Verzögerungszeit eines Multibit Ripple-<br />
Carry Addierers von der Übertragsweiterleitung bis zum Bit höchster Ordnung (N)<br />
entscheidend mitbestimmt wird. Diese maximale Verzögerungszeit nimmt linear mit der<br />
Breite der Summandenvektoren zu. Eine genaue quantitative Analyse der Ripple-Carry<br />
Verzögerungszeit ist Gegenstand einer Übungsaufgabe.<br />
Multibit Addierer / Subtrahierer<br />
Die gerade eingeführte Ripple-Carry Addierer Struktur kann mittels einfacher Erweiterungen<br />
zu einer Addierer/Subtrahierer Schaltung umgewandelt werden. Aus dem Kapitel<br />
„Zahlensysteme“ wissen wir, eine Subtraktion kann als Addition mit einem negierten<br />
Minuenden realisiert werden. Der negierte Minuend wird bei Zahlen im Binärsystem mittels<br />
Zweierkomplement erzeugt. Zweierkomplement bedeutet: Invertieren aller Bits des<br />
Minuenden mit anschließender Addition einer 1.<br />
Ein EXOR Gatter erlaubt mit minimalem Aufwand, einen Logiksignalwert entweder<br />
unverändert vom Eingang zum Ausgang zu transportieren (der andere Eingang des EXOR<br />
ist dabei auf „logisch 0“ gelegt), oder den Signalwert invertiert am Ausgang erscheinen zu<br />
lassen (der andere Eingang des EXOR liegt dabei auf „logisch 1“). Eine Addition mit 1<br />
erreicht man mittels C in = 1 am VA des Bits mit der niedrigsten Wertigkeit. Mittels N<br />
elementarer EXOR Gatter und einem zusätzlichen Steuersignal (add/subt) kann so aus<br />
einem N-bit Addierer ein konfigurierbarer Addierer/Subtrahierer realisiert werden.<br />
- 59 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Kombinatorische Logik<br />
Multiplexer<br />
Ein n-auf-1 Multiplexer ist eine häufig verwendete Auswahlfunktion für einzelne Bits bzw. Bit-<br />
Worte aus verschiedenen Datenquellen. Mit m Auswahlbits kann zwischen bis zu n = 2 m<br />
Quellen unterschieden werden.<br />
Die linke Seite der Folie zeigt zwei häufig verwendete Schaltsymbole für Multiplexer. Im<br />
Beispiel der unteren Darstellung wird mit einem Auswahl- (Select-) Bit 1 aus 2 N-bit Worten<br />
vom Eingang auf den Ausgang durchgeschaltet. Auf Bitebene beschreibt die Gleichung<br />
die dabei verwendete Logikfunktion.<br />
Bitwort Schiebeoperator<br />
Z = SA +<br />
Mehrere 2-auf-1 MUX-<strong>Schaltungen</strong> kommen beim nachfolgend beschriebenen Bitwort<br />
Schiebeoperator zur Anwendung. Bei einer Bitwort Schiebeoperation wird das binäre<br />
Eingangsdatenwort um eine flexibel einstellbare Zahl von Bitpositionen nach links (zu<br />
höheren Bitpositionen hin) verschoben. Die dabei entstehenden „Lücken“ in den unteren<br />
Bitpositionen werden mit „logisch 0“ Bits aufgefüllt.<br />
Bei dem hier dargestellten Schiebeoperator handelt es sich um einen „logarithmischen Barrel<br />
Shifter“. Die 2-auf-1 MUX-Elemente sind in einer m x n Matrize angeordnet. Die Breite des<br />
Eingangs-/Ausgangsdatenwortes n bestimmt die Zahl der notwendigen MUX Reihen. Die<br />
Zahl m der MUX-Spalten bestimmt die maximale Verschiebeweite 2 m . Jede MUX-Spalte, die<br />
von einem Bit des Steuerwortes kontrolliert wird, ist für eine bestimmte Verschiebeweite in<br />
Potenzschritten von 2 zuständig. Also, die äußerst linke Spalte verschiebt jedes Bit des<br />
Eingangswortes um 0 oder 1 (= 2 0 ) Stelle, die zweite Spalte um 0 oder 2 (= 2 1 ) Stellen, usw..<br />
Die Verschiebungen der einzelnen Spalten können sich zur maximalen Verschiebeweite<br />
aufaddieren.<br />
Unabhängig von der Verschiebeweite durchlaufen die Bits des Eingangsignalwortes stets m<br />
MUX-Spalten. Demzufolge ist die Verzögerungszeit der Verschiebeoperation unabhängig<br />
von der Verschiebeweite. Beim Barrel Shifter ist typischerweise der Verdrahtungsaufwand<br />
der flächendominierende Faktor des gesamten Verschiebeoperators. Die Komplexität der<br />
MUX-Logikelemente spielt dabei meist eine untergeordnete Rolle.<br />
Die rechte Bufferstufe hat keine Funktion im Zusammenhang mit dem Verschiebeoperator,<br />
sondern dient lediglich als aktive Treiberstufe zur Signalregeneration.<br />
Vergleichsoperatoren<br />
Abschließend gehen wir noch auf 2 Vergleichsoperatoren zwischen Bitvektoren, wie sie z.B.<br />
bei konditionalen Verzweigungen im Programmablauf vorkommen, ein.<br />
A ≥ B: A ≥ B wird dann als wahr („logisch 1“) evaluiert, wenn A – B nicht negativ ist.<br />
Demzufolge reicht es aus, daß MSB eines Subtrahierers zu invertieren (da positive<br />
Binärzahlen bekanntlich 0 als Vorzeichenbit besitzen), um ein Indexbit für die Abfrage auf<br />
A ≥ B zu erhalten.<br />
A ≠ B: Um 2 Bitvektoren auf Gleichheit/Ungleichheit abzuprüfen, werden bitweise die beiden<br />
Eingangsvektoren A und B mit EXOR Gattern mit 2 Eingängen verglichen. Sind die Bits<br />
unterschiedlich, so ist der Ausgang des EXOR bekanntlich „logisch 1“. Das nachfolgende<br />
ODER Gatter über alle EXOR Ausgänge evaluiert nur dann zu „logisch 0“, wenn alle EXOR<br />
Ausgänge „logisch 0“ waren. Unter dieser Bedingung war A = B im anderen Fall A ≠ B.<br />
SB<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 60 -
Kombinatorische Logik<br />
Aufgaben<br />
1. Vereinfachen Sie folgende Gleichungen mithilfe der Booleschen Algebra:<br />
a. A⋅<br />
( B + C ⋅ A)<br />
b. ( A⋅ B)<br />
⋅ A<br />
2. Gegeben sei folgende Gleichung: A ⋅ ( B + C)<br />
+ D<br />
a. Geben Sie die Logiktabelle der Schaltung an.<br />
b. Entwerfen Sie zunächst mithilfe von AND und OR Gattern ein Schaltnetz<br />
c. Entwerfen Sie nun eine äquivalente Schaltung aus invertierenden Gattern<br />
d. Wieso werden in digitalen <strong>Schaltungen</strong> in der Regel invertierende Gatter<br />
verwendet?<br />
3. Gegeben sei folgende Logiktabelle:<br />
A B C Z<br />
0 0 0 1<br />
0 0 1 0<br />
0 1 0 1<br />
0 1 1 0<br />
1 0 0 0<br />
1 0 1 0<br />
1 1 0 1<br />
1 1 1 1<br />
a. Erstellen Sie die Disjunktive Normalform<br />
b. Transformieren Sie die Disjunktive Normalform in die Konjunktive Normalform<br />
c. Minimieren Sie mithilfe eines Karnaugh-Diagramms<br />
4. Erklären Sie die Funktionsweise eine Ripple-Carry Adders!<br />
a. Wodurch wird die Verzögerungszeit dominiert?<br />
b. Ändert sich diese mit der Bitbreite?<br />
c. Ist die Verzögerungszeit immer konstant oder abhängig von den<br />
Eingangsdaten?<br />
- 61 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Kombinatorische Logik<br />
Lösungen<br />
1. Ergebnisse:<br />
a. A⋅ B<br />
b. A<br />
2. Ergebnisse<br />
a.<br />
A B C D Z<br />
0 X X 0 0<br />
1 0 0 0 0<br />
1 0 1 0 1<br />
1 1 0 0 1<br />
1 1 1 0 1<br />
X X X 1 1<br />
b.<br />
c. A⋅<br />
( B + C ) + D = ( AB + AC ) ⋅ D = AB ⋅ AC ⋅ D = AB ⋅ AC ⋅ D<br />
d. Invertierende Gatter sind in CMOS Technologie einfacher (also mit weniger<br />
Transistoren) zu realisieren. Invertierende Gatter sind außerdem ausreichend<br />
um sämtliche Logikfunktionen zu implementieren.<br />
3. Ergebnisse<br />
a. DNF: Z = A⋅<br />
B ⋅C<br />
+ A⋅<br />
B ⋅C<br />
+ A⋅<br />
B ⋅C<br />
+ A⋅<br />
B ⋅C<br />
b. KNF: Z = ( A + B + C)<br />
⋅(<br />
A + B + C)<br />
⋅(<br />
A + B + C)<br />
⋅(<br />
A + B + C)<br />
c. Nach Minimierung: Z = A⋅C<br />
+ A⋅<br />
B<br />
Gleiches Ergebnis auch über Vereinfachung z.B. der DNF erreichbar!<br />
4. Beim Ripple-Carry Addierer dient je ein Volladdierer zur Addition zweier Bits der<br />
beiden Summanden A und B. Jeder Volladdierer erzeugt dabei ein Summenbit und<br />
einen Übertrag an die nächst höhere Stufe. Dies kann dazu führen, dass je nach<br />
Eingangsdaten, das Übertragsbit vom MSB zum LSB durchgeschleift wird (daher<br />
ripple-carry).<br />
a. Die maximale Verzögerungszeit wird daher durch die Zeit dominiert, die der<br />
Übertrag braucht um vom LSB zum MSB zu gelangen (längster Pfad).<br />
b. Damit gilt auch: mit steigender Bitbreite steigt die Verzögerungszeit, da der<br />
Übertrag einen immer länger werdenden längsten Pfad erzeugt. Die<br />
Verzögerungszeit wächst näherungsweiße linear mit der Bitbreite.<br />
c. Bei Eingangskombination, die keinen Übertrag erzeugen (z.B. 0000 + 1111),<br />
ist die Verzögerungszeit entsprechend kürzer, sie wird in diesem Fall nurch<br />
durch die Summenlaufzeit bestimmt.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 62 -
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
Sequentielle Logik<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de<br />
- 63 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Sequentielle Logik<br />
Sequentielle Logik<br />
Lerninhalte<br />
Im diesem Kapitel wird auf die Realisierung von Funktionen mit sequentiellem<br />
zeitabhängigen Verhalten eingegangen. Zeitabhängiges Verhalten digitaler <strong>Schaltungen</strong> wird<br />
erst durch die Erweiterung von klassischen kombinatorischen Schaltnetzen mit<br />
Speicherelementen ermöglicht. Die schaltungstechnische Realisierung elementarer<br />
Speicherkomponenten wie Latch, Flip-Flop, Register wird eingeführt. Anschließend werden<br />
Strukturen von endlichen Automaten/Finite State Machines (FSM) als Beispiel für eine<br />
systematische und generelle Methodik zur Realisierung sequentieller Steuereinheiten<br />
untersucht. Möglichkeiten zur Steigerung von Leistungsmerkmalen wie Datendurchsatz oder<br />
höhere Systemtaktrate durch Fließbandverarbeitung oder Verwendung paralleler<br />
Verarbeitungseinheiten werden ebenso eingeführt wie das Strukturierungskonzept der<br />
Separation von Daten- und Kontrollpfad bei digitalen <strong>Schaltungen</strong>.<br />
Innerhalb einer RISC CPU spielt sequentielle Logik besonders im Bereich des Steuerwerks,<br />
welches üblicherweise aus mehreren miteinander interagierenden endlichen Automaten<br />
aufgebaut ist sowie in der Instruktionspipeline eine dominierende Rolle.<br />
Basis Speicherzelle / Register<br />
Die elementarste Realisierung einer Speicherzelle basiert auf konventioneller Boole’scher<br />
Logik. Zwei Inverter werden in der dargestellten Form zu einem Ring verschaltet. Die<br />
Ausgänge der beiden Inverter (die gleichzeitig Eingänge des jeweils anderen Inverters sind)<br />
werden als Q und Q bezeichnet. Wenn Q „logisch 0“ ist, wird durch den Inverter Q auf<br />
„logisch 1“ gesetzt, was wiederum Q aktiv auf „logisch 0“ treibt. Die einmal eingespeisten<br />
Werte von Q und Q sind somit stabil gespeichert. Einziger Nachteil ist, der gespeicherte<br />
Wert kann von extern nicht in kontrollierter Form geändert werden. Um das gezielte Setzen<br />
bzw. Rücksetzen von Q zu ermöglichen, werden die Inverter jeweils durch ein NAND Gatter<br />
ersetzt. Wird ein Kontroll- (Steuer-) Eingang des NAND Gatters (mit x bezeichnet) auf<br />
„logisch 0“ gesetzt, dann wird der Ausgang Q unabhängig vom anderen NAND Eingang mit<br />
„logisch 1“ getrieben. Wird hingegen der Eingang x auf „logisch 1“ gesetzt, so verhält sich<br />
das NAND Gatter wie ein konventioneller Inverter.<br />
Set-Reset Latch / Enable Latch<br />
Das gerade dargestellte Prinzip wird beim Set-Reset Latch angewandt. Bezogen auf den<br />
Ausgang Q des Speicherelements kommt einem Kontrolleingang eines NAND Gates eine<br />
SET (setzen) Funktion, dem Kontrolleingang des anderen NAND Gates eine RESET<br />
(rücksetzen) Funktion zu. SET und RESET dürfen zur Sicherstellung einer konsistenten (d.h.<br />
komplementären) Ausgangsbelegung für Q und Q nie gleichzeitig aktiv sein. Im<br />
vorliegenden Fall wird SET (S) und RESET (R) mit einem Signalwert von „logisch 0“ aktiviert<br />
(negative Logik). S und R dürfen demzufolge nicht gleichzeitig auf „logisch 0“ gesetzt sein.<br />
Wenn S oder R auf „logisch 1“ liegen, dann verhält sich das entsprechende NAND Gate wie<br />
ein Inverter für den jeweils anderen NAND Eingang.<br />
Mit zwei weiteren NAND Gattern wird aus einem Set-Reset Latch ein Enable Latch. Ein<br />
Enable Latch besitzt einen Dateneingang D und einen Aktivierungseingang e. Ist e auf<br />
„logisch 0“, bleibt Q stabil auf dem vorherigen Logikwert. Ist e hingegen auf „logisch 1“, so<br />
übernimmt der Ausgang Q den Wert des Eingangs D. Diese Funktionsweise des Enable<br />
Latches ist in der Logiktabelle zusammengefasst.<br />
Charakteristisch für ein Latch Element ist, daß es sensitiv auf den Logikwert (den Level) des<br />
Steuereingangs reagiert.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 64 -
Sequentielle Logik<br />
Flip-Flop<br />
Ein Flip-Flop Speicherelement ist hingegen sensitiv auf eine Signalflanke (steigend oder<br />
fallend). Dies bewirkt, daß der Ausgang eines Flip-Flops sich zu einem genau definierten<br />
Zeitpunkt und nur einmal während einer Taktperiode ändert. Ein Flip-Flop besteht aus 2<br />
hintereinander geschalteten Enable Latches, wobei die e Enable Eingänge der beiden<br />
Latches zueinander invertiert sind. Das erste Enable Latch (aus Sicht des Dateneingangs)<br />
wird als Master Latch, das zweite (Ausgangs-) Latch als Slave Latch bezeichnet. Die<br />
Logiktabelle zeigt ein Beispiel, wobei das Latch sensitiv auf die steigende Taktflanke ist. Das<br />
genaue Logik- und Zeitverhalten eines Flip-Flops wird anhand der folgenden Folie grafisch<br />
gezeigt. Die invertierte Beschaltung der Takteingänge bewirkt, daß die Ausgänge der beiden<br />
Latches während nicht überlappender Periodenhälften des externen Taktsignals sensitiv auf<br />
ihre Eingänge sind.<br />
Flip-Flop Timing<br />
Signalverzögerungszeit und Anstiegs-/Abfallzeiten wurden bereits beim Kapitel<br />
Kombinatorische Logik eingeführt. Für das Flip-Flop Timing sind zusätzlich folgende<br />
Zeitbedingungen maßgeblich.<br />
Bei einem Flip-Flop gibt es ebenfalls eine Eingangs-zu-Ausgangs Verzögerungszeit. Diese<br />
Latenz gibt an, wann spätestens nach der aktiven Flanke des Takteingangs der Ausgang Q<br />
den Wert des Eingangs D übernommen hat. Diese Zeitperiode wird in Datenblättern häufig<br />
als Propagation Delay (Verzögerungszeit) bzw. Clock-to-Q (T c2q ) bezeichnet.<br />
Für eine eindeutige Übernahme des Ausgangsignals Q muß das Eingangsignal D folgende<br />
beiden Bedingungen erfüllen:<br />
• Setup-Zeit: Daten D müssen spätestens zum Zeitpunkt t setup vor der aktiven<br />
Taktflanke stabil sein.<br />
• Hold-Zeit: Daten D müssen mindestens für die Zeit t hold nach der aktiven Taktflanke<br />
stabil bleiben.<br />
• Ein Verstoß gegen eine dieser Zeitbedingungen kann zu einem falschen oder - noch<br />
unvorteilhafter - zu einem oszillierenden Ausgang Q führen.<br />
Sequentielles Schaltwerk<br />
Wie ein Schaltnetz repräsentiert auch ein sequentielles Schaltwerk eine Menge von<br />
Funktionen, die nun aber von Belegungen der Eingangsvariablen zu verschiedenen<br />
(zurückliegenden) Zeitpunkten abhängen. Schaltwerke haben somit ein „Gedächtnis“.<br />
Mit Schaltwerken können somit eine erweiterte Klasse von Funktionen dargestellt werden,<br />
die mit kombinierten Schaltnetzen nicht realisierbar sind.<br />
Endlicher Automat (Finite State Machine)<br />
Eine wichtige und weit verbreitete Klasse sequentieller Schaltwerke sind endliche<br />
Automaten/Finite State Machines (FSM). Formal kann eine FSM als Sechs-Tupel<br />
beschrieben werden. Das Sechs-Tupel besteht aus einem Eingabe-Alphabet I, einem<br />
Ausgabe-Alphabet O, einer Menge von Systemzuständen S, einer Menge möglicher<br />
Anfangszustände R sowie zweier Funktionen/Relationen f und g. Die Zustände S stellen das<br />
Gedächtnis der FSM dar. Die Zustände S zum Zeitpunkt t sind eine Funktion f der<br />
Eingangsvariablen I zum Zeitpunkt t sowie des vorherigen Systemzustands S zum Zeitpunkt<br />
t - T. Dieser Zusammenhang wird allgemein in der Übergangsfunktion f beschrieben. Die<br />
zweite Funktion welche eine FSM beschreibt, ist die Ausgabefunktion oder Ausgaberelation<br />
g. Je nach Struktur der FSM ist g ausschließlich eine Funktion des Systemzustands S (ein<br />
- 65 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Sequentielle Logik<br />
sogenannter Moore Automat) oder eine Funktion des Systemzustands S sowie des<br />
Eingabealphabets I (ein sogenannter Mealy Automat).<br />
Übergangs- und Ausgabefunktion einer FSM werden häufig als Zustandsdiagramme<br />
dargestellt. Knoten/Kreise repräsentieren einen definierten Systemzustand, gerichtete<br />
Kanten mit Eingangsvariablen die Zustandsübergangsbedingung.<br />
Moore Automat<br />
Beim Moore Automaten hängt der Ausgabewert der FSM ausschließlich vom Systemzustand<br />
ab. Der Folgesystemzustand zum Zeitpunkt t + T ist eine Funktion vom momentanen<br />
Systemzustand zum Zeitpunkt t sowie der Eingangsvariablen zum Zeitpunkt t ab. Der<br />
Systemzustand S ist in einem Multibit-Register gespeichert. Übergangs- und<br />
Ausgaberelationen sind als kombinatorische Schaltnetze realisiert. Daraus ergibt sich die<br />
dargestellte Schaltungsstruktur für einen Moore Automaten. In der Praxis der digitalen<br />
Schaltungstechnik werden Moore Automaten häufig angewendet. Ein Hauptgrund ist: Es<br />
bestehen keine kombinatorischen Pfade von Eingängen I zu Ausgängen O. Die<br />
Systemzustandsregister begrenzen die (kombinatorische) Logiktiefe, d.h. Anzahl<br />
hintereinander geschalteter Logikgatter eines Moore Automaten auf eine einzige<br />
Übergangsfunktion und eine einzige Ausgabefunktion.<br />
Als Nachteil eines Moore Automaten kann die hohe Zahl von Zuständen, die sich aus der<br />
Konvention „1 Zustand pro möglichem Ausgabewert des Automaten“ ergibt, angesehen<br />
werden.<br />
Mealy Automat<br />
Bei einem Mealy Automaten hängen die Ausgabewerte der FSM sowohl vom Systemzustand<br />
S, als auch den Eingangsvariablen I ab. Deshalb werden Ausgabewerte im<br />
Zustandsdiagramm direkt an die Kanten der Zustandsübergänge notiert. Weil es in der Regel<br />
mehr Zustandsübergänge als Zustände gibt, führt ein Mealy Entwurfsansatz zu einer<br />
geringeren Zahl von Zuständen als ein Moore Entwurfsansatz und ist demzufolge von der<br />
grafischen Darstellung übersichtlicher.<br />
Gravierend ist hingegen der Nachteil, daß Mealy Automaten, wenn sie hintereinander<br />
verkettet geschaltet werden, zu langen kombinatorischen Pfaden führen. Dieser Umstand<br />
macht ein sauberes Timing an den einzelnen Registerstufen sehr schwierig. Deshalb sind<br />
Mealy Automaten in der dargestellten Form in der Praxis zu vermeiden.<br />
Dies stellt allerdings keine Einschränkung dar, weil gezeigt werden kann, daß jedes<br />
sequentielle Verhalten durch jeden beliebigen Strukturtypen von FSM darstellbar ist.<br />
Noch ‘ne FSM: Moore oder Mealy?<br />
Die beiden auf dieser Folie gezeigten Automaten realisieren synchrone Zähler. In beiden<br />
Fällen soll jeweils zwischen 0 und M (einschließlich) gezählt werden. Ein Übertrag<br />
(weiterzählen nach Erreichen des Zählerstands M) resultiert jeweils in ein Rücksetzen des<br />
Zählers auf 0. Der Zählvorgang soll bei beiden Maschinen unter Beibehaltung des aktuellen<br />
Zählerstandes jederzeit unterbrochen werden können. Im Zustand „zählen“ bzw. „aktiv“<br />
werden von beiden FSM mehrere Ausgabewerte gemäß dem Zahlenbereich der FSM<br />
erzeugt. Der Zählerstand und Ausgabewert Z wird dabei nicht als Teil des Zustandsvektors,<br />
sondern als sequentielle Hilfsvariable verwendet. Deshalb muss nicht - wie eigentlich bei<br />
Moore Automaten üblich - ein Zustand pro Ausgabewert der FSM definiert und spezifiziert<br />
werden. Es handelt sich also bei den gezeigten Automaten um FSMs vom Typ Moore. Das<br />
Einführen der sequentiellen Hilfsvariablen erlaubt trotz eines relativ großen<br />
Ausgabealphabets O eine übersichtliche Darstellung der FSM mit wenigen Zuständen.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 66 -
Sequentielle Logik<br />
Entwurf Endlicher Automaten in der Praxis<br />
Der heutige Stand der Technik beim Entwurfsablauf von endlichen Automaten, ist wie folgt:<br />
1. Endliche Automaten werden als Zustandsdiagramme oder als Tabelleneingabe<br />
entworfen.<br />
2. Die Zustandsdiagramme werden anschließend in eine funktionsäquivalente VHDL<br />
Beschreibung übertragen und zu Verifikations/Testzwecken simuliert. Simulationen<br />
können auf der Basis einzelner FSM oder miteinander verketteter FSM erfolgen.<br />
3. Automatische Synthesewerkzeuge übersetzen/kombinieren anschließend die VHDL<br />
Beschreibung in eine RTL (Register Transfer Logik) Netzliste, bestehend aus<br />
kombinatorischen Logikgattern und Flip-Flop Speicherelementen. Auf RTL Ebene<br />
kann das FSM Verhalten dann inklusive Zeitinformation der Logik- und<br />
Speicherelemente nochmals stichprobenweise simuliert werden.<br />
Beispiel: Absicherung der Datenübertragung mit Block Parity<br />
Als Beispiel für den Einsatz einer FSM in der Praxis erörtern wir nun die Absicherung der<br />
Datenübertragung (oder Datenspeicherung) mittels Block Parity Prüfsummen. Im Kapitel<br />
„Kombinatorische Logik“ hatten wir bereits die Parity Prüfsummenerzeugung für einzelne<br />
Datenworte kennen gelernt. Wir haben gesehen, mittels eines einzelnen Parity<br />
Prüfsummenbits können Einzelbitfehler in Datenworten erkannt werden. Bei<br />
Mehrfachbitfehlern sinkt die Erkennungswahrscheinlichkeit für Bitmanipulationen hingegen<br />
auf 50%.<br />
Eine Blockprüfsumme deckt mehrere Datenworte (einen Block von Datenworten) ab. Im<br />
vorliegenden Fall bilden wir über 8 aufeinander folgende Datenworte eine weitere 9-Bit<br />
Prüfsumme, ein Prüfsummenbit pro Spalte der 8 Datenworte. Dieses Parity Prüfsummenwort<br />
wird nach jeweils 8 Datenworten in den Datenstrom eingefügt.<br />
Auf diese Weise wird jedes Datenbit zweimal - horizontal mit der Wortprüfsumme, vertikal mit<br />
der Blockprüfsumme - abgedeckt. Wird genau 1 Bit fehlerhaft übertragen, kann das falsche<br />
Datenwort mittels der Wortprüfsumme, die Bitposition des fehlerhaften Bits innerhalb des<br />
Wortes mit der Blockprüfsumme identifiziert, und mittels Invertieren des vorgefundenen<br />
Bitwertes korrigiert werden. Im Fall von konsekutiven Mehrfachfehlern kann in der<br />
Blockprüfsumme der „Fehlerburst“ zumindest mit hoher Wahrscheinlichkeit erkannt (wenn<br />
auch nicht korrigiert) werden.<br />
Block Parity: Separation von Daten- und Kontrollpfad<br />
An diesem Beispiel kann des Weiteren eine häufig praktizierte Technik beim digitalen<br />
Schaltungsentwurf, die Trennung von Daten- und Kontrollpfad, anschaulich demonstriert<br />
werden.<br />
Grundsätzlich übernimmt der Datenpfad die Aufgaben zur Transformation der Daten<br />
innerhalb einer Verarbeitungseinheit. Der Kontrollpfad ist zuständig für die (sequentielle)<br />
Steuerung der Funktionseinheiten im Datenpfad. Der Kontrollpfad wird in der Regel als<br />
sequentielles Schaltwerk in Form einer FSM realisiert.<br />
Die rechte Seite dieser Folie zeigt den Datenpfad für die Block Parity<br />
Prüfsummenerzeugung. Der Datenpfad ist zwischen 2 Registerstufen: Einem Leseregister,<br />
aus dem der Datenstrom wortweise mit je 8-Bit entnommen wird, und einem Schreibregister,<br />
in das die Daten 9-Bit breit (8-Bit Daten plus ein Prüfsummenbit) abgeliefert werden.<br />
Dazwischen befinden sich die Logikblöcke für die Wortprüfsummenberechnung, die<br />
Berechnung und Zwischenspeicherung der bitweisen Blockprüfsummen sowie die MUX<br />
- 67 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Sequentielle Logik<br />
Stufe zum Einfügen des Prüfsummenwortes in den Datenfluss. Die Register sowie die MUX-<br />
Einheit werden von Kontrollbits gesteuert (Kontrollbits sind fett gedruckt angezeigt). Die<br />
korrekte zeitliche Aktivierung und Deaktivierung dieser Kontrollbits ist Aufgabe einer FSM im<br />
Kontrollpfad.<br />
Block Parity: Kontrollpfad<br />
Zunächst wird das Zeitverhalten der Kontrollsignale zur Generierung des gewünschten<br />
Funktionsablaufs dargestellt. Es gilt zu beachten, Register Enable Signale führen nach<br />
Aktivierung erst mit der folgenden aktiven Taktflanke zur Ausführung der entsprechenden<br />
Operation (Register lesen/schreiben/rücksetzen). Der MUX - als kombinatorische<br />
Logikfunktion - schaltet hingegen direkt mit dem Signalwechsel des Kontrolleingangs<br />
zwischen den Eingabedatenworten um. Ferner ist zu beachten, Registerausgänge zeigen<br />
stets den aktuellen Wert des Registerinhalts an (auch wenn das Register disabled<br />
(z.B., rd_en = „0“) ist).<br />
Dieses Zeitverhalten der Kontrollsignale wird anschließend mittels einer FSM realisiert. Die<br />
entsprechende FSM ist auf der folgenden Folie durch zwei gleichwertige Darstellungsformen<br />
gezeigt: Als Zustandsdiagramm eines Moore Automaten, wie er bereits auf vorherigen Folien<br />
eingeführt wurde, und in Tabellendarstellung. Die Tabellendarstellung einer FSM<br />
unterscheidet sich von rein kombinatorischen Wahrheitstabellen durch zwei zusätzliche<br />
Spalten - State (Zustand) und Nxt_State (Folgezustand) - die den sequentiellen Charakter<br />
des Schaltwerks ausmachen.<br />
Anmerkung: Unter State/Nxt_State wird aus Gründen wie bereits unter „Noch ne FSM“<br />
beschrieben, eine sequentielle Hilfsvariable (count) mitgeführt, obwohl diese Hilfsvariable<br />
eigentlich nicht den Systemzuständen zuzurechnen ist.<br />
Die Zuordnung zwischen Zustandsbeschreibung im Zustandsdiagramm und dem binär<br />
codierten Zuständen in der Tabellendarstellung ist wie folgt:<br />
Tabelle Diagramm<br />
00 Stopp<br />
01 Data<br />
11 Last<br />
10 Check Sum<br />
Da es sich hier um eine klassische Moore FSM handelt, besteht eine eindeutige Zuordnung<br />
zwischen FSM Zustand und Ausgabedatenwort. Der Folgezustand der FSM ergibt sich aus<br />
dem momentanen Zustand und dem Eingabedatenwort. Bei der vorliegenden FSM besteht<br />
das Eingabedatenwort aus einem einzelnen Bit (Halt), mit dem die FSM angehalten und<br />
wieder gestartet werden kann. Das Anhalten der FSM ist allerdings immer nur am Ende<br />
eines Datenblocks und nach Einfügen der Blockprüfsumme möglich.<br />
Anhand der Tabellendarstellung einer FSM werden die in Folie „Entwurf endlicher Automaten<br />
in der Praxis“ beschriebenen prinzipiellen Schritte für die FSM Synthese verständlich:<br />
• Für Zustände S und sequentielle Hilfsvariablen werden Register-Bits instantiiert.<br />
• Die Ausgabefunktion g (s) wird gemäß der in Kapitel „Kombinatorische Logik“<br />
beschriebenen Vorgehensweise zur Erzeugung einer disjunktiven Normalform (DNF)<br />
generiert.<br />
Beispiel: rd_en = „1“ wenn S = „01“ ∨ S = „10“<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 68 -
Sequentielle Logik<br />
• Die Übergangsfunktion f (s, i) wird ebenfalls als DNF aus den Zuständen S und dem<br />
Eingangsvektor I erzeugt.<br />
Beispiel: Nxt_State = „01“ wenn (S = „00“ ∧ Halt = „0“) ∨ (S = „01“ ∧ count < 6) ∨<br />
(S = „10“ ∧ Halt = „0“)<br />
Timing Analyse Sequentieller Logik<br />
Mittels Timing Analyse wird die Performanz/Leistungsfähigkeit von sequentiellen<br />
Schaltwerken hinsichtlich ihrer maximal möglichen Betriebsfrequenz analysiert bzw.<br />
optimiert. Die dazu relevanten Schritte und prinzipiell möglichen Entwurfsoptionen werden<br />
auf den folgenden Folien diskutiert.<br />
Grundsätzlich handelt es sich bei sequentiellen Schaltwerken stets um Register-zu-Register<br />
Übergängen. Eingangsvariablen werden in Systemzustände oder gespeicherte<br />
Ausgangsvariablen transformiert. Unsere Betrachtungen führen wir an einer Registerstufe,<br />
die aus 2 Multibit-Eingangsvektoren und 1 Ausgabevektor besteht, durch. Zwischen den<br />
Registern sind kombinatorische Logikgatter wie gezeigt verschaltet. Bei diesem Beispiel<br />
handelt es sich um einen 3-Bit Ripple-Carry Addierer, bestehend aus 2 (bekannten)<br />
Volladdierern und 1 Halbaddierer (da C in = 0 für das niederwertigste Bit 0 vorweggenommen<br />
wurde).<br />
Jede Stufe eines sequentiellen Schaltwerks muß die nachfolgende Zeitbedingung erfüllen:<br />
Tclk<br />
≥ Tc<br />
2<br />
q<br />
+<br />
∑ Tgate<br />
+ T<br />
längster Pfad<br />
Diese Zeitbedingung besagt: Zwischen 2 aufeinander folgenden aktiven Taktflanken des<br />
Schaltwerks (d.h. innerhalb einer Taktperiode) muß jeder Signalwert von den<br />
Eingangsregistern mit der Registerausgabeverzögerung T c2q durch die Logikgatter (und<br />
Verbindungsstrukturen) propagieren und rechtzeitig vor der Setup-Bedingung stabil an den<br />
Eingängen der Ausgaberegister anliegen.<br />
Die kritischste Komponente zur Erfüllung der Zeitbedingung ist der sogenannte längste<br />
kombinatorische Pfad. Der längste Pfad (in der Darstellung fett markiert) beschreibt die<br />
maximal mögliche Verzögerung, welche durch Logikstufen zwischen den Registern<br />
entstehen kann. Der längste Pfad kann mehrere Ursprungsbits in den Eingangsregistern und<br />
mehrere Zielbits in dem Ausgangsregister haben.<br />
Der längste Pfad ist primär für die Begrenzung der maximal möglichen Taktrate T clk eines<br />
sequentiellen Schaltwerks verantwortlich. Ferner ist die Feststellung wichtig, daß der längste<br />
Pfad, obwohl maßgeblich für die Taktratenbegrenzung, nur unter bestimmten<br />
Belegungszuständen an den Eingaberegistern aktiviert/sensibilisiert sein kann. Dies ist ein<br />
Grund dafür, daß sequentielle <strong>Schaltungen</strong> auch bei unsachgemäßer (gegen die<br />
Zeitbedingung verstoßender) Dimensionierung in vielen Fällen richtig funktionieren können<br />
(nur nicht dann, wenn der kritische Pfad aktiviert ist). Timing Analyse zur Ermittlung des<br />
kritischen Pfades ist deshalb essentiell wichtig. Die zu der gezeigten Registerstufe gehörige<br />
Signaldarstellung beinhaltet neben dem Taktsignal (T clk ) das Eingangsverhalten des<br />
Registers A sowie das Signalverhalten unmittelbar vor und nach dem Ausgaberegister S. S in<br />
kann aufgrund unterschiedlicher Pfadlängen mehrfach seinen Wert ändern. Der erste<br />
Signalwechsel an S in wird durch den kürzesten Pfad (ebenfalls fett markiert) – der, wie wir<br />
noch sehen werden, ebenfalls von Bedeutung ist - verursacht. Hier gilt ebenfalls, es kann wie<br />
gezeigt mehrere kürzeste Pfade geben. Der letzte Signalwechsel erfolgt jedenfalls durch die<br />
Verzögerung auf dem längsten Pfad. Der letzte Signalwechsel muß ohne Verletzung der<br />
Setup-Bedingung erfolgen.<br />
setup<br />
- 69 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Sequentielle Logik<br />
Die bisherige Schaltung erlaubt eine minimale Taktperiode von 7 Zeiteinheiten. Nun sei<br />
angenommen, das Pflichtenheft spezifiziert eine notwendige minimale Taktperiode von 4<br />
Zeiteinheiten. Wie lösen wir dieses Timing Problem?<br />
Grundsätzlich gibt es verschiedene Lösungsansätze. Eine Alternative ist die Optimierung der<br />
Logikbibliotheken, um die Verzögerungszeiten der elementaren Logikelemente zu verringern.<br />
Dieser Ansatz wird erfahrungsgemäß sehr schnell sehr aufwändig, weil er mit manuellen<br />
(zeitaufwändigen) Optimierungen - auch Custom Design genannt - verbunden ist. Ferner ist<br />
festzustellen, daß Optimierungen der Logikbibliotheken in der Regel nur zu moderaten<br />
Signallaufzeitverbesserungen führen und demzufolge für unser Problem, wo eine Diskrepanz<br />
zwischen Ist- und Sollwert von nahezu 50% der Taktperiode besteht, kaum aussichtsreich<br />
ist.<br />
Pipelining / Fließbandverarbeitung<br />
Als zweite wesentlich probatere und häufig praktizierte Methode bietet sich die Pipeline- oder<br />
Fließbandverarbeitung an. Bei der Fließbandmethode wird die Bearbeitung einer Aufgabe in<br />
mehrere Unteraufgaben unterteilt. Jede Teilaufgabe wird in einer separaten Registerstufe<br />
bearbeitet. In unserem Beispiel haben wir eine Zweiteilung vorgenommen: Die<br />
Summenberechnung wurde in einer Funktion f 1 , mit Speicherung entsprechenden<br />
Zwischenresultates in einer Registerstufe, und eine Funktion f 2 , welche das Zwischenresultat<br />
in das Endresultat S umwandelt, aufgeteilt.<br />
Durch Einbau einer Registerstufe je Teilfunktion verkürzt sich der kritische Pfad. Maßgeblich<br />
für das neue Timing sind die kürzesten Pfade der Teilfunktionen f 1 und f 2 .<br />
Wir sehen:<br />
• Der kritische Pfad kann sich durch Einfügen einer Registerstufe ändern. Die<br />
kritischen Pfade in den Teilfunktionen müssen nicht identisch oder konsekutiv zum<br />
ursprünglichen kritischen Pfad sein.<br />
• Kürzeste Pfade können aufgrund der Hold-Bedingung ebenfalls zum Problem<br />
werden, wenn T c2q ≤ T hold ist.<br />
Dennoch müssen wir feststellen, auch mit dieser Maßnahme erreichen wir unser Ziel T ckl ≤ 4<br />
noch nicht ganz. Die Funktion f 1 besitzt einen längsten Pfad mit 2 EXOR in Serie, also 4<br />
Zeiteinheiten. Mit T setup und T c2q kommen wir insgesamt auf ein T clk = 5.<br />
Dieses Problem läßt sich in unserem Fall dadurch lösen, daß ein EXOR Gatter von f 1 in die<br />
neue Teilfunktion f 2 ’ verschoben wird. Dies ist möglich, weil der Ausgang des EXOR nicht als<br />
Zwischenergebnis und später auch nicht als Eingang für weitere Logikgatter in f 1<br />
Verwendung findet. Wir haben somit innerhalb f 1 ’ einen längsten Pfad von 3 Zeiteinheiten<br />
und können die Bedingung T clk ≤ 4 erfüllen. Gleichzeitig haben wir damit auch ein<br />
Holdproblem gelöst. Das zweite Holdproblem lösen wir durch Einfügen eines „Dummy-<br />
Operators“ (ODER Gatter mit identischen Eingängen) in den verzögerungsfreien Pfad von f 2 ’.<br />
Zusammenfassend kann zu Pipelining/Fließbandverarbeitung gesagt werden:<br />
• Möglichst gleiche Pfadlängen in den Teilfunktionen einer<br />
Fließbandverarbeitungsstufe erlaubt maximale Reduktion der Taktperiode und somit<br />
maximale Erhöhung der Taktfrequenz.<br />
• Mittels Pipelining ist eine Steigerung des Funktionsdurchsatzes, d.h. der<br />
ausgegebenen Endergebnisse S pro Zeiteinheit ohne Modifikation der Logikgatterbzw.<br />
Register möglich.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 70 -
Sequentielle Logik<br />
• Pipelining ermöglicht eine parallele, gleichzeitige Bearbeitung der Teilfunktionen f i<br />
von unterschiedlichen Iterationen der Gesamtfunktion S.<br />
• Die Gesamtfunktionslatenz bleibt bei Pipelining oder Fließbandverarbeitung gleich<br />
oder kann sogar leicht ansteigen. Solange die Pfadlänge der Teilfunktionen zwischen<br />
den Registerstufen verhältnismäßig (lang) bleibt, ist Pipelining nur mit einer<br />
moderaten Flächensteigerung in Form der zusätzlichen Registerstufen möglich.<br />
Parallele Verarbeitungseinheiten<br />
Die dritte Alternative zur Steigerung der Leistungsfähigkeit von sequentiellen Schaltwerken<br />
ist die Mehrfachinstantiierung der ursprünglichen Funktion S in Form räumlich paralleler<br />
Verarbeitungseinheiten.<br />
Um den Datendurchsatz unseres 3-Bit Addierers um einen Faktor k zu steigern, werden k<br />
Instanzen des 3-Bit Addierers inklusive der dazugehörigen Eingangsregister abwechselnd<br />
über eine DEMUX Verteilerlogik mit Eingabedaten A, B versorgt. Die Datenzuweisung<br />
zwischen den 3-Bit Volladdierern erfolgt reihum im so genannten „Round-Robin“ Verfahren.<br />
Ein und derselbe 3-Bit Addierer (oder allgemein die Funktion S) erhält also jeden k-ten<br />
Eingabedatensatz.<br />
Wenn jede Funktion S die Eingabedaten mit der ursprünglichen Periode T clk verarbeitet,<br />
können am Ausgangsmultiplexer (MUX) und Ausgaberegister S k Ergebnisse innerhalb der<br />
Taktperiode T clk abgeholt und gespeichert werden. Das Ausgaberegister muss demzufolge<br />
mit der k-fachen Frequenz (dem k-ten Teil der Periode T clk ) arbeiten. DEMUX und MUX<br />
Stufen werden von einem in der Abbildung nicht gezeigten Steuerschaltwerk, welches<br />
ebenfalls auf der 3-fachen Taktrate arbeitet, kontrolliert.<br />
Räumlich parallele Verarbeitungseinheiten bilden quasi eine hierarchische Realisierung der<br />
ursprünglichen Zielfunktion S auf zwei Abstraktionsebenen. Zum einen haben wir mehrere<br />
Instanzen der Funktion S auf Komponentenebene. Die gesamtheitliche Betrachtung aller<br />
Komponenten wirkt nach außen wiederum als eine Funktion S, die aber nun mit höherem<br />
Datendurchsatz agiert. Aufgrund des zusätzlichen Schaltungsaufwands zur<br />
Verteilung/Zusammenführung der Eingabedaten und Ergebnisse ist der Flächenbedarf<br />
paralleler Verarbeitungseinheiten in der Regel größer als k mal die Realisierung der<br />
ursprünglichen Funktion S i .<br />
In der Praxis werden die Methoden der Fließbandverarbeitung und parallelen<br />
Verarbeitungseinheiten häufig auch kombiniert eingesetzt. Ein prominentes Beispiel sind<br />
Mehrkern-Prozessoren wie Dual-/Quad-Core Prozessoren der Firma Intel.<br />
- 71 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Sequentielle Logik<br />
Aufgaben<br />
1. Was ist der wesentliche Unterschied zwischen einem kombinatorischen Schaltnetz<br />
und einer sequentiellen Schaltwerk?<br />
2. Erklären Sie jeweils den wesentlichen Unterschied zwischen Latch, Flip-Flop und<br />
Register.<br />
3. Wie lautet die essentielle Formel zur Einhaltung der Zeitbedingung einer<br />
sequentiellen Schaltung? Erklären Sie die einzelnen Terme!<br />
4. Welche Arten von Finite State Machines kennen Sie? Wo liegt der Unterschied?<br />
5. Welche Möglichkeiten haben Sie, um den Durchsatz einer Schaltung zu erhöhen?<br />
6. Bewerten Sie Pipelining und Verwendung Paralleler Verarbeitungseingeiten<br />
hinsichtlich<br />
a. Durchsatz<br />
b. Gesamtlatenz<br />
c. Ressourcenverbrauch<br />
d. Taktfrequenz<br />
7. Entwickeln Sie eine State Machine zum Erzeugen der folgenden zyklischen<br />
Steuersignalen A,B und C:<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 72 -
Sequentielle Logik<br />
Lösungen<br />
1. Ein kombinatorisches Schaltnetz besteht lediglich aus einer gedächtnislosen<br />
Anordnung von Logikgattern. Eine Veränderung der Eingangswerte führt direkt (d.h.<br />
nach einer entsprechenden Verzögerungszeit durch die Gatter) zur Aktualisierung<br />
des Ausgangs. Ein sequentielles Schaltwerk hingegen besitzt ein Gedächtnis in Form<br />
von Speicherelementen. Damit hängt der Ausgangswert nicht nur von den aktuellen<br />
Eingangswerten, sondern auch von früheren Eingangswerten mitab. Eine<br />
Aktualisierung des Ausgangswertes erfolgt nicht direkt, sondern nur zu bestimmten<br />
(diskreten) Zeitpunkten (in der Regel zur (steigenden) Taktflanke eines anliegenden<br />
Systemtaktes).<br />
2. Bei allen drei handelt es sich um Speicherelemente.<br />
a. Latch: 1-Bit Speicherelement, das den Eingangswert immer dann übernimmt,<br />
solange der Enable-Eingang auf "high" / "logisch 1" liegt.<br />
b. Flip-Flop: 1-Bit Speicherelement, das den Eingangswert nur zur anliegenden<br />
steigenden Taktflanke übernimmt.<br />
c. Register: Aneinanderreihung von Flip-Flops zur Speicherung eines n-bit<br />
Wertes.<br />
3. T clk ≥ T c2q + T längster Pfad + T setup<br />
a. T clk : Periodendauer des Takts/Clock<br />
b. T c2q : Die Dauer, die das Eingangsregister benötigt, um einen neuen<br />
Eingangswert nach der steigenden Taktflanke stabil an seinem Ausgang<br />
anzulegen.<br />
c. T längster Pfad : Längste Verzögerungszeit, die zwischen zwei Registerstufen durch<br />
Logikgatter erzeugt werden kann<br />
d. T setup : Zeit, die ein Ausgangswert vor der nächsten steigenden Taktflanke am<br />
Eingang des Ausgangsregisters anliegen muss, um sicher stabil übernommen<br />
zu werden.<br />
4. Im Wesentlichen wird zwischen Moore und Mealy-Automaten unterschieden. Beide<br />
State Machines errechnen aus ihren aktuellen Zustand und den Eingangswerten<br />
ihren nächsten Zustand. Unterschiede gibt es jedoch bei den Ausgangswerten.<br />
Während beim Mooreautomat die Ausgangswerte einzig und allein durch den<br />
aktuellen Zustand bestimmt sind, können beim Mealyautomaten zusätzlich die<br />
Eingänge direkt Einfluss auf den Ausgang nehmen. Dies führt bei Mealy meist zu<br />
kompakteren und übersichtlicheren Automaten verglichen mit Moore, allerdings<br />
ergeben sich dabei teils sehr lange kombinatorische Pfade, die Probleme beim<br />
Timing verursachen.<br />
5.<br />
a. Vereinfachung der Schaltung mittels Logikminimierung (Reduzierung der<br />
Anzahl Logikebenen)<br />
b. Verwendung schnellerer Gatter (im begrenzten Umfang)<br />
c. Pipelining<br />
d. Verwenden paralleler Verarbeitungseinheiten<br />
- 73 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Sequentielle Logik<br />
6.<br />
Pipelining<br />
Max. Durchsatz Erhöht sich entsprechend<br />
der Steigerung der<br />
Taktfrequenz. Doppelte<br />
Taktfrequenz → doppelter<br />
Durchsatz.<br />
Gesamtlatenz Wird tendenziell eher<br />
größer.<br />
Ressourcenverbrauch Steigt leicht an (zusätzliche<br />
Register)<br />
Taktfrequenz<br />
Erhöht sich. Neue max.<br />
Taktfrequenz errechnet<br />
sich aus den neuen (nun<br />
kürzeren) längsten Pfad<br />
Parallele<br />
Verarbeitungseinheiten<br />
Steigt mit dem gleichen<br />
Faktor wie die Anzahl der<br />
Verarbeitungseinh. an: 2<br />
parallel Einheiten →<br />
doppelter Durchsatz<br />
Bleibt konstant.<br />
Deutliche Steigerung, da<br />
mehrfaches Einfügen der<br />
gleichen Logik plus<br />
zusätzliche Steuerlogik nötig<br />
Bleibt konstant.<br />
7. Durch Einsatz eines synchronen Zählers lässt sich die Anzahl der States während<br />
der Pause entscheidend verringern. Der Zähler hat den Ausgang Cnt und (neben<br />
einem Clock-Eingang) die beiden Eingänge cnt_run (Zähler zählt hoch falls ’1’) und<br />
cnt_rst (Reset zum Zurücksetzen des Zählerstandes).<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 74 -
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
Speicher<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de<br />
- 75 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Speicher<br />
Speicher<br />
Motivation<br />
In der Computertechnik gibt es verschiedene Typen von Speichern. Einerseits werden<br />
Speicher benutzt, um temporär Instruktionen und Daten bereit zu halten, die dann in der<br />
CPU verarbeitet werden. Hierzu werden hauptsächlich Halbleiter Speicher verwendet.<br />
Andererseits sollen Daten auch über lange Zeit aufbewahrt werden. Dies geschieht mit<br />
anderen physikalischen Mechanismen, beispielsweise in Festplatten, DVDs oder<br />
Magnetbändern. Wir werden uns hier auf Halbleiter Speicher konzentrieren.<br />
Halbleiter Speicher, künftig vereinfacht nur noch als Speicher bezeichnet, gibt es in<br />
unterschiedlichen Formen mit unterschiedliche Charakteristiken (flüchtig - nicht flüchtig,<br />
statisch - dynamisch, nur Lesen - Lesen/Schreiben, wahlfreier Zugriff - fixe Zugriffsmuster).<br />
Register sind eine Spezialform von Halbleiter Speichern, bei denen der komplette Inhalt<br />
ständig zugreifbar ist. RAM (Random Access Memory) kann höhere Datenmengen speichern<br />
als Register, der Zugriff kann aber nur auf einen kleinen Teil der Daten gleichzeitig erfolgen.<br />
Bei den meisten integrierten Systemen spielen Speicher eine wichtige Rolle für die<br />
Leistungsfähigkeit. Bei einem fortschrittlichen Mikroprozessor nehmen Speicher ca. 50% der<br />
gesamten Chipfläche ein. Den höchsten Anteil haben daran die Daten- und Instruktions-<br />
Cache-Speicher.<br />
Positionierung<br />
In der Tabelle wird ein typischer Halbleiter Speicher (dynamisches RAM, DRAM) mit anderen<br />
Speichermedien verglichen. Die Kriterien sind die Speicher Kapazität in bit, die Speicher<br />
Dichte in bit pro Fläche und die Daten Transfer Rate in Mbit/Sekunde. Bezüglich der<br />
absoluten Speicher Kapazität pro Chip bieten DRAM Speicher zwar nur Kapazitäten von<br />
zwei bis drei Größenordnungen weniger als Festplatten oder DVDs, bezüglich der<br />
Speicherdichte sind sie ähnlich, aber bezüglich der Daten Transfer Rate übersteigen sie alle<br />
anderen Medien deutlich. Die Stärke der Halbleiter Speicher liegt bei hoher Speicher<br />
Dichte und gleichzeitig höchsten Daten Transfer Raten.<br />
Klassifizierung<br />
Speicher können anhand ihrer Zugriffscharakteristik klassifiziert werden.<br />
Wie der Name bereits verrät, können Read Only Memories (ROM) nur ausgelesen, aber im<br />
normalen Betrieb nicht beschrieben werden. Man unterscheidet zwei Typen von ROM<br />
Speichern: Bei Masken programmierbaren ROMs wird der Dateninhalt bereits bei der<br />
Herstellung festgelegt. Lithografie Masken bestimmen, ob der Inhalt einer Speicherzelle „0“<br />
oder „1“ sein soll. Bei ROMs mit Schmelzsicherungen wird der Dateninhalt elektrisch<br />
eingebrannt, indem kleine Schmelzsicherungen in jeder Speicherzelle durch entsprechend<br />
hohe Programmierströme durchgeschmolzen werden oder intakt bleiben.<br />
Nicht-flüchtige Schreib/Lese Speicher behalten ihre Daten, auch wenn die<br />
Versorgungsspannung abgeschaltet wird. Heute sind die am weitesten verbreiteten nichtflüchtigen<br />
Speicher in Flash Speicherkarten und USB Memory Sticks eingesetzt.<br />
(Flüchtige) Schreib/Lese Speicher werden in klassische Random Access cMemory (RAM)<br />
mit wahlfreiem Zugriff und Non-Random Access Memory mit festgelegten Zugriffsmustern<br />
eingeteilt. Beide Typen verlieren ihre Daten, wenn die Versorgungsspannung abgeschaltet<br />
wird. Beispiele für Random Access Memory sind dynamische und statische Speicher, die wir<br />
im Folgenden genauer betrachten werden. Beispiele für Non-Random Access Speicher sind<br />
FIFO (First In – First Out), LIFO (Last In – First Out), CCD (Charge-Coupled Device), CAM<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 76 -
Speicher<br />
(Content Addressable Memory) und Schieberegister, die zwar nur spezielle Zugriffsmuster<br />
unterstützen, jedoch damit auf spezielle Anwendungen ausgerichtet sind.<br />
Anwendungsbeispiele hierfür sind:<br />
• Ein FIFO ist ein klassischer Daten Warteschlangen Speicher, in den Daten in der<br />
Reihenfolge ihres Eintreffens geschrieben und dann weiterverarbeitet werden. LIFO<br />
ist ein Stapelspeicher, bei dem die Reihenfolge des Auslesens umgekehrt zur<br />
Reihenfolge des Eintreffens der Daten ist.<br />
• Content Addressable Memory (CAM) wird verwendet, um den Speicherort eines<br />
bestimmten Datenwortes zu lokalisieren (anstatt das Datenwort von einer<br />
vorgegebenen Adresse zu lesen).<br />
• Ein Schieberegister kann gut dazu verwendet werden, parallele Datenworte in serielle<br />
Bitströme umzuwandeln, und umgekehrt.<br />
Die unterschiedlichen Charakteristiken dieser Speicher können in einem dreidimensionalen<br />
Entwurfsraum dargestellt werden, mit den Achsen Größe/Dichte, Zugriffsgeschwindigkeit und<br />
Robustheit. Diese Betrachtungsweise werden wir im Folgenden immer wieder aufgreifen.<br />
Der Aufbau von Halbleiter Speichern<br />
Bevor wir die internen Strukturen und die Schaltungstechnik innerhalb von Halbleiter<br />
Speichern verstehen können, brauchen wir einige Begriffsdefinitionen:<br />
• Bandbreite: Die Datenmenge, die innerhalb einer Zeiteinheit in einen Speicher<br />
geschrieben oder aus einem Speicher gelesen werden kann, wir als Bandbreite<br />
bezeichnet und in Bit pro Sekunde [bit/sec] gemessen.<br />
• Latenz: Zeitverzögerung zwischen der Anforderung von Daten und der tatsächlichen<br />
Ausgabe dieser Daten, gemessen in Sekunden [sec].<br />
• Zykluszeit: Minimal zulässige Zeitdifferenz zwischen aufeinander folgenden Schreiboder<br />
Lese-Zugriffen, gemessen in Sekunden [sec].<br />
• Asynchroner Speicher: Jede Änderung an einer Adressen oder Signal Leitung<br />
verursacht sofort einen Lese- oder Schreibvorgang. Asynchrone Speicher werden<br />
auch „self-timed memory“ genannt, weil sie nicht durch einen Takt gesteuert werden.<br />
• Synchrone Speicher: Alle Operationen des Speichers (Lesen, Schreiben, Löschen)<br />
laufen synchron zu einem Taktsignal ab. Für alle Operationen gibt es eine definierte<br />
Latenz, gemessen in der Anzahl der Taktzyklen. Beispielsweise können zwischen<br />
dem Anlegen der Adresse für einen Lese Befehl und dem Ausgeben der Daten fünf<br />
Taktzyklen liegen. Da auch alle internen Vorgänge innerhalb des Speichers synchron<br />
zum Taktsignal ablaufen, können in dann einer Pipeline fünf aufeinander folgende<br />
Lese Befehle mit ihren zugehörigen Adressen angelegt und nacheinander<br />
abgearbeitet werden.<br />
Speicher Architektur: Array (Feld) Struktur<br />
Die unterschiedlichen Speicher Typen unterscheiden sich in ihren Speicherzellen, in denen<br />
die einzelnen Bits der Information gespeichert werden. Allen gemeinsam ist jedoch eine<br />
zweidimensionale Struktur ihrer Speicherzellen in einem Feld, englisch Array.<br />
Die Daten werden nicht in einzelnen Bits, sondern in Worten gespeichert, die aus M Bits<br />
bestehen. M ist eine variable Zahl, die üblicherweise an die Datenwortbreite von aktuellen<br />
Mikroprozessoren angepasst ist (8 bit, 16 bit, 32 bit, 64 bit). Ein 1 Megabit Speicherbaustein<br />
- 77 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Speicher<br />
mit einer Wortbreite von 1 Byte (M = 8 bit) besteht demnach aus einem Feld von N =<br />
125.000 Worten x 8 bit.<br />
Der Inhalt des Speicherfeldes ist über einen bidirektionalen Ein/Ausgangs Datenbus mit der<br />
Breite M bit zugänglich. Einzelne Datenworte werden (zum Schreiben oder Lesen) über<br />
Adressleitungen angesprochen. In unserem Beispiel mit N = 1 Mbit und M = 8 bit brauchen<br />
wir 125.000 Adressen. Um die Anzahl der Adressleitungen zu begrenzen, werden<br />
Adressdecoder verwendet. Mit L Adressleitungen können dann 2 L Datenworte adressiert<br />
werden, oder anders ausgedrückt, man braucht L = log 2 N Adressleitungen. Um die<br />
Zweierpotenzen voll auszunutzen verfügt ein 1 Mbit Speicher mit 8 bit Worten dann über 17<br />
Adressleitungen, 131.072 Worte (Byte) und 1.048.576 bit.<br />
Um das Speicherfeld annähernd quadratisch zu halten, werden mehrere Worte in einer<br />
Reihe angeordnet und die Adressen (entsprechend auch die Adressen Decoder) in Zeilen<br />
und Spalten aufgeteilt. Der Spalten Dekoder (englisch column decoder) wählt eines von 2 K<br />
Worten aus einer Zeile aus, der Zeilen Dekoder (englisch row decoder) wählt eine der 2 L-K<br />
Wortleitungen aus.<br />
Um den Speicher schneller zu machen und die Speicherzellen möglichst klein halten zu<br />
können, wird ein Leseverstärker zwischen das Speicherfeld und die Spalten Dekoder<br />
eingefügt. Der Leseverstärker detektiert den geringen Spannungshub beim Auslesen einer<br />
Speicherzelle und verstärkt ihn auf den vollen V DD bzw. GND Pegel. Die Transistoren im<br />
Leseverstärker sind so dimensioniert, dass sie die hohen Lastkapazitäten auf den langen<br />
Leitungen im Speicherfeld rasch auf/entladen können.<br />
Burst Zugriffe ermöglichen das schnelle Lesen aufeinander folgender Datenworte. Dabei<br />
werden nebeneinander liegende Datenworte innerhalb einer Zeile ausgelesen. Im Zeilen<br />
Dekoder wird die entsprechende Zeile aktiviert, alle darin liegenden Worte werden in den<br />
Leseverstärkern verstärkt, an die Spalten Dekoder übergeben und können dann durch<br />
bloßes Weiterschalten der Adressen am Spalten Dekoder ausgelesen werden, ohne eine<br />
neue Zeile aktivieren zu müssen. Die maximale Burst Größe, d.h. die Anzahl der Worte, die<br />
mit einem Burst Befehl ausgelesen werden kann, entspricht der Anzahl der Datenworte in<br />
einer Zeile (=2 K ).<br />
Speicher Architektur: Hierarchie<br />
Der gesamte Speicherbaustein besteht in der Regel nicht nur aus einem, sondern aus<br />
mehreren Zellenfeldern, jeweils mit zugehörigen Zeilen/Spalten Dekodern und<br />
Leseverstärkern, die dann Speicher Blöcke, englisch memory blocks oder memory pages,<br />
genannt werden. Die Speicher Adressen sind dann hierarchisch in Block, Zeilen und Spalten<br />
Adressen aufgeteilt.<br />
Die Vorteile dieser Partitionierung sind:<br />
• Die Verdrahtungslängen innerhalb der Blöcke bleiben begrenzt. Dies begrenzt die<br />
kapazitiven Lasten und ermöglicht schnelleren Zugriff auf die Daten und kleinere<br />
Abmessungen der Transistoren innerhalb der Speicherzellen.<br />
• Während Schreib/Lese Zugriffe und Bursts auf einen Block erfolgen, können die nicht<br />
benutzten Blöcke mit niedrigerer Spannung betrieben werden. Dadurch lässt sich<br />
Verlustleistung einsparen.<br />
Bisher haben wir Architekturbetrachtungen an Speicherbausteinen angestellt, die<br />
unabhängig von der Realisierung der einzelnen Speicherzellen waren. Nun wollen wir uns<br />
die verschiedenen Speicherzellen und ihre jeweiligen Eigenschaften ansehen.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 78 -
Speicher<br />
1-Transistor DRAM Zelle<br />
Dynamische RAM Speicher bieten die beste Kombination von Speicherdichte und<br />
(symmetrischer) Zugriffszeit für Schreiben und Lesen. Deshalb sind sie sehr verbreitet,<br />
beispielsweise als Hauptspeicher in PCs. Die hohe Speicherdichte der DRAMs resultiert aus<br />
der Verwendung nur eines einzigen Transistors und eines Kondensators pro Speicherzelle.<br />
Die Information wird als elektrische Ladung im Kondensator gespeichert, der Transistor dient<br />
als Schalter, mit dem auf den Zelleninhalt zugegriffen werden kann.<br />
Wenn eine Speicherzelle gelesen oder beschrieben werden soll, dann wird die Wortleitung<br />
(WL) aktiviert, d.h. auf V DD gelegt. Dadurch wird der Adresstransistor geöffnet und der<br />
Speicherkondensator mit der Bitleitung (BL) verbunden.<br />
Beim Schreiben wird die Bitleitung auf den gewünschten Wert (V DD für „1“, GND für „0“)<br />
gelegt, der Adresstransistor geöffnet und der Speicherkondensator auf das entsprechende<br />
Potential geladen oder entladen, je nachdem, welchen Zustand er vorher hatte. Wenn zum<br />
Abschluss des Schreibvorgangs die Wortleitung auf GND zurück gesetzt wird, dann schaltet<br />
der Adresstransistor ab, der Kondensator ist isoliert und behält seinen Zustand.<br />
Beim Lesen wird zuerst die Bitleitung auf V DD /2 vorgeladen. Wird der Adresstransistor<br />
geöffnet, dann findet ein Ladungsaustausch zwischen der Kapazität des<br />
Speicherkondensators C S und der Kapazität der Bitleitung C BL statt. Abhängig von der<br />
gespeicherten Ladung auf dem Speicherkondensator wird das Potential der Bitleitung erhöht<br />
oder erniedrigt. Die Größe dieses Spannungshubes ∆V hängt vom Verhältnis der<br />
Kapazitäten C S und C BL ab. Da die Kapazität der Bitleitung typischerweise wesentlich höher<br />
als die Kapazität des Speicherkondensators ist, ergibt sich nur ein kleiner Spannungshub<br />
∆V. Um diesen geringen Spannungshub auf den vollen Logikpegel von V DD oder GND zu<br />
verstärken, sind Leseverstärker erforderlich.<br />
Der Leseverstärker treibt den Spannungspegel auf der Bitleitung von V DD /2 ± ∆V auf V DD für<br />
„1“ oder auf GND für „0“. Da während des Lesens der Adresstransistor geöffnet ist, wird der<br />
gespeicherte Logikpegel beim Lesen gleichzeitig aufgefrischt und neu in die Speicherzelle<br />
geschrieben. Dies ist wichtig, weil ohne Auffrischen die gespeicherte Information durch<br />
Leckströme im Speicherkondensator langsam verloren gehen würde.<br />
Der Speicherkondensator<br />
Betrachten wir den Querschnitt durch einen Speicherkondensator. Die untere<br />
Kondensatorplatte besteht aus dem Silizium Substrat, in unserem Beispiel P-dotiert, die<br />
obere Kondensatorplatte aus einer Gate Elektrode, mit einem Gate Oxyd dazwischen. Der<br />
Aufbau ähnelt einem MOS Transistor ohne Source und Drain Bereiche. Die obere<br />
Kondensatorplatte ist immer auf festes Potential V DD gelegt, dadurch bildet sich eine<br />
Inversionsschicht an der Oberfläche des P-Substrats.<br />
Wen eine logische „0“ gespeichert ist, dann lag die Bitleitung beim Schreiben auf GND.<br />
Elektronen konnten sich in der Inversionsschicht ansammeln und werden dort vom positiven<br />
Potential V DD an der oberen Platte festgehalten. Im thermischen Gleichgewicht ist dies ein<br />
stabiler Zustand.<br />
Wenn eine logische „1“ gespeichert ist, dann lag die Bitleitung beim Schreiben auf V DD .<br />
Dadurch wurden die Elektronen aus der Inversionsschicht abgesaugt. Dies ist ein instabiler<br />
zustand, weil sich thermisch generierte Elektronen aus dem Substrat wieder in der<br />
Inversionsschicht ansammeln und dadurch die gespeicherte Information verloren geht.<br />
- 79 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Speicher<br />
Trench DRAM Zelle<br />
Je höher die Kapazität des Speicherkondensators C S ist, umso höher ist die Anzahl der<br />
Ladungsträger, die die gespeicherte Information repräsentieren, und desto robuster ist die<br />
Speicherung gegen Störungen. Wenn der Speicherkondensator als zweidimensionaler<br />
Plattenkondensator - wie eine große Gate MOS Struktur - auf die Oberfläche des Si<br />
Substrates aufgebracht wird, dann belegt er eine große Fläche und führt damit zu hohen<br />
Chipflächen bei Speicherchips. Diesem Nachteil des planaren Speicherkondensators wird<br />
bei der Trench Zelle dadurch begegnet, dass der Speicherkondensator an die Wände eines<br />
tiefen Grabens, englisch Trench, im Substrat gelegt wird. Der Speicherkondensator erhält<br />
damit eine größere Oberfläche bei geringerer Chipfläche. Die technologischen<br />
Herausforderungen liegen beim Ätzen der tiefen Gräben (5 µm tief, 200 nm breit) und der<br />
homogenen Füllung mit Poly-Silizium als Kondensatorplatte.<br />
1-Transistor DRAM Zellen<br />
Als Alternative zur Trench Zelle kann der Speicherkondensator auch in einer Kammstruktur<br />
nach oben gefaltet werden. Wie bei der Trench Zelle wird der Speicherkondensator so in die<br />
dritte Dimension ausgedehnt, hier jedoch nicht in die Tiefe, sondern in die Höhe. Der<br />
technologische Aufwand besteht in einer höheren Anzahl von Masken und damit einer<br />
höheren Prozesskomplexität.<br />
Leseverstärker<br />
Bei der Betrachtung des Lesevorgangs von dynamischen 1-Transistor Speicherzellen haben<br />
wir gesehen, dass der Spannungshub auf der Bitleitung nur gering ist (V DD /2 ±∆V). Dieser<br />
geringe Spannungshub muss auf definierte Logikpegel (V DD für „1“, GND für „0“) verstärkt<br />
werden. Dies ist die Aufgabe der Leseverstärker in einem DRAM Speicherfeld. Gleichzeitig<br />
frischt der Leseverstärker die Information in der Speicherzelle beim Lesen auf.<br />
Für jede Spalte in einem DRAM Speicherfeld gibt es eine Bitleitung und einen<br />
Leseverstärker. Üblicherweise wird das Speicherfeld in eine obere und eine untere Hälfte<br />
geteilt (bezogen auf die Wortleitungen entlang der Zeilen) und die Leseverstärker werden in<br />
die Mitte platziert. Dadurch sehen alle Speicherzellen die gleiche Bitleitungskapazität C B und<br />
diese ist nur halb so groß, wie wenn die Leseverstärker oben oder unten am Feld sitzen<br />
würden.<br />
Der Aufbau eines Leseverstärkers ähnelt einem Latch, das aus zwei rückgekoppelten<br />
Invertern besteht. Die Funktionsweise eines Leseverstärkers ist im Folgenden beschrieben.<br />
• Ein DRAM Zugriffszyklus besteht aus mehreren Phasen. Die erste Phase ist die so<br />
genannte Ausgleichsphase, in der BL und BL durch TE verbunden werden und<br />
beide Seiten auf das Potential V DD /2 vorgeladen werden.<br />
• Durch Aktivierung der Wortleitung WL wird der Speicherkondensator C S mit der<br />
Bitleitung BL verbunden. Wenn der Speicherkondensator auf V DD aufgeladen war<br />
(eine „1“ war gespeichert), dann wird das Potential auf der Bitleitung BL leicht<br />
ansteigen.<br />
• Kurz nach der Aktivierung der Wortleitung wird Φ Sense aktiviert und der<br />
Verstärkungsvorgang beginnt. Die Source Anschlüsse der Transistoren T3 und T4<br />
werden durch Φ Sense auf GND gelegt. Da BL auf höherem Potential liegt als BL wird<br />
T4 besser leiten als T3. Dadurch wird die Drain Spannung von T4 schneller nach<br />
GND gezogen als die Drain Spannung von T3. T3 leitet immer schlechter, T4 immer<br />
besser.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 80 -
Speicher<br />
• In der nun folgenden Pull Up Phase werden die Source Anschlüss von T1 und T2<br />
durch Aktivierung von Φ pull up mit V DD verbunden. T1 leitet besser als T2 und der<br />
Leseverstärker wird in seinen stabilen Endzustand mit BL auf V DD und BL auf GND<br />
gezogen. Der Lesevorgang hat den ursprünglichen Inhalt der Speicherzelle<br />
restauriert, bzw. aufgefrischt.<br />
• Nach dem Ende der Pull Up Phase kann ein neuer DRAM Lesezyklus starten.<br />
Das Lesen einer gespeicherten “0” funktioniert genauso, mit den entsprechend geänderten<br />
Spannungspegeln in der Speicherzelle.<br />
6-Transistor CMOS SRAM Zelle<br />
Der Aufbau einer statischen CMOS Speicherzelle entspricht ebenfalls einem CMOS Latch,<br />
mit zwei rückgekoppelten Invertern. Diese Schaltung kann zwei stabile Zustände einnehmen,<br />
was für die Speicherung einer „0“ oder einer „1“ genutzt wird. Die Bitleitungen (BL und BL )<br />
sind durch zwei nMOS Adresstransistoren mit den gespeicherten Bit Werten (Q and Q )<br />
verbunden. Die Adresstransistoren werden durch die Wortleitung WL angesteuert.<br />
Im Gegensatz zur dynamischen 1-Transistor Zelle benötigt eine statische CMOS SRAM<br />
Zelle kein Auffrischen der Information, solange die Spannungsversorgung anliegt.<br />
Um die SRAM Zelle auszulesen wird die Wortleitung WL auf V DD gelegt. Dadurch leiten die<br />
beiden Adresstransistoren und die gespeicherten Logikwerte Q und Q werden mit den<br />
Bitleitungen verbunden, die dann ausgelesen werden können. Zum Beschreiben einer SRAM<br />
Zelle werden die Bitleitungen auf die gewünschten Logikpegel gelegt, die Adresstransistoren<br />
werden mit WL geöffnet und der bisherige Zustand der Speicherzelle wird mit dem neuen<br />
Zustand überschrieben.<br />
Nicht-flüchtige Speicherzellen (Flash)<br />
Nicht-flüchtige Speicher behalten ihre Information, auch wenn die Betriebsspannung<br />
abgeschaltet wird. Sie haben für Speicherkarten in digitalen Kameras, Mobiltelefonen, MP3<br />
Spielern und USB Memory Sticks hohe Bedeutung erlangt. Die englische Bezeichnung Flash<br />
(Blitz) ist auf frühere Generationen von nicht-flüchtigen Speicherzellen zurück zu führen, die<br />
durch Belichtung gelöscht wurden.<br />
Eine nicht-flüchtige Speicherzelle besteht aus einem MOS Transistor mit zwei übereinander<br />
angeordneten Gates. Das obere Gate ist mit einer Gate Elektrode verbunden und wird<br />
Kontroll Gate genannt. Das untere Gate ist vollständig isoliert und wird Floating Gate<br />
genannt. Das Speichern erfolgt durch Aufbringen von Ladungsträgern auf das Floating Gate,<br />
die dann für lange Zeit (typisch 100 Jahre) dort bleiben.<br />
Zum Beschreiben (auch Programmieren genannt) einer Floating Gate Zelle wird eine hohe<br />
Programmierspannung an das Kontroll Gate und an die Drain (Bitleitung) angelegt. Diese<br />
Programmierspannung ist typischerweise 4-mal so hoch als V DD . Dadurch geschieht<br />
folgendes:<br />
• Die Elektronen im Kanal des Transistors werden durch die hohe Drain Spannung<br />
wesentlich stärker beschleunigt als in einem konventionellen Transistor.<br />
• Die hohe Programmierspannung am Kontroll Gate zieht die Elektronen im Kanal nach<br />
oben.<br />
- 81 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Speicher<br />
• Beide Effekte überlagern sich, die Elektronen im Kanal erhalten eine hohe<br />
Bewegungsenergie (heiße Elektronen, englisch hot electrons), können durch das<br />
Gate Oxyd tunneln und erreichen so das Floating Gate. Dieser Effekt ist selbststabilisierend<br />
und selbst-begrenzend, weil die negative Ladung der auf dem Floating<br />
Gate gefangenen Elektronen ein weiteres Tunneln verhindert.<br />
• Wenn die Programmierspannung wieder abgeklemmt wird, dann bleiben die<br />
Elektronen auf dem Floating Gate gefangen.<br />
Beim Lesen wird die reguläre Betriebsspannung V DD über die Wortleitung an das Kontroll<br />
Gate gelegt. Die negative, gespeicherte Ladung auf dem Floating Gate verhindert die<br />
Bildung einer Inversionsschicht im Kanal des Transistors, so dass der Transistor nicht leitet.<br />
Das Vorhandensein negativer Ladung auf dem Floating Gate wirkt sich wie eine<br />
Verschiebung der Schwellspannung V t des MOS Transistors aus. Die Bitleitung wird dann<br />
nicht mit GND verbunden, sondern verbleibt auf ihrem vorgeladenen Potential. Falls das<br />
Floating Gate nicht mir Elektronen beschrieben war, dann würde V DD am Kontroll Gate<br />
ausreichen, um eine Inversionsschicht im Kanal zu bilden, der Transistor würde leiten und<br />
die Bitleitung würde auf GND entladen werden.<br />
Zum Löschen der Speicherzelle müssen die auf dem Floating Gate gefangenen Elektronen<br />
entfernt werden. Dies geschieht durch Anlegen einer hohen Spannung an Drain, floaten der<br />
Source (abtrennen von GND) und Verbinden des Kontroll Gates mit GND. So werden die<br />
negativen Ladungsträger auf dem Floating Gate vom positiven Potential an der Drain so<br />
stark angezogen, dass sie wieder durch das Gate Oxyd tunneln können und in der Drain<br />
verschwinden. Dieser Vorgang wird “Fowler-Nordheim” tunneln genannt.<br />
ROM – Read Only Memory<br />
Die einfachste (und dichteste) Form eines Speichers, aus dem im Betrieb nur ausgelesen<br />
werden kann, besteht aus einer pn-Diode und einer kleinen Schmelzsicherung in jeder<br />
Speicherzelle, d.h. an jedem Kreuzungspunkt von Wort- und Bitleitungen im Speicherfeld.<br />
Die Information kann entweder beim Herstellungsprozess festgelegt werden (Masken<br />
programmiertes ROM) oder im Betrieb einmalig geschrieben werden (programmierbares<br />
ROM - PROM). Beim PROM werden die kleinen Schmelzsicherungen selektiv mit<br />
entsprechend hohen Spannungspulen durchgeschmolzen. Eine offene Sicherung<br />
repräsentiert eine logische „0“, eine geschlossene Sicherung eine logische „1“. Die Dioden<br />
verhindern einen Stromfluss von den Bitleitungen in die Wortleitungen, was die Logik Werte<br />
auf anderen Bitleitungen stören würde. Der Widerstand zwischen Bitleitung und GND stellt<br />
einen sauberen „0“ Pegel sicher, wenn die Sicherungen geöffnet sind. Andernfalls wäre das<br />
Bitleitungspotential nicht definiert.<br />
ROMs werden üblicherweise verwendet, um nicht veränderbare Informationen zu speichern,<br />
z.B. System Start Zustände, statische Boot Code Sequenzen, die unabhängig von der<br />
Spannungsversorgung sein sollen und auch vom Benutzer nicht geändert werden können.<br />
Der Informationszugriff ist vollständig wahlfrei, wie bei DRAM und SRAM.<br />
Speicher im Mikroprozessor System<br />
Bisher haben wir unterschiedliche Typen von Speicherzellen mit unterschiedlichen<br />
Eigenschaften bezüglich Speicherdichte, Speicherkapazität, Zugriffsgeschwindigkeit und<br />
Robustheit der gespeicherten Information betrachtet. Diese unterschiedlichen Eigenschaften<br />
resultieren aus dem unterschiedlichen Aufbau und der unterschiedlichen Schaltungstechnik<br />
der Speicherzellen. Jeder Typ hat seine individuellen Stärken und Schwächen. In einem<br />
Mikroprozessor System werden die unterschiedlichen Speicher Typen so eingesetzt, dass<br />
sich ihre individuellen Stärken gut kombinieren und ihre Schwächen möglichst<br />
kompensieren.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 82 -
Speicher<br />
Als Beispiel werden wir die Speicher Hierarchie eines auf einem Chip integrierten<br />
Mikroprozessor Systems (System-on-Chip, SoC) betrachten. Datenverarbeitung besteht aus<br />
dem Zugriff, der Verknüpfung und dem Zurückschreiben von Daten. Viele Anwendungen<br />
arbeiten auf großen Datenmengen, die in nicht-flüchtigen Medien, z.B. Festplatten,<br />
gespeichert sind. Der direkte Zugriff des Prozessors auf die Festplatte wäre nicht sehr<br />
effizient, weil die Zugriffsdauer im Vergleich zur Taktrate des Prozessors sehr langsam ist.<br />
Deshalb wird eine Speicher Hierarchie aufgebaut, mit schnellen Speichern möglichst nahe<br />
an der CPU, in denen die am häufigsten verwendeten Daten gehalten werden, und<br />
größeren, langsameren Speichern, in denen nicht so häufig verwendete Daten sind. Auf<br />
diese Weise wird der Datenzugriff insgesamt optimiert.<br />
Eine aktuelle Speicher Hierarchie kann als Pyramide mit der CPU an der Spitze,<br />
Massenspeichern an der Basis und verschiedenen Speichertypen dazwischen dargestellt<br />
werden. Speicher Kapazität und Zugriffsdauer nehmen von der Spitze zur Basis hin zu.<br />
Den schnellsten Datenzugriff ermöglichen die Register innerhalb der CPU. Auf alle Register<br />
kann gleichzeitig zugegriffen werden. On-Chip Cache Speicher mit SRAM Zellen arbeiten mit<br />
der gleichen Taktfrequenz wie die CPU und sind auf schnellen Datenzugriff optimiert. Ihre<br />
Speicherkapazität wird durch die erforderliche Chipgröße begrenzt (typisch einige Mbit).<br />
Als zweite Ebene der Cache Speicher werden Off-Chip SRAM Speicher verwendet. Sie sind<br />
schneller, aber auch teurer, als DRAM. Um auf den Off-Chip Cache zuzugreifen, müssen<br />
Daten zwischen der CPU und den Speicherbausteinen über die Leiterplatte übertragen<br />
werden. Dies dauert länger als On-Chip Zugriffe. Die CPU muss den Inhalt der Cache<br />
Speicher verwalten, um Daten Inkosistenzen zwischen Cache und Hauptspeicher zu<br />
vermeiden.<br />
Der Hauptspeicher des Mikroprozessor Systems wird üblicherweise mit SDRAM realisiert.<br />
Die 1-Transistor DRAM Zelle bietet höhere Speicherdichten als die 6-Transistor SRAM Zelle,<br />
verursacht jedoch höhere Zugriffszeiten wegen des aufwendigeren Lesevorgangs und der<br />
erforderliche Refresh Zyklen. Die von der Festplatte benötigten Daten werden in den<br />
Arbeitsspeicher „gespiegelt“ und stehen dann zur Bearbeitung zur Verfügung. Der Transfer<br />
der Daten erfolgt über Systembusse, z.B. PCI, SCSI, USB, häufig von Direct Memory Access<br />
(DMA) Controllern gesteuert, ohne die CPU zu belasten.<br />
Embedded DRAM<br />
Embedded DRAM, oder auf deutsch „eingebettetes DRAM“ bezeichnet die Integration von<br />
dynamischen Speichern (DRAM) und Logikschaltungen (z.B. Mikroprozessoren) auf einem<br />
gemeinsamen Chip. Üblicherweise werden DRAM und Logik mit unterschiedlich optimierten<br />
Produktionsprozessen auf getrennten Chips hergestellt. SRAM Zellen werden aus Standard<br />
Logik Transistoren aufgebaut und sind gut mit Logik integrierbar. DRAM Zellen erfordern<br />
jedoch spezielle Prozessschritte (z.B. Trench Kondensatoren), die sich nur mit hohem<br />
Aufwand in den Standard Logik Herstellungsprozess integrieren lassen.<br />
Die Vorteile von embedded DRAM liegen in der höheren Speicherdichte von DRAM<br />
gegenüber SRAM und in der besseren Verbindungsmöglichkeit zwischen DRAM und Logik,<br />
wenn die Verbindungen On-Chip erfolgen und nicht über die Leiterplatte geführt werden<br />
müssen. Da die Anzahl der Pins an einem Chip Gehäuse begrenzt ist, können On-Chip viel<br />
mehr Verbindungsleitungen gelegt werden, als Off-Chip. Es können folglich On-Chip viel<br />
mehr Zugriffe parallel erfolgen, was eine höhere Zugriffsbandbreite bewirkt. Zudem ist die<br />
parasitäre Leitungskapazität von On-Chip Leitungen deutlich geringer als bei Leitungen, die<br />
über die Leiterplatte gehen, was den Zugriff auch schneller macht.<br />
Von Nachteil ist die bereits genannte höhere Prozesskomplexität, die sich nicht nur auf die<br />
Kosten, sondern auch auf die Performanz der Schaltung auswirkt. Zusätzliche<br />
Prozessschritte beeinflussen immer auch die bereits gefertigten Strukturen, deshalb sind die<br />
- 83 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Speicher<br />
elektrischen Eigenschaften von Transistoren in einem embedded DRAM Prozess schlechter<br />
als in reinen Logik oder reinen DRAM Prozessen. In einem embedded DRAM Chip sind<br />
Speicherdichte und Logik Geschwindigkeit etwas geringer als in spezialisierten<br />
Einzelprozessen.<br />
Zuverlässigkeit – Soft Errors<br />
Sporadisch auftretende, nicht permanente Fehler in integrierten <strong>Schaltungen</strong> werden als Soft<br />
Errors bezeichnet. Soft Errors werden durch Strahlungspartikel (Alpha und Gamma<br />
Strahlung aus dem Weltraum und aus radioaktiven Zerfallsvorgängen in vielen natürlichen<br />
Materialien) verursacht, die Elektronen/Loch Paare erzeugen, wenn sie auf ein Silizum<br />
Kristall treffen.<br />
DRAM Speicherzellen sind besonders empfindlich für Soft Errors. Der Trend zur<br />
Strukturverkleinerung führt zu immer kleineren Speicherkondensatoren und damit zu immer<br />
weniger Ladungsträgern, die die Information repräsentieren. Heute erzeugt ein Alpha<br />
Teilchen Treffer mehr Ladungsträger als in einer DRAM Zelle gespeichert sind. Diese<br />
Ladungsträger können im elektrischen Feld des Speicherkondensators eingesammelt<br />
werden. Die gespeicherte Information kann dadurch verloren gehen. Eine etablierte<br />
Abhilfemethode ist die Codierung der gespeicherten Information mit Error Correcting Codes<br />
(ECC), die die Wiederherstellung der korrekten Datenworte trotz einzelner fehlerhafter Bits<br />
innerhalb eines Wortes ermöglichen<br />
Bei weiterer Verkleinerung der Strukturen und weiterem Absenken der Versorgungsspannung<br />
werden die Soft Error Probleme größer und können auch SRAM, sowie in Zukunft<br />
sogar Logikschaltungen stören.<br />
Speicher Ausbeute<br />
Mit Ausbeute wird das Verhältnis von funktionsfähigen (getesteten) Chips zur gesamten<br />
Anzahl aller gefertigten Chips auf einem Wafer bezeichnet. Hohe Ausbeute ist eine<br />
wesentliche Voraussetzung für den ökonomisch rentablen Betrieb einer Halbleiter Fertigung,<br />
vor allem bei hohen Stückzahlen.<br />
Die Ausbeute ist stark von der Chipfläche abhängig, denn die Anzahl der Defekte, die auf<br />
einen Chip trifft, steigt quadratisch mit den Abmessungen des Chips an. Jeder<br />
Herstellungsprozess wird typischerweise bei seiner Einführung zuerst eine hohe<br />
Defektdichte aufweisen, die dann mit zunehmender Prozessoptimierung sinkt, was eine<br />
Verbesserung der Ausbeute zur Folge hat.<br />
Redundanz<br />
Ein etablierter Weg zur Verbesserung der Ausbeute bei Halbleiterspeichern ist die<br />
Einführung redundanter Zeilen und Reihen mit Speicherzellen. Dadurch wird zwar nicht die<br />
Anzahl der Defekte verringert, aber nicht funktionsfähige Zellen können nach dem Test des<br />
Bausteins durch redundante Zellen ersetzt werden. Die Zeilen und Spalten Dekoder werden<br />
so konfiguriert, dass Zeilen und Spalten mit defekten Speicherzellen ausgeblendet und durch<br />
redundante Zeilen/Spalten ersetzt werden. Aufgrund ihrer regulären Struktur (lauter gleiche<br />
Speicherzellen) eignen sich Speicherfelder, im Gegensatz zu irregulärer Logik, sehr gut für<br />
Redundanz als Maßnahme zur Ausbeute Steigerung.<br />
Redundanz und Fehlerkorrektur<br />
Redundanz ersetzt immer komplette Zeilen/Spalten eines Speicherfeldes. Wenn nur einzelne<br />
Zellen defekt sind, dann können auch fehlerkorrigierende Codes (englisch error Correcting<br />
Codes, ECC) eingesetzt werden. ECC hatten wir als Korrekturmaßnahme gegen Soft Errors<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 84 -
Speicher<br />
bereits erwähnt, ECC kann jedoch auch zur Korrektur von permanenten, fertigungsbedingten<br />
Fehlern verwendet werden. Die Kombination von Redundanz und ECC verbessert die<br />
Ausbeute deutlich, denn beide Methoden ergänzen sich.<br />
Aufgaben<br />
1. Erklären Sie den Unterschied zwischen einem synchronen und asynchronen<br />
Speicher.<br />
2. Erklären Sie kurz den Aufbau und die Programmierung von Flash Speicherzellen.<br />
3. Zeichnen Sie eine SRAM Speicherzelle. Was ist die Funktion der einzelnen<br />
Transistoren?<br />
4. Ordnen Sie folgende Speicherarten hinsichtlich Geschwindigkeit und Kosten/Byte ein:<br />
SDRAM, SRAM, ferromagnetische Speicher (Festplatte)<br />
- 85 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Speicher<br />
Lösungen<br />
1. Synchrone Speicher arbeiten mit einem festen Systemtakt, d.h. zum Beispiel beim<br />
Lesen ist ein Datenwort ist frühestens mit dem nächsten Takt nach Anlegen einer<br />
neuen Adresse (je nach Latenz des Speichers auch mehrere Takte) zu erwarten. Bei<br />
asynchronen Speichern beginnt der Lese-/Schreibvorgang dagegen direkt. Beim<br />
Auslesen kann das neue Datenwort somit unmittelbar am Ausgang anliegen.<br />
2. Eine Flash Speicherzelle besteht aus einem Feldeffekttransistor mit einem<br />
zusätzlichen Floating Gate. Das Floating Gate wird mit einer hohen positiven bzw.<br />
negativen Spannung aufgeladen bzw. wieder entladen. Durch das "Programmieren"<br />
des Floating Gates mit Elektronen erhöht sich die Schwellspannung des Transistors.<br />
Wählt man nun eine geeignete Gatespannung zum "Auslesen" des Transistors aus,<br />
so schaltet der Transistor je nach Programmierung durch oder nicht.<br />
3. Transistoren M1-M4 realisieren ein CMOS Latch (zwei rückgekoppelte Inverter) zur<br />
Speicherung einer „0“ bzw „1“. Über die Transistoren M5 und M6 (beide werden<br />
immer gleichzeitig geschalten) wird die Speicherzelle zum Lesen oder Schreiben<br />
ausgewählt.<br />
WL<br />
V DD<br />
M2<br />
M4<br />
M5<br />
Q<br />
Q<br />
M6<br />
M1<br />
M3<br />
BL<br />
BL<br />
4. Geschwindigkeit: SRAM (am schnellsten) - SDRAM - Festplatte<br />
Kosten: Festplatte (am billigsten) - SDRAM -SRAM<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 86 -
<strong>Digitale</strong> <strong>Schaltungen</strong> 1<br />
Übungsaufgaben<br />
Andreas Herkersdorf · Walter Stechele · Johannes Zeppenfeld · Michael Meitinger<br />
© Lehrstuhl für Integrierte Systeme · Technische Universität München · www.lis.ei.tum.de<br />
- 87 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Übungsaufgaben<br />
Einführung<br />
Übung 1: Kosten bei der Waferherstellung / Moore’s Law<br />
In einer Wafer-Fertigungsanlage werden 300 mm Wafer zur Herstellung von ICs verwendet.<br />
Daraus sollen quadratische <strong>Schaltungen</strong> (Dies) zu je 2 cm² hergestellt werden.<br />
1. Berechnen Sie zunächst, wie viele Dies sich aus einem einzelnen Wafer herstellen<br />
lassen. Beachten Sie hierbei insbesondere, dass Dies am Rand nicht mehr<br />
vollständig untergebracht werden können und damit nicht funktionsfähig sind.<br />
Hinweis: Die Anzahl an Dies die aufgrund des Randes abgezogen werden müssen,<br />
lässt sich näherungsweise berechnen mit:<br />
Dies<br />
Rand<br />
d<br />
wafer<br />
⋅ π<br />
=<br />
2 ⋅ A<br />
die<br />
Bei der Herstellung von Wafern kommt es<br />
üblicherweise zu punktuellen Fehlern in der<br />
Kristallstruktur, die <strong>Schaltungen</strong> unbrauchbar machen<br />
können. Die Fehlerquote wird dabei angegeben in<br />
Fehler pro Fläche und sei im Folgenden 0,5/cm².<br />
Die Ausbeute lässt sich berechnen mit<br />
− α<br />
⎛ D ⋅ A ⎞<br />
Ausbeute (yield) = ⎜1 +<br />
f Die ⎟ ,<br />
⎜ α ⎟<br />
⎝<br />
⎠<br />
mit α = Technologiefaktor<br />
D f = Fehlerdichte<br />
2. Wie viele fehlerfreie <strong>Schaltungen</strong> lassen sich durchschnittlich aus einem Wafer<br />
erhalten (Im Folgenden sei α = 1)?<br />
3. Sie möchten die Ausbeute pro Wafer erhöhen. Welche Möglichkeiten haben Sie?<br />
4. Durch Skalierung wollen Sie nun die Anzahl der korrekten Dies pro Wafer um den<br />
Faktor 2 verdoppeln.<br />
a. Um wieviel muss die Fläche Ihrer Schaltung (Dies) in etwa schrumpfen?<br />
b. Wie lange dauert es nach Moore's Law in etwa bis Ihre Schaltung durch den<br />
technologischen Fortschritt die gewünschte Größe erreicht?<br />
5. Zeichnen Sie schematisch die Kostenverteilung pro Chip in Abhängigkeit der<br />
Stückzahl. Kennzeichnen Sie vor allem die Auswirkungen von Fixkosten und<br />
variablen Kosten.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 88 -
Übungsaufgaben<br />
Zahlensysteme und Signaldarstellung<br />
Übung 2: Grundrechenarten im Binärsystem<br />
1. Wandeln Sie die gegeben Zahlen jeweils in die anderen Zahlensysteme um<br />
Binär Dezimal Hexadezimal<br />
5<br />
10011<br />
23<br />
32<br />
176<br />
11110001<br />
100<br />
2. Rechnen im Binärsystem: Führen Sie folgende Operationen aus<br />
a. Addieren<br />
10111010 00101110 01111111<br />
+ 01000101 + 01011011 + 00000001<br />
b. Subtrahieren<br />
1000111 10111010 10000000<br />
− 0000011 − 00011100 − 00000001<br />
c. Multiplizieren<br />
110101 110101<br />
· 000010 · 000110<br />
Übung 3: Negative Zahlen<br />
1. Wandeln Sie folgende Dezimalzahlen in 8-bit Binärzahlen um.<br />
Verwenden Sie zur Darstellung negativer Zahlen dabei das Zweier-Komplement!<br />
1, -1, 53, -15, -128, 127<br />
2. Führen Sie folgende Subtraktionen binär durch:<br />
a. 53 − 15<br />
b. 127 − 128<br />
c. -15 − 1<br />
- 89 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Übungsaufgaben<br />
Kombinatorische Logik<br />
Übung 4: Boolesche Algebra<br />
Vereinfachen Sie soweit wie möglich<br />
1. ( A + A)<br />
⋅ B<br />
2. ( A + B) ⋅ C + A ⋅ C<br />
3. ( A + B)<br />
⋅ ( B + C)<br />
⋅ ( A + C)<br />
Übung 5: De Morgansche Regel<br />
1. Beweisen Sie grafisch mithilfe der beiden Mengen A und B die beiden<br />
De Morganschen Regeln.<br />
A ⋅ B = A + B<br />
A + B = A⋅<br />
B<br />
2. Vereinfachen Sie folgende Boolschen Gleichungen soweit wie möglich<br />
a. A⋅<br />
B + A⋅C<br />
b. A ⋅ B ⋅ C + A ⋅ B + B + A<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 90 -
Übungsaufgaben<br />
Übung 6: Entwurf einer einfachen digitalen Schaltung<br />
Gegeben ist folgende Wahrheitstabelle mit den Eingängen a, b und c:<br />
a b c y<br />
0 0 0 0<br />
0 0 1 0<br />
0 1 0 1<br />
0 1 1 1<br />
1 0 0 1<br />
1 0 1 x<br />
1 1 0 x<br />
1 1 1 1<br />
Die don’t cares sollen dabei zunächst zu 0 gesetzt werden!<br />
1. Erstellen Sie die Konjunktive Normalform.<br />
2. Erstellen Sie die Disjunktive Normalform. Vereinfachen Sie soweit wie möglich.<br />
3. Minimieren Sie die Funktion mithilfe eines Karnaugh-Diagramms. Erstellen Sie eine<br />
mögliche Gatterschaltung<br />
Im Folgenden sollen die don’t cares frei wählbar sein!<br />
4. Erstellen Sie erneut ein Karnaugh-Diagramm. Wie schaut das Gatterschaltbild nun<br />
aus?<br />
Übung 7: Gatterentwurf mit Ein-/Aus-Schaltern<br />
Im Folgenden stehen Ihnen zwei verschiedene Arten von Schaltern zur Verfügung. Der<br />
Schalter vom Typ n ist geschlossen, sofern am Eingang G eine 1 anliegt, ansonsten offen.<br />
Der Schalter vom Typ p schließt bei einer 0 am Eingang und öffnet bei einer 1. Außerdem<br />
steht Ihnen eine Spannungsquelle mit V DD zur Verfügung.<br />
1. Entwerfen Sie mithilfe der Schalter vom Typ n und Widerständen ein NOT, NAND<br />
und NOR Gatter.<br />
2. Bewerten Sie Ihre Schaltung am Beispiel NOT hinsichtlich Verlustleistung und<br />
Schaltgeschwindigkeit. Soll der Widerstand idealerweise groß oder klein gewählt<br />
werden?<br />
3. Wie können Sie die Schaltung verbessern, wenn Sie nun auch noch Schalter vom<br />
Typ p zur Verfügung haben? Zeichnen Sie die Gatter erneut!<br />
- 91 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Übungsaufgaben<br />
Übung 8: Entwurf eines Volladdierers<br />
Ihnen stehen folgende Gatter mit den angegebenen Verzögerungszeiten zur Verfügung:<br />
A<br />
UND ODER EX-ODER<br />
A<br />
A<br />
Z<br />
Z<br />
B<br />
B<br />
B<br />
τ τ 2τ<br />
1. Zeigen Sie eine Realisierungsmöglichkeit eines Halbaddierers unter Verwendung<br />
obiger Gatter. Geben Sie die Summen- und Carrylaufzeiten t SHA und t CHA des<br />
Halbaddierers an.<br />
b<br />
a<br />
HA<br />
s<br />
c<br />
2. Erweitern Sie die Schaltung aus 1 zu einem Volladdierer, d.h. ermitteln Sie eine<br />
Realisierung der in nachstehender Zeichnung eingesetzten „Black Box“. Gehen Sie<br />
dabei wie folgt vor: Stellen Sie zunächst die Wahrheitstabelle des Volladdierers auf.<br />
Nehmen Sie in diese Tabelle auch die Variablen p und g auf. Extrahieren Sie aus<br />
dieser Tabelle die Wahrheitstabelle der „Black Box“. Wählen Sie ein geeignetes<br />
Minimierungsverfahren und wenden Sie dieses auf die Funktionen s und c i+1 an.<br />
Geben Sie schließlich die Realisierung des Volladdierers auf Gatterebene an.<br />
c i<br />
b<br />
a<br />
HA<br />
p<br />
g<br />
?<br />
s<br />
=<br />
b<br />
a<br />
VA<br />
s<br />
c i<br />
c i+1<br />
c i+1<br />
3. Geben Sie die Summenlaufzeit t SVA von den Eingängen a oder b zum<br />
Summenausgang, die Übertragslaufzeit t cc vom Carry-Ein- zum Carry-Ausgang und<br />
die Übertragslaufzeit t abc von den Eingängen a oder b zum Carry-Ausgang an.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 92 -
Übungsaufgaben<br />
Übung 9: Ripple Carry Adder<br />
Gegeben ist folgender 4-Bit Ripple-Carry Adder. Die Laufzeiten innerhalb der Volladdierer<br />
seien wie folgt gegeben (vgl. auch Übung 8):<br />
• Summenlaufzeit t SVA : 4τ<br />
• Übertragslaufzeit t CC : 2τ<br />
• Übertragslaufzeit t ABC : 4τ, falls C in =1<br />
2τ, falls C in =0<br />
A 3 B 3<br />
A 2 B 2<br />
A 1 B 1<br />
A 0 B 0<br />
C out = C 4<br />
VA<br />
S 3<br />
VA<br />
S 2<br />
VA<br />
S 1<br />
VA<br />
S 0<br />
C 0 = C in = 0<br />
1. Es sollen die beiden binären Zahlen 0011 und 0001 addiert werden. Wie lange dauert<br />
es, bis das gültige Ergebnis am Ausgang anliegt? (Hinweis: sowohl der Eingang A als<br />
auch B seien zunächst 0).<br />
2. Geben Sie eine Eingangskombination für A/B mit maximaler Berechnungsdauer an.<br />
3. Zeichnen Sie den längsten Pfad ein und berechnen Sie diesen.<br />
- 93 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Übungsaufgaben<br />
Sequentielle Logik<br />
Übung 10: Zustandsautomaten<br />
K<br />
T<br />
Hauptverkehrsstraße<br />
Straße_1<br />
K<br />
T<br />
Im Folgenden soll eine State Machine für eine Ampelsteuerung entwickelt werden. Die<br />
Ampelsteuerung soll an einer Kreuzung einer Hauptverkehrsstraße mit einer Nebenstraße<br />
eingesetzt werden. Daneben befindet sich ein Fußgängerüberweg über die<br />
Hauptverkehrsstraße. Die Hauptverkehrsstraße soll dabei bevorzugt werden.<br />
• Solange sich kein Auto der Kreuzung auf der Nebensstraße nähert (erkennbar durch<br />
eine Kontaktschleife K im Fahrbahnbelag) oder ein Fußgänger den Taster T an der<br />
Fußgängerampel betätigt, behält die Hauptverkehrsstraße grün. Alle anderen Ampeln<br />
bleiben rot.<br />
• Betätigt ein Fußgänger den Taster, so erhält die Nebenstraße und die<br />
Fußgängerampel für 50 Sekunden grün. Löst dagegen nur die Kontaktschleife aus<br />
(kein Fußgänger), dann erhält nur die Nebenstraße für 30 Sekunden grün, die<br />
Fußgängerampel bleibt rot.<br />
• Anschließend erhält die Hauptverkehrsstraße wieder grün. Die Grünphase der<br />
Hauptverkehrsstraße soll dabei mindestens 1 Minute betragen.<br />
Gelbphasen werden zur Vereinfachung nicht beachtet!<br />
Zur Zeitermittlung steht Ihnen ein Zeitgeber zur Verfügung. Dieser besitzt einen Eingang A<br />
und drei Ausgänge T 1 - T 3 . Wird der Eingang aktiviert (A=1) gibt der Zeitgeber an den<br />
Ausgängen nach 30, 50 und 60 Sekunden ein Signal aus (T 1 : 30 Sekunden, T 2 : 50<br />
Sekunden, T 3 : 60 Sekunden). Wird der Eingang wieder deaktiviert (A=0), werden die<br />
internen Zähler zurückgesetzt. Der Zeitgeber kann nun von neuen benutzt werden.<br />
1. Erklären Sie den Unterschied zwischen Moore- und Mealy-Automat.<br />
2. Zeichnen Sie das Zustandsdiagramm eines geeigneten Moore-Automaten. Definieren<br />
Sie hierfür geeignete Zustände<br />
3. Entwickeln Sie eine geeignete Logik zur Berechnung des neuen States. Erstellen Sie<br />
hierfür zunächst eine Wahrheitstabelle der State-Logik.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 94 -
Übungsaufgaben<br />
Übung 11: Zeitverhalten von CMOS <strong>Schaltungen</strong><br />
Gegeben sei folgende Schaltung aus zwei FlipFlops mit einem Verzögerungsglied:<br />
Die FlipFlops haben folgende Eigenschaften:<br />
t setup = 1 ns t hold = 2 ns t c2q = 0,5 ns<br />
Das Verzögerungsglied verzögert das eingehende Signal um 7 ns (t delay = 7 ns). Die<br />
Taktfrequenz f clk ist 125 MHz.<br />
1. Ergänzen Sie das folgende Zeitdiagramm. Sind alle Zeitbedingungen eingehalten<br />
worden? Wenn nein, was wäre die maximal erlaubte Verzögerungszeit des<br />
Verzögerungsglieds?<br />
Das Verzögerungsglied wird nun durch folgende Gatterschaltung ersetzt. Die<br />
Verzögerungszeiten der einzelnen Gatter ist t OR,AND,NOT = 1 ns.<br />
2. Bestimmen Sie den längsten und kürzesten Pfad durch die Schaltung. Können mit<br />
der Schaltung die geforderten Zeitbedingungen eingehalten werden?<br />
- 95 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Übungsaufgaben<br />
3. Verändern Sie die Gatterschaltung so, dass bei Einhaltung der Funktion die<br />
Zeitbedingung eingehalten wird.<br />
4. Sollte bei einer Gatterschaltung eine Maßnahme nach 3. nicht möglich sein, welche<br />
weiteren Möglichkeiten gibt es, um die Zeitbedingung einzuhalten?<br />
Übung 12: Pipelining vs. Parallel Processing<br />
Gegeben sei folgende sequentielle Logikschaltung:<br />
clk<br />
Die Gatterlaufzeiten sind gegeben mit:<br />
t AND,OR,NOT = 1 ns<br />
t XOR = 2 ns<br />
Die FlipFlops haben folgende Eigenschaften:<br />
t setup = 1 ns t hold = 2 ns t c2q = 0,5 ns<br />
1. Zeichnen Sie den kürzesten und den längsten Pfad in die Schaltung ein.<br />
2. Mit welcher maximalen Frequenz kann diese Schaltung betrieben werden?<br />
Geben Sie die Latenz und den maximalen Durchsatz der Schaltung an.<br />
3. Welche Möglichkeiten haben Sie, den Durchsatz zu erhöhen, sofern keine weitere<br />
Optimierung der Logik möglich ist? Zeigen Sie beide Möglichkeiten auf und beurteilen<br />
Sie hinsichtlich Komplexität, Durchsatz und Latenz<br />
Zusatzaufgabe:<br />
4. Entwickeln Sie eine geeignete Steuerlogik zum Betrieb zweier paralleler<br />
Verarbeitungseinheiten<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 96 -
Übungsaufgaben<br />
MOSFET Transistor<br />
Übung 13: Strom- / Spannungskennlinie<br />
Ein NMOS-Transistor mit<br />
2<br />
′ = 128 V und U t<br />
0, 4V<br />
K μA<br />
I D<br />
= 150μA<br />
. Weiter seien W = 0,4μm<br />
und L = 0,25μm<br />
.<br />
1. Ermitteln Sie den aktuellen Arbeitsbereich des Transistors.<br />
2. Berechnen Sie U<br />
DS<br />
.<br />
Übung 14: MOS-Transistoren in einer Schaltung<br />
Folgende Zusammenschaltung zweier Transistoren sei gegeben:<br />
= arbeitet bei U GS<br />
= 2V<br />
und<br />
U DD<br />
U1<br />
N1<br />
U o<br />
U2<br />
N2<br />
gnd<br />
Alle Transistorkenngrößen seien gleich ( U = U = U 0,<br />
2U<br />
, β β = β<br />
t1 t 2 t<br />
=<br />
DD<br />
1<br />
= 2<br />
)<br />
1. Ermitteln Sie die „Spannungsbedingungen“ für die beiden ‚aktiven’ Arbeitsbereiche<br />
(linear und Sättigung) der Transistoren.<br />
Übung 15: Laden von Kapazitäten über MOS-Transistoren<br />
Auf welchen Maximalwert kann die Kapazität durch einen NMOS-Transistor ( U<br />
geladen werden?<br />
tN<br />
= 0 , 2⋅U<br />
)<br />
DD<br />
V DD<br />
V DD<br />
nMOS<br />
C<br />
U C<br />
GND<br />
- 97 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Übungsaufgaben<br />
CMOS Inverter / CMOS Logik<br />
Übung 16: Dynamische Verlustleistung<br />
Gegeben ist folgende Transistorschaltung eines CMOS Inverters:<br />
60 ps 60 ps<br />
Clk<br />
U E<br />
α 0→1 = 0,5<br />
T = 1 µs 2T = 2 µs<br />
Das Eingangssignal U E hat einen nicht idealen Verlauf, die Schalthäufigkeit α 0→1 beträgt 0,5.<br />
Die zu treibende Last am Ausgang C L sei 7 fF. V DD sei 2,5V.<br />
1. Zeichnen Sie die zur dynamischen Verlustleistung beitragenden Ströme für die Fälle<br />
steigender und fallender Flanken am Eingang ein.<br />
2. Geben Sie eine Formel zur Berechnung der gesamten dynamischen Verlustleistung<br />
an.<br />
3. Gegeben sei folgender idealisierter Verlauf des Quellenstroms i DD (t). Welcher Anteil<br />
der gesamten dynamischen Verlustleistung ist der Lastkapazität C L zuzurechnen und<br />
welcher Anteil entsteht aufgrund von Querströmen?<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 98 -
Übungsaufgaben<br />
Übung 17: Schaltgeschwindigkeit CMOS Inverter<br />
Gegeben sei folgender CMOS Inverter:<br />
V DD<br />
pMOS<br />
U E<br />
nMOS<br />
C L<br />
Die Technologieparameter sind:<br />
K' p = 43 µA/V² K' n = 129 µA/V²<br />
V DD = 2,0 V<br />
U Tp = -0,4 V<br />
U Tn = 0,4 V<br />
L min = W min = 0,25 µm<br />
C L = 10 fF<br />
GND<br />
Die Kanallänge und -weite beider Transistoren soll zunächst minimal sein<br />
1. Bestimmen Sie die Anstiegs- und Abfallzeiten des Inverters (0,1 bis 0,9V DD ). Die<br />
Flanken des Eingangssignals sollen dabei ideal sein.<br />
2. Zeichnen Sie schematisch den Verlauf der Ausgangsspannung U A ein. Markieren Sie<br />
die Anstiegs-/Abfallzeit.<br />
3. Wie müssten die Abmessungen der Transistoren verändert werden, um ein<br />
symmetrisches Schaltverhalten zu erreichen?<br />
4. Welchen Einfluss hat V DD auf die Schaltgeschwindigkeit? Wie verändert sich dabei<br />
die dynamische Verlustleistung?<br />
Übung 18: CMOS Logik<br />
Entwickeln Sie für folgende Logikgleichung eine entsprechende CMOS Transistorschaltung:<br />
Y = ( A + B)<br />
+ ( C + D)<br />
- 99 - <strong>Digitale</strong> <strong>Schaltungen</strong> 1
Übungsaufgaben<br />
Speicher<br />
Übung 19: Organisation von DRAM-Speichern<br />
Für einen 16-Bit Prozessor stehen Ihnen 32-MBit DRAM-Bausteine (8Mx4) zur Verfügung.<br />
1. Wieviele Speicherbausteine benötigen Sie mindestens zum Aufbau eines geeigneten<br />
Hauptspeichers?<br />
2. Wieviele Adressleitungen und Speicherbausteine benötigen Sie für einen 32 MByte<br />
Speicher?<br />
3. Geben Sie eine sinnvolle Aufteilung zur Reihen- und Spaltenadressierung eines<br />
DRAM-Speicherbausteines an!<br />
Übung 20: Einfluss der Bitleitungskapazität bei DRAM<br />
Eine DRAM Speicherzelle besitzt eine Speicherkapazität C S und eine Kapazität der Bitleitung<br />
C BL . Die Bitleitung sei mit V DD /2 vorgeladen.<br />
BL<br />
WL<br />
V DD<br />
X<br />
C S<br />
C BL<br />
1. Wie verändert sich die Spannung des Bitleitungs-Kondensators beim Auslesen des<br />
Speicherinhalts. Unterscheiden Sie zwischen einer gespeicherten „0“ und „1“.<br />
Neben der Spannungsänderung beim Auslesen, können auch Störspannungen (z.B.<br />
Alphastrahlung, Schwankungen in der Versorgungsspannung, Signalkopplungen) das<br />
Potential der Bitleitung beeinflussen.<br />
2. Bestimmen Sie jeweils das Verhältnis von C BL /C S , das bei Versorgungsspannungen<br />
von 5V, 3,3V, 2,5V, 1,8V und 1V gerade noch eine einwandfreie Funktion garantiert.<br />
Gehen Sie davon aus, dass ein Signal von mindestens 50mV gerade noch sicher<br />
ausgelesen werden kann. Die Störspannungen können sich dabei auf 150mV<br />
aufsummieren.<br />
<strong>Digitale</strong> <strong>Schaltungen</strong> 1 - 100 -