04.11.2013 Aufrufe

Digitale Schaltungen 1

Digitale Schaltungen 1

Digitale Schaltungen 1

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!