Praxisintegrierter Studiengang Mechatronik/Automatisierung Digitaltechnik Lerneinheit 1 Dr. Volker Lohweg 004448-001031/Februar 2006 Diese Lerneinheit wurde für den Studiengang Elektrotechnik der Fachhochschule Südwestfalen entwickelt und wird im praxisintegrierten Studium der Fachhochschule Bielefeld eingesetzt. Stand: Februar 2006 © 2004 Fachhochschule Südwestfalen Das Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere das Recht der Vervielfältigung und Verbreitung sowie der Übersetzung und des Nachdrucks, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder ein anderes Verfahren) ohne schriftliche Genehmigung der Fachhochschule Südwestfalen reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Redaktion: Institut für Verbundstudien der Fachhochschulen Nordrhein-Westfalens – IfV NRW Im Alten Holz 131, D-58093 Hagen Telefon +49 (0) 2331 9330–901, Telefax +49 (0) 2331 9330–903 Internet: http://www.ifv-nrw.de/ Inhaltsverzeichnis 3 Inhaltsverzeichnis Geleitwort zur er sten Lern einheit .............................................................................................. 5 1. Grundlag en.............................................................................................................. 6 1.1 Einführ ung ..................................................................................................................... .6 1.2 Trends in der Di gitaltec hnik ..........................................................................................11 1.3 Moderne Entwur fsmethod en ........................................................................................16 1.4 Einige Begriffe bi närer Si gnale .....................................................................................19 2 Zahlensyst eme ...................................................................................................... 21 2.1 Einführ ung ....................................................................................................................2 1 2.2 Zahlenkonvertierung ...................................................................................................23 2.2.1 Konvertierung ganzer Zahlen .....................................................................................24 2.2.2 Konvertierung gebrochener Zahlen ............................................................................26 2.3 Darstellung negativ er Zahl en........................................................................................28 2.3.1 Darstellung negativer Zahlen im Dezimals ystem..........................................................28 2.3.2 Darstellung negativer Zahl en im Binär system ..............................................................32 2.4 Addition und Subtrakti on im Binär system .....................................................................37 2.5 Multiplikation v on Binärza hlen ......................................................................................40 2.6 Division von Bi närzahl en ..............................................................................................41 3 Boolesche Funktionen und Schaltalge bra........................................................... 43 3.1 Begriffsbes timmung ......................................................................................................43 3.2 Das Operationssystem de r Booleschen Algebra ..........................................................44 3.3 Normalformen der B ooleschen Al gebra........................................................................47 3.4 Symbolische Funktionsbesch reibung durch Gatter ......................................................52 3.4.1 Elementar typen ............................................................................................................53 3.4.2 Abgeleitete Ga tterty pen................................................................................................55 3.4.3 Technische Logikr ealisier ung .......................................................................................59 3.4.3.1 Pegelzuor dnung ...........................................................................................................61 3.5 Elementare Logi kschalt ungen ...................................................................................... 63 3.5.1 Einfache Schal tnetze....................................................................................................63 3.5.2 NAND-Form en..............................................................................................................67 3.5.3 NOR-Form en ................................................................................................................69 Inhaltsverzeichnis 4 4 Minimierung Boolesch er Funkti onen................................................................... 73 4.1 Graphische Ve rfahren.................................................................................................. 76 4.1.1 Karnaugh- Plan ............................................................................................................. 76 4.1.1.1 Minimierungsvorschrift en nach Karn augh .................................................................... 80 4.1.1.2 Systematische Mi nimierun g ......................................................................................... 85 4.2 Algorithmische Verfahren............................................................................................. 91 4.2.1 Quine-McCluske y-Verfahr en........................................................................................ 91 4.2.2 Heuristische Verfahren ................................................................................................ 96 5 Lösungen der Übunge n .......................................................................................102 5.1 Umgang mit Z ahlen .................................................................................................... 102 5.2 Boolesche Algebra ..................................................................................................... 103 5.3 Einfache Logische Schaltunge n................................................................................. 105 5.4 Minimierung Boolesc her Funk tionen .......................................................................... 107 Literaturverzeichnis ....................................................................................................................... 114 Abbildungsverz eichnis.......................................................................................................... .......... 115 Verzeichnis wich tiger Begriffe ................................................................................................. ....... 117 Geleitwort zur ersten Lerneinheit 5 Geleitwort zur ersten Lerneinheit Die erste Lerneinheit stellt das Basiswissen der Digitaltechnik zur Verfügung. Dabei wurden, neben der Darstellung der Einsatzgebiete und der heute üblichen Entwurfsmethoden, auf die stufenweise ma- thematische Beschreibung Boolescher Funktionen und deren Eigen- schaften geachtet. Im Anschluss an einzelne Absc hnitte werden Übungsaufgaben ge- stellt, die Sie unbedingt vor der weiteren Bearbeitung des Stoffes lösen sollten. Darüber hinaus wird dringend empfohlen, die zahlrei- chen Beispiele nachzuvollziehen. Sie dienen zur Vertiefung der Lehrinhalte. Die Lösungen der Übungsaufgaben finden Sie am Ende der Lernein- heit. Literaturangaben sind ebenso am Ende der Lerneinheit angege- ben. Dabei wurde Wert darauf gele gt, neben einführender Literatur, auch vertiefende und weiterführende anzugeben. Im Gegenzug wur- de allerdings darauf verzichtet, Originalaufsätze im Einzelnen zu zitieren. 1 Grundlagen 6 1. Grundlagen 1.1 Einführung Der Entwurf digitaler Systeme spielt in der heutigen Zeit bei der Entwicklung elektronischer Produkte eine entscheidende Rolle. Man denke nur an die Produkte unseres täglichen Lebens: Kaffeemaschine mit Display, programmierbarer Herd, Waschmaschine, Digitaluhren, Telefone, Digital-TV, DVD- und CD-Spieler, Digitalkamera, etc. Diese Liste ließe sich beliebig lang fortsetzen. Aber auch im indus- triellen Umfeld sind digitale Systeme nicht mehr wegzudenken. Zu nennen sind hier: Steuerungen und Regelungen, Messwerterfas- sungssysteme, digitale Bildverarbeitungssysteme in der Automatisie- rung, Automotivkomponenten wie Airbag, elektronische Zündung, Boardcomputer, usw. Ebenso findet man Komponenten im Avionik- bereich wie Autopilot, Steuerungen, Boardentertainment, und vieles mehr. Zu guter Letzt dürfen natür lich nicht die typischen Vertreter digitaler Systeme vergessen werden: Computer und Netzwerke aller Art. Sie sehen, dass digitale Systeme überall in unserem privaten und beruflichen Einzug geha lten haben. Sie sind nicht mehr wegzuden- ken. Damit Sie diese Systeme entwickeln, betreuen und in Betrieb neh- men können, ist es notwendig, dass Sie sich zunächst mit den Grund- lagen der Digitaltechnik vertraut machen. Zu diesem Zweck sind die entsprechenden Lerneinheiten gescha ffen, die Sie Schritt für Schritt in das interessante Thema einführen . Nach Durcharbeiten der Lern- einheiten werden Sie in der Lage sein – digitale Systeme einzuordnen, – mit verschiedenen Zahlensystemen und Codes zu operieren, – mit Hilfe der Booleschen Algebra binäre Gleichungen zu be- rechnen, – einfache logische Schaltungen zu verstehen, – einfache logische Schaltungen zu optimieren, – Kombinatorische Schaltungen zu generieren und zu optimieren, – Sequentielle Schaltungen zu ge nerieren und zu optimieren, – Zähler, Teiler und Rechenscha ltungen zu entwickeln und – Endliche Automaten (Finite State Machines) zu verstehen, – Programmierbare Logikbausteine zu verstehen. 1.1 Einführung 7 Zunächst soll nun der Begriff System im Kontext der Digitaltechnik beschrieben werden. Ein System ( vgl. Abbildung 1. 1) verarbeitet Signale, d. h. eine Anzahl von Eingangssignalen wird vom System derart beeinflusst, so dass eine der Aufgabenstellung angepasste Menge von Ausgangssignalen entsteht. System Eingangssignale Ausgangssignale Abbildung 1.1: Zum Systembegriff. Der Begriff „digital“ kommt ursprünglich aus dem Lateinischen und bedeutet soviel wie „Finger“ oder „Zehe“. Im übertragenen Sinne ist damit gemeint, dass eine endliche – mit den Fingern (Zehen?) ab- zählbare Zahlenmenge – ausgewertet wird. Die Begriffe Signal , digi- tal und Digitales System wollen wir näher untersuchen. Definition 1.1 (Signal) Ein Signal ist eine zeitlich ve ränderliche physikalische Größe, die eine auf sie abgebildete Information trägt. Eine physikalische Größe kann z. B. eine elektrische Spannung, Temperatur, Druck, Strömung, usw. sein Sowohl der Wert der physikalisch en Größe als auch ihr zeitlicher Verlauf kann kontinuierlich oder diskontinuierlich sein. Man unter- scheidet deshalb zwischen vier möglichen Kombinationen eines Sig- nals (wertkontinuierlich – zeitkontin uierlich, wertdiskret – zeitkonti- nuierlich, wertkontinuierlich – zeitdis kret, wertdiskret – zeitdiskret). Diese Kombinationen lassen sich gr aphisch für eine physikalische Größe x ( t ), bzw. x ( k ) darstellen. Hierbei stellt t den kontinuierlichen und k den diskreten Zeitparameter dar. Die physikalische Größe – beispielsweise eine Amplitude – kann selbst ebenso als kontinuier- lich ( x (•)) oder diskret (( x [•])) aufgefasst werden (vgl. Abbildung 1.2). Analoge Signale können innerhalb ihrer theoretischen Grenzen be- liebig viele unterschiedliche Amp litudenwerte annehmen. Die Auflö- sung ist – ebenso theoretisch – unendlich groß. In der Praxis sind der Auflösung natürlich Grenzen gesetzt. Diese entstehen im Wesentli- chen durch verschiedene Formen von Rauschen. Man kann sich das reale Signal als eine Überlagerung eines idealen Signals mit einer Rauschquelle denken. Durch die Rauschquelle sind die Amplituden des idealen Signals nur endlich genau unterscheidbar. 1 Grundlagen 8 Abbildung 1.2: Klassifikation verschiedener Signale. Digitale Signale hingegen bestehen aus einer endlichen Anzahl von Amplitudenwerten. Definition 1.2 (digitales Signal) Ein digitales Signal kann innerhalb bestimmter Gren- zen endlich viele, definierte Werte annehmen. In Ab- hängigkeit der Werteanzahl spricht man von binären (zweiwertigen, dualen), tern ären (dreiwertigen), und weiteren, Digitalsignalen. Die Wertestufen sind abzähl- bar endlich. Wir könnten in einem Gedankenexperiment die Werteanzahlkette nach Definition 1.2 weiterführen, bis wir wieder bei einer unendli- chen Anzahl von Amplitudenwerten angekommen sind – und würden wieder im makroskopischen Sinne ein analoges Signal erhalten. Sie sehen also, dass die Definition 1. 2 technisch zu interpretieren ist. Andernfalls könnte z. B. die Aufladekurve eines Kondensators auch als digitales Signal nach Abbildung 1.2 interpretiert werden, da na- türlich nur diskrete Ladungsportione n (Elektronen) in den Kondensa- tor gelangen! t x ( t ) x : kontinuierlich t : kontinuierlich k x ( k ) x : kontinuierlich k : diskret k x[ k ] x : diskret k : diskret t x [ t ] x : diskret t : kontinuierlich analog digital 1.1 Einführung 9 Der Begriff digital soll noch etwas praktischer gefasst werden. Ver- gleicht man die Uhrzeit auf einer Analog- und einer Digitaluhr, ist der Unterschied sofort sichtbar, bzw. erklärbar. Die Genauigkeit mit der eine Analoguhr abgelesen werden kann, ist theoretisch unbegrenzt hoch. Hingegen ist die Genauigkeit einer Digitaluhr auf die niederwertigste Stelle [das letzte Digit, Digit (engl.): Ziffer, Zahl, Stelle] der Anzeige begrenzt. Dieser Sachverhalt gilt natürlich auch für elektrische Messinstrumente. Bei ihnen sind jedoch weitere stochastische und sy stematische Fehler zu berück- sichtigen. Man denke in diesem Zusammenhang beispielsweise an eine Spannungs-, Strom- oder Te mperaturmessung mit einem analo- gen Messgerät oder einer digitalen Ausführung. In vielen Fällen ist die digitale Variante vorzuziehen, da gemessene Daten z. B. gespei- chert werden können (vgl. Abbildung 1.3). Abbildung 1.3: Digital-Messgerät (Voltcraft VC 222). Nachdem wir die Begriffe Signal und digital anschaulich geklärt haben, widmen wir uns dem Begriff digitales System Definition 1.3 (Digitales System) Ein Digitales System ist ein nach bestimmten Prinzipien aus Komponenten zusammengesetztes Ganzes, das eine bestimmte Aufgabe erfüllt. Es verarbeitet und beein- flusst wert- und zeitdiskrete Informationen (Signale, Daten), die ihm über Eingänge zugeführt werden. Aus- wirkungen der Verarbeitung werden durch Ausgänge abgeführt. An dieser Stelle sollen die Vor- und Nachteile digitaler Verarbeitung von Informationen zusammengefasst werden. 1 Grundlagen 10 Vorteile der Digitaltechnik Geringe Anforderungen an die Bauteiltoleranzen, wenn sie in- nerhalb einer relativ breit gef ächerten Spezifikation liegen. Die digitale Signal- und Informations verarbeitung ist äußerst robust und günstig herstellbar. Die gesamte Signaldynamik steht für ein digitales Signal zur Verfügung. Nachteile der Digitaltechnik Der Aufwand der Informations verarbeitung und -übertragung ist wesentlich höher als bei analogen Verfahren. Die technologi- sche Komplexität ist erheblich höher; sie wird jedoch nach dem heutigen Stand der Technik beherrscht. Mit dem Einzug immer leistungsfähi gerer Schaltkreise sind typische analoge Verfahren weitgehend zurück gedrängt worden. Es ist aber aus heutiger Sicht darauf hinzuweisen, dass weiterhin analoge Ver- fahren im Hochfrequenzbereich üb lich und notwendig sind. Die ana- loge Technik bleibt unverzicht bar zur Kommunikation mit der Au- ßenwelt. Es ist ein Trend auszumachen, dass insbesondere die Kom- bination von analogen und digitalen Verfahren auf einem Chip in Zukunft verstärkt auftreten wird (Mobilfunkbereich). Dennoch ist die Digitaltechnik, wie bereits am Anfang dieses Kapitels ausgeführt, aus unserem Leben nicht mehr wegzudenken. In der modernen digitalen Scha ltungstechnik verwendet man fast ausschließlich binäre Digitalsigna le – und zwar aus vorwiegend technischen Gründen. Das mathematische Handwerkszeug ist die Boolesche Algebra, die eng verwandt mit der so genannten philoso- phischen Aussagelogik ist. Die B oolesche Algebra werden wir für den Entwurf digitaler Syst eme intensiv verwenden. Historischer Überblick Die Geschichte der Digitaltechnik hängt eng mit der Geschichte der Mathematik bzw. des Rechne ns zusammen. Die nachfolgen- de Tabelle 1.1 gibt einen kurzen – sicherlich nicht ganz voll- ständigen – Überblick. 1.2 Trends in der Digitaltechnik 11 Tabelle 1.1: Historischer Überblick um das Jahr 0 Abacus erfindet in China eine Rechenmaschine 1614 John Napier – Logarithmentafeln, Napier’s bone für die Multiplikation 1642 Blaise Pascal – mechanische Rechenmaschine für Addition und Subtraktion um 1710 G. W. Leibnitz – Einführung des binären Zahlen- systems; Bau einer Rechenmaschine 1823 Charles Babbage – Difference Machine, automa- tischer Rechner 1848 George Boole – The Calculus of Logic 1886 Hermann Holerith – Lochkarte als Datensprei- cher 1906 Lee de Forest, Robert von Lieben – Erfindung der Elektronenröhre 1938 Konrad Zuse – Elektromechanischer Rechner Z1 (Gleitkommaarithmetik) 1939 – 1947 Georg Stibitz – BELL I – V, erste Rechner für komplexe Zahlen, Stibitz-Code (Drei-Excess- Code) 1944 John von Neumann – Electronic Discrete Variab- le Automatic Computer, von-Neumann-Prinzip 1944 Howard Aiken – Grossrechner Mark I –IV erst elektromechanisch, dann Röhrentechnik in Har- vard-Architektur 1946 J. Mauchly und J. P. Eckert – ENIAC (Electronic Numerical Integrator And Computer), Großrech- ner in Röhrentechnik 1948 W. H. Brattain, J. Bardeen und W. B. Shockley – Erfindung des Transistors 1949 J. Kilby – Patent auf integrierte Schaltung 1951 – 1971 Kommerzialisierung der Computertechnik 1971 – heute Großrechner, Mikroprozessoren, programmier- bare Logikbausteine 1.2 Trends in der Digitaltechnik An dieser Stelle soll kurz auf die Trends in der Digitaltechnik einge- gangen werden, da sich gerade dieses Lehrgebiet als äußerst dyna- misch hinsichtlich neuer Technologien erweist. In den nächsten Jah- ren sind im Bereich Mikroelektroni k und damit insbesondere für die 1 Grundlagen 12 Digitaltechnik größere Veränderunge n für Ingenieure und Techniker zu erwarten. Wie lässt sich diese Annahme begründen? Für die Entwicklung der Mikroelektronik gilt die Moore’sche Ver- mutung , die manchmal auch fälschlicherweise als Moore’sches Ge- setz ( Moore’s Law ) bezeichnet wird. Es handelt sich jedoch nicht um ein Gesetz im mathematischen Sinne, sondern um eine Annahme bzw. Prognose, die wegen ihrer langen Gültigkeit einen gesetzhaften Charakter besitzt. Moore’sche Vermutung „Der Integrationsgrad integrie rter Schaltkreise verdoppelt sich jeweils innerhalb von 18 M onaten. [G. Moore, 1965]“ Diese Vermutung, formuliert im Jahre 1965 von einem der Gründer des Unternehmens Intel (Halbleiterhersteller) , erweist sich auch heute noch als zutreffend. Aus diesem Grund konnten Technologien bislang nahezu ohne begrenzende Faktoren entwickeln. Als ein- schränkende Faktoren lassen sich im Wesentlichen nur Kosten, Ent- wurfsprobleme und komplexe Applikationsfelder ausmachen. Aus heutiger Sicht lässt sich die Gültigkeit der Moore’schen Vermutung bis etwa zu Jahr 2015 festschreiben, da keine blockierenden Effekte bislang auszumachen sind. Eine Analyse und Trendbeschreibung ist in der alle 2 Jahre aktualisierten Fassung der International Technolo- gy Roadmap for Semiconductors ( ITRS ), die von der Semiconductor Industry Association ( SIA ), publiziert wird, nachzulesen. Die Publi- kation wird auch kurz als Silicon Roadmap bezeichnet. In der Aus- gabe des Jahres 2003 wird davon ausgegangen, dass die CMOS- Technologie ( CMOS: C omplementary M etal O xide S emiconductor ) weiterhin der Schrittmacher in der technologischen Entwicklung sein wird. Schätzungen gehen davon aus, dass bis zum Jahre 2015 ca. eine Milliarde (10 9 ) Transistoren auf einem Chip realisierbar werden. Aufgrund der hohen Regularität wird diese hohe Transistoranzahl zuerst im Applikationsbereich der Speicherchips realisiert werden, aber auch Mikroprozessoren und applikationsspezifische Schaltkreise ( ASIC: Application Specific Integrated Circuit ) werden folgen. Die Abbildung 1.4 zeigt den Trend der Entwicklung bei Speicher-, Prozessor- und applikationsspezifischen Schaltkreisen. Als Maß wird die Anzahl der Transistoren pro Chip verwendet. Es ist sichtbar, dass zwischen den unterschiedlichen Sc haltkreisen, bezogen auf einen bestimmten Zeitpunkt, der Integrati onsgrad jeweils um eine Größen- ordnung sinkt. Dieser Sachverhalt hängt mit der Tatsache zusammen, dass die Anzahl der zu nutzenden Transistoren in etwa umgekehrt proportional zur Regularität des jeweiligen Schaltkreises ist. Wie Sie sehen, stieg und steigt die Integrationsdichte kontinuierlich. Ver- schiedene Integrationsdichten habe n im Laufe der Jahre unterschied- liche Bezeichnungen bekommen. Diese werden wie folgt klassifi- ziert: 1.2 Trends in der Digitaltechnik 13 Integrationsdichte SSI: Small Scale Integration (ca. 1970er Jahre), MSI: Medium Scale Integration (ca. ab Mitte 1970er Jahre), LSI: Large Scale Integration (ca. Ende 1970er Jahre), VLSI: Very Large Scale Integration (ca. ab 1980), ULSI: Ultra Large Scale Integration (ca. ab 1985). Abbildung 1.4: Entwicklung des Integrationsgrades bei Speicher-, Mikroprozessor- und applikationsspezifischen Schaltkreisen. Die technologischen Voraussetzungen zur Entwicklung komplexer Schaltungen sind für die nächste Deka de also offensichtlich gegeben. An dieser Stelle muss jedoch die Frage gestellt werden: Wie können derartige Bausteine konfiguriert, bzw. programmiert werden? Wie ersichtlich ist, vollzog sich die Entwicklung zu immer komple- xeren Schaltkreisen kontinuierlich. Damit entstand ein Problem in der Anwendung von Bausteinen. Während einfache logische Gatter- bausteine, z. B. mehrere UND-, bzw. ODER-Gatter sich noch „von Hand“ einfach zusammenschalten ließen, war dieses für komplexere Arithmetikbausteine bereits nicht me hr der Fall. Mit der Steigerung der Integrationsdichte stieg bereits Anfang der 1990er Jahre der Leis- tungsumfang der integrierten Scha ltungen beträchtlich an. Mit der Steigerung der Komplexität der Bausteine ging automatisch die Einsatzbreite zurück, da die Baus teine auf spezifische Applikationen ausgerichtet wurden. Man denke beispielsweise an spezielle Mikro- controller für die Automobilindustrie. Dieser Widerspruch zwischen komplexen Schaltungen wird Mikroelektronik Dilemma bezeichnet. 1 Grundlagen 14 Mikroelektronik Dilemma Die hohen Kosten für den Entwurf und die Fertigung integrierter Schaltkreise ( Integrated Circuit, IC ) können ausschließlich über die verkauften Stückzahlen amortisiert werden. Mit der Steige- rung der Integrationsdichte, bz w. des Funktionsumfangs integ- rierter Schaltkreise sinkt jedoch deren mögliche Einsatzbreite. Zur prinzipiellen Lösung dieses D ilemmas wurden zwei unterschied- liche Wege eingeschlagen. Ein erster Ansatz bestand darin pro- grammierbare Universalprozessoren einzusetzen, um diese für ver- schiedene Applikationen mittels g eeigneter Software zu programmie- ren. Dieser für viele Applikati on gangbare Weg wurde und wird weiterhin erfolgreich beschritten. Auch wurden schon frühzeitig spezielle Prozessoren entworfen, die in der Lage waren bestimmte algorithmische Teilaspekte effektiv zu bearbeiten. Diese werden häufig als Digitale Signalprozessoren ( DSP ) bezeichnet. Problematisch erweisen sich Universalprozessoren immer dann, wenn hohe Ansprüche an die Verarbeitungsgeschwindigkeit gelegt werden müssen oder die Datenmengen derart groß sind, dass diese in vorgegebenen Zeits pannen nicht abgearbeitet werden können. Inte- ressanterweise benötigen oft reguläre Algorithmen wie Filterungen, Spektraltransformationen, usw. gerade große Rechenleistungen, wenn sie auf zweidimensionale Daten, z. B. Bilder angesetzt werden. Die Regularität kann wiederum genutzt werden um spezifische Schaltkreise zu entwickeln, die im Wesentlichen auf regulären Struk- turen basieren. Es werden in diesem Zusammenhang applikationsspezifische integ- rierten Schaltkreise – kurz ASICs genannt – genutzt. Diese sind für eine große Anzahl von Applikatione n konfigurierbar. Üblicherweise spricht man auch hier von einer so genannten Programmierbarkeit der Bausteine. Es werden jedoc h die Verbindungsstrukturen zwi- schen den Transistoren „nur“ konfiguriert. Die Programmierung erfolgt gemeinhin mit speziellen Programmiersprachen auf die im nächsten Abschnitt kurz eingegangen werden soll. Ebenso wird ein zweiter Ansatz verwendet, bei dem standardisierte Elementarschal- tungen (Gatter, Flipflops, usw.) mit einander verschaltet werden. Man spricht in diesem Zusammenhang von maskenprogrammierba- ren ASICs . Auch hier wird die Individualisierung durch eine Pro- grammierung von Verbindungen erreicht. Sie sehen, bei ASICs läuft im Gegensatz zum Universalmikroprozessor kein Programmcode ab, es handelt sich vielmehr um eine konfigurierbare Schaltung. Zum Entwurf dieser Schaltkreise stehen verschiedene Programmierwerk- zeuge ( C omputer A ided D esign Tools, CAD Tools ) zur Verfügung. Ein Entwurf „von Hand“ ist heute nicht mehr denkbar. Perspekti- visch werden sich ASICs und neuere Prozessorstrukturen im Sinne von System-on-programmable-Chip ( SOPC ) nähern. 1.2 Trends in der Digitaltechnik 15 Auf ein weiteres Teilproblem bei dem Entwurf von applikationsspe- zifischen Schaltkreisen muss noch eingegangen werden. Wie bereits erwähnt, steigt die Anzahl der integrierbaren Transistoren jährlich an. Hieraus lässt sich ein Anstieg der Chipkomplexität von ca. 58 % pro Jahr ableiten. Dem gegenüber steht die Tatsache, dass die Ent- wurfsproduktivität nur um ca. 21 % pro Jahr ansteigt. Dieses bedeu- tet, dass die Transistoren mit größerer Zeitdauer nicht mehr effektiv verschaltet werden können, wenn es nicht gelingt innerhalb des nächsten Jahrzehnts die Entwurfspr oduktivität drastisch zu steigern. Die Abbildung 1.5 stellt den Zusammenhang dar. Diese Lücke zwi- schen Chipkomplexität und En twurfsproduktivität wird als Design Gap bezeichnet. Dieser wird zur Zeit noch dadurch verschärft, dass die Leistungsfähigkeit der zum Entwurf nötigen Rechner weniger schnell wächst, als sie für den Systementwurf komplexer Schaltun- gen nötig wäre. Man versucht, diesen Sachverhalt abzumindern, indem vermehrt neue methodische Ansätze gewählt werden. Dazu gehört unter anderem: – Vermehrte Nutzung von vorentwo rfenen Schaltungsteilen (Inter- lectual Properties, IPs), die selbst entwickelt sind oder zugekauft werden. – Verwendung von Makrobibliotheken, die nach und nach aufge- baut werden (Design Reuse). – Einsatz Programmiersprachen, die eine noch höhere Abstrakti- onsebene zulassen. Abbildung 1.5: Anstieg der Chip komplexität und Entwurfsproduktivi- tät bei applikationsspezifischen integrierten Schalt- kreisen. 1 Grundlagen 16 1.3 Moderne Entwurfsmethoden Die heutigen Entwurfsmethoden u nd Werkzeuge des Ingenieurs unterscheiden sich grundsätzlich von denen früherer Jahre. Während man noch vor einigen Jahren Te ilschaltungen – im Wesentlichen hardware-orientiert – detailliert entwarf, diese mit Hilfe von intuiti- ven Schaltkreis- und Platinenoptim ierungen industrialisierte und danach alle Teilschaltungen zusammenführte, werden nunmehr selbst kleine Schaltungen ausschlie ßlich am Rechner entworfen, simuliert und optimiert. Die erster e Entwurfsmethode wird gemein- hin als Bottom-Up-Entwurf bezeichnet, die letztere nennt man Top- Down-Entwurf Bottom-Up-Entwurf Bei dieser analysierenden Entwurfsart wird, ausgehend von üb- erschaubaren Einheiten (Bauteile, Komponenten, etc.), aus ver- schiedenen möglichen Varianten ein Entwurf herausgegriffen und weiter verwendet. Nachteilig erweist sich oft, dass das glo- bale Ziel nicht immer erreicht wird, da die vorherigen Schritte die Zielereichung nicht mehr zulassen. Meist erfolgt die Wahl des nächsten Entwurfsschrittes nach intuitiven Gesichtspunkten. Top-Down-Entwurf Beim Top-Down-Entwurf wird von einem abstrakten Ausgangs- punkt, einer globalen Spezifikation, der Entwurf Schritt für Schritt konkretisiert. Hierdurch können alle notwendigen Bear- beitungsschritte jeweils im Vorhinein spezifiziert und damit festgelegt werden. Zudem besteht oft die Möglichkeit einer Pa- rallelisierung verschiedener Arbeitsschritte und eine Wieder- verwendbarkeit verschiedener Kom ponenten, da in der Regel die Übergänge zu den nächstfolgenden Schritten genau spezifiziert werden können. Meist verwendet man in der Praxis ergebnisbedingt eine Mischform beider Ansätze, da oftmals Deta illösungen für bestimmte Problemlö- sungen vorliegen. Diese fließen dann in den Top-Down-Entwurf mit ein. Diese Vorgehensweise wird häufig als Meet-In-The-Middle- oder Jo-Jo-Ansatz (benannt nach dem bekannten Spielzeug) bezeich- net. Anschaulich lässt sich der Entwurfsprozess mit Hilfe des Y-Charts von Gajski und Kuhn beschreiben ( vgl. Abbildung 1.6). Dieser stellt den Übergang zwischen Bottom-Up- und Top-Down-Entwurf gra- phisch dar und zeigt die Übergänge zwischen Verhalten ( Behaviour ), Struktur ( Structure ) und Geometrie ( Geometry ) einer mikroelektroni- schen Schaltung. 1.3 Moderne Entwurfsmethoden 17 System Algorithmen Register-Transfer Logik Struktur Verhalten Geometrie Speicher, CPU Subsysteme Funktionsblöcke Gatter, Flip Flops Transistoren Platine, Chip Cluster Makrozelle Standardzelle Maske Systemspezifikation Algorithmen Register-Transfer Boolesche Funktionen Differentialgleichungen Abbildung 1.6: Y-Chart nach Gajski und Kuhn. Nachfolgend sind die heute üblichen Entwurfsschritte für integrierte Schaltungen aufgeführt. Spezifikation. Unter der Spezifikation ist die formale Beschreibung der funktionellen, zeitlic hen und physikalischen Eigenschaften eines Entwurfs einer integrierten Scha ltung zu verstehen. Dabei werden neben den auszuführenden Funktionen auch bestimmte Eigenschaf- ten wie die Anzahl der Ein- und Ausgänge, maximale Taktrate, Ge- häuseform, usw. festgelegt. Synthese. Der Entwurfsprozess verläuft schrittweise bis zur unters- ten Abstraktionsebene, also der Schaltungsebene. Diese liefert die Programmierdaten. Da der Entwurf von einer Ebene zur nächst nied- rigeren eine Abbildung einer b estimmten Verhaltensbeschreibung auf eine Elementstruktur (z. B. ve rschaltete Transistoren) darstellt, führt dieser Prozess zur Synthetisierung des gesamten Entwurfs. Die entstehenden Ergebnisse werden als Implementierung bezeichnet. Je nach Abstraktionsebene wird auch von Logiksynthese oder Register- Transfer-Synthese gesprochen. Validierung und Simulation. Mit Hilfe von Simulationsverfahren wird bei dem Übergang von einer Ab straktionsebene zur nächst nied- rigeren überprüft, inwieweit die Vorgaben der Spezifikation erfüllt sind. Die Untersuchung wird mit einem Simulationsmodell und einer Testumgebung ( Testbench ) durchgeführt. Die Testumgebung erzeugt einerseits Testsimuli mit denen ei n Schaltungsmodell angeregt wird, andererseits werden die Signale des Modells erfasst. Der automati- sche Vergleich der Ist- und Sollreaktionen des Modells gibt Auskunft darüber, ob die Spezifikation auf ei ner entsprechenden Abstraktions- 1 Grundlagen 18 ebene eingehalten wurde. So kann auf jeder Ebene das Modell über- prüft werden. Verifikation. Die Überprüfung der Implementierung erfolgt wieder- um in der Simulation. Aus der Implementierung wird ein Modell extrahiert, das an Stelle des ursprünglichen Modells in die Testum- gebung eingebaut wird. Fällt die Ve rifikation positiv aus, kann mit dem Entwurf fortgefahren werden , andernfalls sind entsprechende Modifikationen notwendig. Optimierung. In der Regel können mehrere gleichwertige Synthese- varianten von den heutigen CAD- Werkzeugen generiert werden, so dass aus ihnen nach verschiedenen Optimierungsstrategien mehrere Iterationen erwachsen können. Diese können sich auf die Optimie- rung des Zeitverhalten, der mi nimalen Anzahl von Schaltkreisele- menten, usw. beziehen. Generierung. Den letzten Schritt ste llt die Erzeugung von Pro- grammierdaten dar. Hier wird der Bezug zwischen einem Struktur- modell nach einer Spezifikation und der physikalischen Ebene der integrierten Schaltung hergestellt. Der Entwurf integrierter Schalt ungen erfolgt ausschließlich rechner- basierend mit entsprechenden Softwa re-Werkzeugen. Dabei ist heute ein technischer Stand erreicht, der es erlaubt, zwischen mehreren gleichwertigen Werkzeugen auszuwählen. Zudem ist ein Grad der Standardisierung vorhanden, der einen technologischen Übergang von Werkzeugen und Schaltkreisen möglich macht. Derartige Pro- grammpakete begleiten den Entwe rfer während des gesamten De- signs und führen ihn durch sämtliche hierarchische Ebenen des Ent- wurfs. Daneben werden Programmb ibliotheken, Hilfswerkzeuge und Möglichkeiten einer effektiven Datenverwaltung zur Verfügung ge- stellt. Es haben sich zwei grundsätzlic he Möglichkeiten zur Entwurfsein- gabe durchgesetzt, die von den ve rfügbaren Werkzeugen unterstützt werden. Hardware-Besch reibungssprachen, wie VHDL ( Very High Speed Integrated Circuit Ha rdware Description Language ) oder Verilog ( Verification of Logic Hardware Description Language ) erlauben eine Beschreibung von Ve rhalten und Struktur auf allen Hierarchieebenen des Entwurfs. M ittlerweile kommen die oft in ihrer Darstellungsweise anschaulicheren Werkzeuge für die graphische Schaltungseingabe immer mehr zum Einsatz. Die Nachteile der In- kompatibilität zwischen den text-basierenden und graphischen Werkzeugen konnten in der Verga ngenheit deutlich reduziert wer- den. Die verfügbaren Synthesewerkzeuge erzeugen gute Ergebnisse ab dem Entwurf auf Register-Tra nsfer-Ebene. Es kann davon ausge- gangen werden, dass der Entwurf auf der algorithmischen Ebene nach heutigem Stand der Technik noch nicht optimal und effektiv 1.4 Einige Begriffe binärer Signale 19 nutzbar ist. Es sind jedoch vielfach fertige Schaltungsteile verfügbar. Es kann weiterhin davon ausgega ngen werden, dass eine Synthese auf Systemebene zurzeit noch Gegenstand der Forschung ist. Des- halb ist es Aufgabe des Entwerfers die geeigneten Synthesewerkzeu- ge und -strategien sowie die Optimierungsziele festzulegen. Ein bedeutender Bestandteil aller Entwurfssysteme sind die Werk- zeuge zur Simulation und Verifi kation von Modellen. Üblicherweise sind Modellbibliotheken vorhanden oder einbindbar. Mit ihrer Hilfe kann neben der Validierung auch das Verhalten der Schaltung auf bestimmte physikalische Eigenschaften hin untersucht werden (Tem- peraturverhalten, Verlustleistung, usw.). Darüber hinaus können Testumgebungen mit geeigneten Optimierungsstrategien realisiert werden. Weiterhin stehen bei a llen Werkzeugen Schnittstellen zur Verfügung, die eine Kommunikati on und den Datenaustausch zwi- schen einzelnen Werkzeugen zulassen. 1.4 Einige Begriffe binärer Signale Im folgenden Abschnitt wollen wi r uns nun konkret den Grundlagen der Digitaltechnik widmen. Das am häufigsten verwendete Si gnal ist das so genannte Binärsig- nal. Das Signal kann nur zwei definierte Werte annehmen – die Symbole 0 oder 1. Wir wollen uns an dieser Stelle zunächst nur mit einigen Begriffen auseinandersetzen. Das technische Festlegen der oben genannten Werte wird an dieser Stelle bewusst noch nicht voll- zogen. Das Binärsignal kann eine Information durch zwei Zustände darstellen. Da es sich um eine zweiwertige Zahl handelt, wird sie im englischen Sprachgebrauch als binary digit – oder kurz als bit ( bi na- ry digit ) bezeichnet. Mit n Binärsignalen lassen sich N = 2 n Werte darstellen. Umgekehrt benötigt man für N Werte ld( N ) bit. Dabei stellt ld( ◦ ) den Logarithmus Dualis , also den Logarithmus zur Basis 2 dar. Für verschiedene Gruppen von Binärsignalen sind unterschiedli- che Begriffe gebräuchlich. Diese werden hier kurz aufgeschrieben. – Vierergruppe: Nibble – Achtergruppe: Byte – 16-Gruppe: Word – 32-Gruppe: Long Word Weiterhin fasst man Binärsignale bezüglich ihrer Bedeutung zu Strukturen oder Gruppen zusammen. Die wichtigsten Begriffe sind: Bündel ( ) M x x x x ,..., , , 3 2 1 Ein Bündel von Binärsignalen erhä lt man, wenn alle Signale für die ein schwacher innerer Zusammenhang besteht, zusammen- fasst werden (Fahrkartenautomat: Geldeinwurf erfolgt, Fahrkarte 1 Grundlagen 20 gedruckt, Papiermenge ausreich end, Druckerfarbe vorhanden, ....). Vektor ( ) M x x x x ,..., , , 3 2 1 Ein Vektor von Binärsignalen er hält man, wenn alle Signale für die ein starker innerer Zusammenhang besteht, zusammenge- fasst werden. Vektoren enthalten Komponenten, die linear oder abschnittsweise linear vorliegen bz w. angeordnet sind (Balken- anzeige, Bildzeilen, usw.). Matrix Eine Matrix von Binärsignalen erhält man, wenn alle Signale, für die ein starker innerer Zusammenhang besteht, zweidimensi- onal oder dreidimensional zusammengefasst werden. Matrizen enthalten Komponenten, die linear oder abschnittsweise linear vorliegen bzw. angeordnet sind (Bilder, Displays, Matrix- Druckköpfe, Farbdisplays mit 2 M Farbwerten, usw.).