304
Johann Siegl . Herbert EicheIe Einsatz und Anwendung von CAE-Entwurfswerkzeugen Slgnalverarbeitung ASIC-Chip

Einsatz undAnwendung von CAE-Entwurfswerkzeugen · Oberbergiff ASIC: Anwendungsspezifisch Integrierte Schaltungen. Der Entwurf von Systemfunktionen und deren Realisierung als ASIC

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • Johann Siegl . Herbert EicheIe

    Einsatz und Anwendung vonCAE-Entwurfswerkzeugen

    Slgnalverarbeitung

    ASIC-Chip

  • Mikroelektronik

    BandS

    HerausgeberProf. Dr. Hermann MaderProf. Dr, Johann SiegtDr.dng. Lothar Lerach

    In dieser Reihe sind bisher erschienen:

    Band 1: H. Reichl, HybridintegrationBand 2: Kaiser/Hauptmann/Schäfer: Halbleitertechnologie - Stand und EntwicklungstendenzenBand 3: Auer, Programmierbare Logik-ICBand 5: Ahlers/Waldmann, Mikroelektronische SensorenBand 6: Auer, PLD-HandbuchBand 7: Fritz, Elektrooptischer Test hochintegrierter CMOS-Schaltungen

  • Prof. Dr. J. SieglProf. Dr. H. Eichele

    Hardwareentwicklungmit ASICEinsatz und Anwendung vonCAE-Entwurfswerkzeugen

    Hüthig Buch Verlag Heidelberg

  • Prof. Dr. Johann Siegliehrt an der Georg-Simon-Ohm Fachhochschule, Nürnberg, und ist Leiter desZAM-Anwenderzentrums, Nürnberg.

    Prof. Dr. Herbert Eichele lehrt an der Georg-Simon-Ohm Fachhochschule, Nürnberg.

    G6:mTj - Gir(~i}n .. ,';,'~':e~chhoGh~;;~~·~ ~:"

    rJümb8fgl8i ibiioU'j

    ?:ß 20oV{r81-

    CIP-Titelaufnahme der Deutschen Bibliothek

    Hardwareentwicklung mit ASIC : Einsatz und Anwendung vonCAE-Entwurfswerkzeugen I J. Siegi; H. Eicheie. - Heidelberg: Hüthig, 1990

    (Mikroelektronik; Bd. 8)ISBN 3-7785-1990-5

    NE: Siegl, Johann; Eicheie, Herbert; GT

    © 1990Hüthig Buch Verlag GmbH HeidelbergPrinted in Germany

  • Vorwort

    Die Hardwareentwicklung ist im Umbruch begriffen. Schaltungen wurden bislang undwerden auch heute noch vielfach durch Versuchsschaltungen in Standard-Technikaufgebaut. An Einzelmodulen erfolgt deren Verifikation sowie die Optimierung einerdurch die Spezifikation vorgegebenen Funktion. Der Fortschritt der Halbleitertechnikund der Mikroelektronik erlaubt es Systemfunktionen auf einem Siliziumplättchenanwendungsspezifisch zu integrieren. Neue Techniken, wie PLD-Design,Gate-Array-Design, Cell-Design, Full-Custom-Design haben sich etabliert. Dieseneuen Hardware-Realisierungstechniken werden zusammengefaßt unter demOberbergiff ASIC: Anwendungsspezifisch Integrierte Schaltungen.

    Der Entwurf von Systemfunktionen und deren Realisierung als ASIC auf Siliziumerfordert eine systematische Entwurfsmethodik. Wegen der Komplexität und aufgrundder relativ hohen Realisierungskosten ist bei integrierten Techniken eine Verifikationund Optimierung von Schaltungsfunktionen durch "Probieren" ausgeschlossen. EinDesign muß sehr gründlich durchdacht (spezifiziert), verifiziert und optimiert werden,bevor es realisiert wird. Moderne Entwurfswerkzeuge auf CAE-Workstationsermöglichen eine systematische Entwurfs- und Verifikationsmethodik.

    Das Ziel dieses Buches ist es, in die systematische Entwurfsmethodik und in dieEntwurfsverfahren zur Hardwareentwicklung mit ASIC einzuführen. Dies ist vorallem auch eine Einführung in die dafür entwickelten Entwurfswerkzeuge aufCAE-Workstations. Natürlich müssen die neuen .Möglichkeiten der Hardware-entwicklung schon jetzt in der Ingenieurausbildung berücksichtigt und gelehrtwerden. Das vorliegende Werk ist deshalb als Lehr- und Ubungsbuch konzipiert. Eswendet sich an Studierende von hardwareorientierten Studiengängen und anEntwickler in der Praxis, die sich in neue Hardwareentwicklungsmethodeneinarbeiten wollen.

    Der gesamte Kurs besteht aus drei Modulen. In Kurs A erfolgt eine systematischeEinführung in den Entwurf Anwendungsspezifisch Integrierter Schaltungen. DerSchwerpunkt liegt hier im Systementwurf und in der Einführung in dieEntwurfswerkzeuge. Der Kurs B ist ein erster praktischer Vertiefungsteil. Anhandüberschaubarer Beispiele werden die heute gängigen Entwurfswerkzeuge geübt bis zurErstellung einer simulierten Netzliste. In Kurs C, dem zweiten Vertiefungsteil wirdein Projektbeispiel behandelt. Der Entwurf wird aufbereitet bis zur Erstellung einesgeometrischen Layouts. Es ist dann auch die Postsimulation unter Berücksichtigungdes Layouts möglich. Zum Abschluß wird ein Hardwaretest eines realisiertenBausteins durchgeführt.

  • Die Lehrinhalte der drei Kurse werden in den Kapiteln 1 bis 6 erarbeitet. DieFragen am Ende eines jeden Kapitels dienen der Erfolgskontrolle, so wie sie in einermündlichen Prüfung gestellt werden könnten. Das Übungsprogramm ist in Kapitel 7beschrieben.

    Das Kursprogramm, die Beispiele und der Übungsentwurf in Anhang G wurden mitFörderung der Europäischen Gemeinschaft im Rahmen des COMETI- Programmserstellt, entwickelt und praktisch erprobt; dem Förderträger gilt unser Dank. ImRahmen zahlreicher Diskussionsrunden erhielten wir wertvolle Anregungen vonunseren Projektpartnern Herrn Prof. Dr. Doherty, Queens University, Belfast undHerrn Dr. Anderson, University of Ulster, Nordirland. Dank sagen möchten wirauch dem Verlag für die rasche Umsetzung des Manuskripts in Buchform. UnserDank gilt ferner Herrn Kollegen Prof. Dr. Bleicher, FH München, für seineAnregungen. Ganz besonders clanken möchten wir Herrn Dipl.-Ing. (FH) Haspelfür sein Engagement und für seine Unterstützung bei der Ausarbeitung vonBeispielen. Herr Haspel hat sehr viele wertvolle Details zur Einführung in dieEntwurfswerkzeuge beigetragen.

    Nürnberg, im Juni 1990

  • Inhaltsverzeichnis ..... Seite

    1.

    2.2.12.22.2.12.2.22.2.32.32.42.52.5.12.5.22.5.32.5.4

    3.3.13.23.33.3.13.3.23.3.33.3.43.3.53.43.53.5.13.5.23.5.2.13.5.33.5.43.63.6.13.6.23.6.33.6.43.6.4.13.6.4.23.6.4.33.6.4.4

    Einführung (Prof. Dr. Siegl) .Literatur zu Kap. 1. . . . . . . . . .

    Zum Systementwurf (Prof. Dr. Siegl) . . .Aufgabenbeschreibung durch ein PflichtenheftAnsätze zur Entwurfsautomatisierung. . . .Aufgaben und Ziele der EntwurfsautomatisierungHierarchies Konzept und Funktionsspezifikation von Teilfunktionen .Einige Grundsätze zum Systementwurf . . . . . . .Die Entwurfsebenen und deren Darstellungsarten . . .Logiksynthese von endlichen Zustandsautomaten (FSM)Höhere Abstraktionsebenen von digitalen FunktionenZur Registertransfer-Beschreibung . . . . .Zur algorithmischen Beschreibung . . . . .Hardwarebeschreibungssprachen . . . . . .Zum Schaltungsentwurf mit CAE-WorkstationsLiteratur zu Kap. 2 . ", . . . . . . . .

    Zur Entwurfsrealisierung (Prof. Dr . Eichele)CMOS-Technologie. . . . . . . . . .CMOS-Gate-Arrays . . . . . . . . .Einflüsse der Technologie auf den SchaltungsentwurfGatterlaufzeiten . . . . . . . .Einflußgrößen auf die Gatterlaufzeit . . . . . .Zeitabschätzungen . . . . . . . . . . . . .Setup-/Hold-Zeiten. . . . . . . . . . . .Maximale Kippfrequenz I maximale Taktfrequenz.Entwurfsgrundsätze . . . . . . . .Testprobleme integrierter Schaltungen .Einführung . . . . . . . . . . .Physikalische Fehler und FehlermodelleFehlermodell auf Gatterebene . . . .Elementare Testkonzepte . . . . . .Testgenerierung . . . . . .Entwurf testbarer Schaltungen.Einführung. . . .Testbarkeitsmaße. .Ad-hoc-Methoden.Scan-Techniken . .Scan-Path-Design. . . . . . .Level-Sesitive-Scan-Design (LSSD)Multiplexer-Scan-Strukturen .Boundary-Scan-Techniken. . . .

    . 110

    1212161618242528444450516268

    717177828284868890919696969799

    101111111111115120122124125126

  • 3.73.7.13.7.23.7.3

    4.4.14.24.34.4

    5.5.15.25.35.4

    6.6.16.26.36.46.5

    7.

    Selbsttest von Schaltungen (BIST) . . . . . . . . . 131Testdatengenerierung . . . . . . . . . . . . . . 131Auswertung der Schaltungsreaktion (pattern compression) 135Implementierung von BIST. . . . . . . . . 136Literatur zu Kap. 3 . . . . . . . . . . . 139

    Entwurfswerkzeuge auf CAE-Workstations (Prof. Dr. Siegl) 143Grafische Schaltplaneingabe . . . . . . . . 146Schaltungsverifikation durch Simulation. . . . 152Entwurfswerkzeuge für programmierbare Logikbausteine . 163Werkzeuge zur Fehlersimulation und Timing-Verifikation 173Literatur zu Kap. 4 . . . . . . . . . . . . . . 179

    Simulationsmethoden für die Schaltungsverifikation (Prof. Dr. Siegl) 181Zur Methodik der Circuit-Simulation. 181Zur Methodik der Logiksimulation . 199Mixed-Mode-Simulation . . 203Strukturabhängige Simulation. . . 204Literatur zu Kap. 5 . . . . . . 208

    Werkzeuge zur Layouterstellung (Prof. Dr. Eichele) 210Floorplanning und Plazierung. . . . . . . . . 210Verdrahtung . . . . . . . . . . . . . . . 215Vorbereitung des Gate-Array Layouts auf Mentor Graphics Workst. 219Durchführung und Backannotation auf Mentor Graphics Workstations 221Ubergabe der Datenbasis an Halbleiterhersteller . 223Literatur zu Kap. 6 224

    Übungsprogramm . 226

    Anhang:

    A

    B

    C

    D

    E

    F

    G

    Einführung in CAE-Workstations .

    Schaltplaneingabe mit NETED und SYMED .

    Logiksimulation mit QUICKSIM

    Circuit-Simulation mit MSPICE

    Fehlersimulation mit QUICKFAULT.

    Erstellung eines Gate-Array-Layouts mit AUTOGATE

    Entwicklungsschritte für Gate-Array-Design mit Beispiel.

    234

    239

    254

    260

    265

    268

    281

  • 1. Einführung

    Die Mikroelektronik weist eine sehr stürmische Entwicklung auf. Am Anfang derElektronikentwicklung stand die Röhre als Verstärkerelement. Wegen des relativvoluminösen Aufbaus hatten damit bestückte Elektronikgeräte meist weniger als 10Verstärker:elemente. Seit der Erfindung des Transistors 1948 und insbesondere nachEinführung des integrierbaren planaren Transistors etwa im Jahre 1960 ist dieKomplexität elektronischer Systeme ebenso rasch angestiegen wie der Inte-grationsgrad mikroelektronischer Bausteine. Vor 25 Jahren bestand ein Elektronik-Produkt zumeist aus weniger als 1000 Transistorelementen. 40 Jahre nach Erfindungdes Transistors sind auf dem Markt eingeführte Elektroniksysteme beispielsweiseaufgebaut aus 16- oder 32-Bit-Mikrorechnern und 256K-RAM-Speichern, so daßdiese Systeme mehr als 10 Millionen Transistorfunktionen enthalten. Die Erhöhungder Komplexität von Elektroniksystemen ist noch nicht abgeschlossen. Heute ist der4M-Bit-Speicherbaustein bereits in Stückzahlen verfügbar; die Entwicklung zeigtBild 1.1. Derzeitige Forschungsanstrengungen konzentrieren sich auf den64M:- Bit-Speicherbaustein mit Strukturgeometrien im Zehntel-um-Bereich.

    Transistorfunktionen

    pro Baustein

    104

    Speicher(RAM)

    .........

    1960 1965 1970Jahr der Einführung

    1975 1980 1985 1990 1995

    Bild 1.1: Entwicklung der Schaltungsintegration

  • 2 1. Einführung

    Parallel zu dem technologischen Fortschritt in den letzten 20 Jahren hat sich dieFähigkeit des Entwurfs-Ingenieurs, derart komplexe Systeme zu entwerfen, ebensoweiterentwickelt. Der Bereich Computer-Aided-Engineering in der Elektronik-entwicklung ist heute ein sehr rasch sich ausweitendes Gebiet. Die CAE-Werkzeugeermöglichen dem Entwurfs-Ingenieur die Lösung außerordentlich komplexerDesignaufgaben in relativ kurzer Zeit. Als Folge davon ergeben sich immer kürzerwerdende Produktlebensdauern mit kürzeren Entwicklungszeiten. DerEntwurfs-Ingenieur löst seine Entwicklungsaufgaben zunehmend mit geeignetenCAE-Werkzeugen an einer CAE-Workstation (Bild 1.2). Diese CAE-Werkzeugesind für ihn ein virtuelles Labor mit sehr vielfältigen Test- und Verifikations-möglichkeiten während der Entstehung des Entwurfs. Neben den Entwurfswerkzeugenwerden technologieabhängige Bauteilbibliotheken benötigt. Die Entwurfswerkzeugeselbst lassen sich einteilen in Werkzeuge zur Festlegung der Schaltungsstruktur;Werkzeuge zur Schaltungsverifikation (Simulation); Werkzeuge zur Layouterstellung.

    Technologieabhängige Bauteilbi bliotheken:Analog-Bibi.:

    z.B.:Spice_Lib

    Standard-Digital-Bibl.:

    z.B.:TTL_LibCMOS_LibECL_Lib

    ASIC-Bibl.:

    z.B.:

    Mikron-M ILIB-SerieTI-TAAC-SerieAMS-GB-SerieFujitsu-UHB-Serie

    Entwurfswerkzeuge:

    SchaltplaneingabeSymbolgenerierung

    I----l Simulation:Circuit-SimulatorLogiksimulatorFehler-SimulatorTiming-VerifierStimulus-Generator

    Layout-Erstellung:

    Leiterplatten (PCB)Gate-ArrayStandard-CellFuli-Custom

    Dokumentation

    Bild 1.2: Entwurfsunterstützung durch Entwurfswerkzeuge auf CAE-Workstations

  • 1. Einführung 3

    Die Entwicklung von Elektroniksystemen vollzieht sich in mehreren Phasen. Bild 1.3zeigt die Entwicklungsphasen eines Elektronik-Produktes von der Produktidee überdie Systemkonzeption, den Subsystementwurf, die technologische Realisierung, dieAufbautechnik, die Testphase bis schließlich zur Systemintegrationsphase. Für dieSystementwurfsphase, die Subsystementwicklungsphase und die zugehörigeLayouterstellung zur Vorbereitung der technologischen Realisierung gibt es heutegeeignete Entwurfswerkzeuge an integrierten Entwurfssystemen. Dabei werdenbeispielsweise bei der Schaltungsverifikation durch Simulation bereits dieTestvektoren verwendet, wie sie hinterher der Tester für den Hardwaretest einesFunktionsmoduls benötigt.

    Marketg. , System-X

    Subsystem- A Layout- jO Foundry>/1 entwurf erstellung •entwurf '

    I

    ISystem ! Schaltung Layout:Design : entwurf erstellg.

    Systemkonze t ! Schaltungs- Layout-festlegen idee entwurfSystem- Schaltungs- Layout-

    ! konstruktion entwurf verifikation

    I Partition.Spezifik. Schaltungs- Modul-I festlegen verifikation konstruktion,

    Techno!.

    .. Test derkundenspezDaten

    Produktion

    System Modultestintegration

    Modul- . Statische Sondenintegration Messungen Gehaeuset.

    System- DynamischeSestueck.

    verifikation Messungen Loeten

    Musterprfg.

    Bild 1.3: Entwurfsphasen bei der Entwicklung eines Elektroniksystems

  • 4 1. Einführung

    Ergebnis des Systementwurfs in der ersten Entwicklungsphase ist die Aufteilung desSystems in Funktions-Module und deren genaue Spezifikation. Ausgehend von derSpezifikation werden in der zweiten Phase die Funktions-Module unterBerücksichtigung der technologischen Realisierung entwickelt. Die prinzipielleVorgehensweise zeigt Bild 1.4. Der Schaltungsentwickler kann auf bekannte undbewährte Funktionsbausteine, die ihm die ausgewählte Schaltkreistechnik zurVerfügung stellt zurückgreifen. Durch geeignetes Zusammenfügen von Funktions-bausteinen löst er die gestellte Entwicklungsaufgabe. Dies ist die eigentlicheIngenieuraufgabe, wo Kreativität, Ideenreichtum und hinreichende Kenntnisse derSchaltkreistechnik erforderlich sind. Ziel ist es, durch eine umfassendeEntwurfsverifikation ein Redesign zu vermeiden. Vor der technologischenRealisierung sollte daher der Entwurf soweit wie möglich verifiziert werden.

    > Bauelementeauswählen

    > Ver.uch.-~~ill'~\'t.r~

    > lIerso~.~~nn gen

    ~ggk~I~~~-!lns~eYlen

    > ~~~~~r~n> Ergebnls.e

    protokoll.

    > BauelementeModelle

    > Sohaltungeingeben

    > lIersora.SpqnnungenundElng.-Slgnaledefinieren

    > Simulationdurohführ.

    > Ergebnisseprotokoll.

    ol. __.. __..__..__..__~~ ..__.. _

    Technologie

    -+.-

    I1\I

    §,I.~ I'0

    ~I

    Bild 1.4: Prinzipielle Vergehensweise bei der Hardwareentwicklung vonFunktionsbausteinen

  • 1. Einführung 5

    Die verschiedenen Realisierungstechniken eines Elektroniksystems sind in Bild 1.5zusammengefaßt. .Man unterscheidet grundsätzlich die Softwarelösung von derHardwarelösung. Bei der Softwarelösung sind als Bausteine Standardprozessoren,Signalprozessoren, Speicherbausteine und Peripheriebausteine verfügbar. DieseBausteine sind allesamt vorgefertigt. Die anwenderspezifische Lösung liegt in demfür das jeweilige Subsystem zu entwickelnden Programm für den Mikroprozessor.

    SUBSYSTEMREALISIERUNG

    IVollkunden-spezif.Entwickl.

    AuchKompon.Dimension.(z.B. R,)

    Trans.kunden-spezifisch

    Vorentw.vondigit.undanalogenZellen

    Vorgefert. AlleZell- Geometr.Layouts und

    Maskenkunden-spezifisch

    Verbind.undZellplaz.kunden-spezifisch

    'IVorfertig.flächen-haftangeordn.Gatter

    1Vorgefert.Chip,nurMetallis.MaskenImProzess

    IVerbind.sindkunden-spezifisch

    Anwendungs-spezifisclie

    IC

    --------------Semi-Kunden KundenIC IC~ ~

    Gate- Standard- Voll-Arrays Zell-IC Kunden-

    IC

    Anwender-programmier-bare Logik

    PLD

    IVorfertig.flächen-haftangeordn.GatterundVerbind.

    IVollständ.vorgefert.

    Hardware-Lösung

    AuftrennenvonVerbind.istkunden-spezifisch

    Vollständigvorgefertigt

    KeinerleiÄnderungenmöglich

    Standardschaltkreise

    Vollständigvorgefertigt

    ÄnderungendurchProgrammmöglich

    Standardschaltkreise

    Software-Lösung

    IMikroprozessoren Standard-IC

    und

    ~~Standard- Signal- Analog TTL CMOS ECLProzessoren Prozessoren IC IC IC IC

    Bild 1.5: Übersicht der möglichen Hardware-Realisierungstechniken

  • 61. Einführung

    Bei der Hardwarelösung unterscheidet man die Realisierung mit Standard-IC unddie Realisierung mit Anwendungsspezifisch Integrierten Bausteinen (AS~C:Gate-Arrays; Standard-Zell-IC; Voll-Kunden-IC). Die Standard-Ie lassen sichwiederum in Analog-IC (z.B. Operationsverstärker; Analog-Digitalwandl.er; ~.~.)und Digital-IC einteilen. Bei Digital-IC stehen heute mehrere Schaltkreistamilien(u.a. TTL; CMOS; EeL) mit einer großen Vielfalt von Funktionsbaustcmen zurVerfügung. Die Anwendungsspezifisch Integrierten IC werden in Semi-Ku:nd~n-:-ICund Kunden-IC eingeteilt. Allgemein sind ASIC-Schaltkrcise wegen vlelfa~~gerVorteile sehr stark im Kommen. Als Beispiel für einen AnwendungsspezIfischIntegrierten Baustein ist in Bild 1.6 ein Gate-Array dargestellt. Die Siliziumfläc~ebesteht aus Input/Output-Zellen am Rand außen und den Basiszell-Reihen. DIeBasiszell-Reihen enthalten Transistor-Arrays. Durch anwendungsspezifischeVerbindung der Transistorelemente in den vorgefertigten Basiszell-Reihen entstehenverschiedene Funktionsschaltungen bzw. Makrozellen (z.B. NAND; D-Flipflop;Schieberegister; u.a.). Die Verdrahtungsinformation für die Makrozellen wird auseiner prozeßspezifischen Makrozellen-Bibliothek entnommen. In den zwischen denBasiszell-Reihen befindlichen Verdrahtungskanälen können die Makrozellenanwendungsspezifisch miteinander verbunden werden. Üblich bei Gate-Arrays sindzwei anwendungsspezifische metallische Verdrahtungsebenen.

    Im Gegensatz zu Gate-Arrays sind die Standardzellen-IC nicht vorgefertigt. DieStandardzell-Bibliothek enthält vorentwickelte Makrozellen mit allen für denEntwurf notwendigen Daten (u.a. Symbole, Simulationsdaten, Geometrien). DieMakrozellen haben eine einheitliche Höhe sind aber hinsichtlich der Anordnungverschieblieh. Dies ermöglicht einen flexibleren Einsatz und damit einen höherenAusnutz?ngsgrad ,der Siliziumfläche. Bei der Herstellung sind jedoch meh~Verarbeitungsschritte und auch mehr Maskensätze erforderlich. Während beiFullcustom-Ba~steinen keine Vorfertigung vorliegt, ist am unteren Ende derASIC-Skala bei den PLD alles vorgefertigt.

    Die programmier~aren Logikbausteine (PLD) enthalten zwei hintereinander-gescl!altete Verknupfu,ngsfelder, die als logische UND- bzw. ODER- Eben~bez~lChnet werdei:. DIe Verknüpfungsfelder sind programmierbar, ähnlich wie bels~.C1cherprog~.amnllerbar,en Bausteinen (PROM bzw. EPROM). Auf der Grundlaget~CI~~t r~gu~arer TransIs~orstrukturen ist damit eine Realisierung kombinatorischerdi g E.IDoglIch, In Verbindung mit Registerblöcken deren Ausgänge u.a. auch auf

    SIel It~1llgangsbe~C~laltung zurückgeführt werden kÖnnen sind auch sequentiellec ia ungen realisierba-, '

    Je mehr kundenspezif's 1 M k . .Redesi B 'k 1 Cie as en erforderlich sind umso kostspieliger 1St eingn. ei undenspezif 1'" d . s

    außerordentlich kosts '1' IS~ I I.ntegnerten Schaltkreistechniken sind Re es~gnmacht daher d E' pie ig un zeitraubend, Der Entwurf von ASIC-Schaltkrelsen

    en insatz von CAE-Tools zwingend notwendig.

  • 1. Einführung 7

    p Iop I010 I00 010 I00 00 0HC-OB Array V

    I I , I ," I Cp

    0 I ,I I

    0 I I nOVcc I I 0 -0 I I GNDo0 I I 0

    I I

    0 0/"

  • 81. Einführung

    Die Vorteile der Anwendungsspezifisch Integrierten Bausteine sind u. a.:

    * geringere Anzahl der Bestückungselemente; wenige~ Verbin~ungselemente;geringerer Flächenbedarf; geringeres Bauvolumen emes Gerates.

    * höhere Signalverarbeitungsgeschwindigkeit; geringere Leistungsaufnahme.

    * höhere Zuverlässigkeit; komplexere Funktionsteile automatisch testbar;Kontrollfunktionen leicht realisierbar.

    * Know-how Schutz.

    Zur Veranschaulichung des Flächenbedarfs: Mit Standard-IC können je nachKomplexität der ausgewählten IC ca. 2000 Gatterfunktionen auf einer Europakarte(Größe: 100 mm * 160 mm) U1~tergebracht werde~l: Diese Za~ll mag verde~tliche~,welch hohe Packungsdichten bei Anwendungsspezifisch Integnerten Baustemen mitbis zu 100.000 Gattetäquivalenten erzielt werden können.

    Der wirtschaftliche Einsatz der verschiedenen anwendungsspezifisch integriertenTechniken orientiert sich nach Stückzahl und Preis. Je höher der Grad derVorfertigung, um so schlechter ist der Ausnutzungsgrad der Siliziumfläche. .Jegeringer der Grad der Vorfertigung, um so höher sind die Entwicklungskosten. E1?eUbersicht über den Einsatzbereich der unterschiedlichen Entwurfsverfahren zeigt BIld1.7. In Tabelle 1.1 sind wichtige Merkmale der ASIC-Entwurfsverfahrenzusammengestellt.

    Ein komplexes Elektroniksystem besteht oftmals aus verschiedenenFunktionsmodulen, die in unterschiedlichen Entwurfsverfahren realisiert werden. DieFunktionsmodule werden dann meist auf Leiterplatten aufgebracht und verbunden(u.a. Multichip-on-Board). So kann beispielsweise ein Sensorsignal mit einemAnwendungspezifisch Integrierten Baustein aufbereitet und nachfolgend mit einemStandard-Mikroprozessorsystem verarbeitet werden. Es ist deshalb notwendig, daßder Entwurfs-Ingenieur möglichst alle in Bild 1.5 skizzierten Realisierungstechnikenund deren jeweilige Entwurfstechnik beherrscht, um zu einer optimalenProduktlösung zu kommen. Der Entwurfs-Ingenieur muß als "long thin man"Kenntnisse der Schaltkreistechnologie, der Schaltungstechnik, der Aufbautechnik, derSystemtechnik und der Prüftechnik mitbringen. Wichtig für ihn ist das Beherrschender Entwurfswerkzeuge auf den CAE-Workstations. Jeder Elektronik-Entwicklersollte um die Möglichkeiten der CAE-Tools für seinen Bereich wissen damit er~elbst ~inschätzen kann, wo U1:~1 in welcher Form eine Unterstützung für il~n möglich1St. DIe nachstehenden Ausfuhrungen sollen in die Entwurfsmethodik und denEinsatz von CAE-Tools für den Entwurf Anwendungsspezifisch IntegrierterSchaltungen einführen.

  • 1. Einführung 9

    Tabelle 1.1: Zum Vergleich der unterschiedlichen Entwurfsverfahren

    PLD Gate-Array Standard-Cell Full-Costum

    Gate- 100 ...5000 1000 ...50000 10000...200000 >200000Komplexität

    Entwicklungs- 1..3 4..20 5..50 1 bis 2zeit Wochen Wochen Wochen Jahre

    Wirtschaftl.Einsatzbereich bis

    ca. 1000 ca. 10000bis bis > ca.in Stückzahlen ca. 1000 10000 ca. 100000 100000

    pro Jahrca.

    Maskensätze 0 2 mehrere viele

    Standard-IC

    ca. 10000 - - - .

    ca. 200°c~ . 1OOOOÖ-----------------------Stückzahl

    \\\

    \ Vollkunden-IC\ --~:-------------------

  • 10

    Literatur zu Kapitel 1

    1. Einführung

    /1/ E. Göttler, L. Haschik, E. Hörbst, G. Sandweg et al.: Entwicklung vonkundenspezifischen Schaltungen. Elektronik, Hefte 19,20,21,22, 1984

    /2/ A. Glasser, D. W. Dobberpuhl: The Design and Analysis of VLSI Circuits.Addison-Wesley, 1985

    /3/ E. Hörbst, M. Nett, H. Schwärtzel: VENUS-Entwurf von VLSI-Schaltungen.Springer, 1986

    /4/ B. Höfflinger (Hrsg.): Großintegration. Oldenbourg, 1979

    /5/ 1. Millman: Microelectronics. McGraw Hill, 1979

    /6/ H. Weinerth: Schlüsseltechnologie Mikroelektronik. Elektronik;Beitragsserie: 26 Beiträge im Jahr 1989

    /7/ Sonderheft ASIC's; Elektronik 1988

    /8/ W. Rosenstiel, R. Camposano: Entwurf hochintegrierter MOS-Schaltungen.Springer, 1989

    /9/ ~. Rappaport: A Designers Guide to Semicustoms Design. DeutscheUbersetzung: Erfahrungen mit Gate-Arrays. te-wi-Verlag, 1985

  • 1. Einführung

    Fragen zu Kapitel 1

    11

    F1.1 Nennen Sie die Standard-Entwurfswerkzeuge auf einerCAE-Workstation! In welcher Entwurfsphase werden sie eingesetzt?

    F1.2 Welche Entwurfsphasen werden bei der Entwicklung einesElektroniksystems durchlaufen?

    F1.3 Beschreiben Sie die Vorgehensweise bei der Hardwareentwicklung vonSchaltungsmodulen!

    F1.4 Welche Möglichkeiten zur Realisierung einer Logikfunktion sind heuteStand der Technik und wodurch unterscheiden sie sich?

    F1. 5 Skizzieren Sie den prinzipiellen Aufbau eines Gate-Array-Bausteins!

    F1. 6 Nennen Sie die Vorteile für den Einsatz von ASICI

    F1. 7 Nennen Sie den Einsatzbereich von PLD bzw. von Gate-Arrays!

    F1.8 Wodurch unterscheidet sich ein Standard-Zell-Design von einernGate-Array-Design?

  • 2. Zum Systementwurf

    2.1 Aufgabenbeschreibung durch ein Pflichtenheft

    Der prinzipielle Aufbau eines Elektroniksystems ist in Bild 2.1 dargestellt. Einderartiges System besteht aus folgenden Funktionseinheiten:

    * Sensoren bzw. Empfänger* Aktoren bzw. Sender* AID und DIA-Wandler* Digitalteil* Analogteil* Schnittstellenmodule* Energieversorgung

    I / II I

    Ancloq-:

    ~ / Energieversorgung ~vercrbeitunq I

    ~ I - - Ä/D - - - -1 Sensoren ~-~~-------~-------~:J

    /I I«

    Digitale I r-- -L. I~ ... :J ,DIA I- .. N I Signa/verarbe itung~ I I

    Q) I .......... I / Aktoren ...Cf) I......:e I Ic I.cr-------------~-~-o - --Cf)I Schnittstelle zu weiteren SystemenI

    j~

    1r

    Bild 2.1: Zum Aufbau eines Elektroniksystems

  • 2.1 Aufgabenbeschreibung durch ein Pflichtenheft 13

    Bild 2.2 zeigt als Beispiel eine Bildverarbeitungskarte als Zusatz-Steckkarte füreinen Personalcomputer. In diesem Fall ist der Sensor eine CCD-Kamera. DieKamera liefert ein analoges Bildsignal. Im Analogteil wird das Bildsignalvorverarbeitet und digitalisiert. Im Digitalteil erfolgt die digitale Weiterverarbeitungdes Bildsignals; konkret kann z.B, hardwaremäßig zeilenweise ein Lauf-Längencodegebildet und in einem Pufferspeicher zwischengespeichert werden. Der Busmodulsteuert die Übergabe der vorverarbeiteten Bildsignaldaten an das nächste System, denPersonalcomputer.

    .10: 151

    ,.2.2027262S

    '"as22212.'0,.'7

    "DU"0."D7"OB"OS

    """0'"02ClIC12Cl'Cl"CISC16Cl7ClO

    ~ CCOIO:1I, I "2 "2 , "Schwa11..JIol'" t. (Eh 7) , , ", 5 "SchwgllgJJnalag SW-SGN DEI ICh7] s . "2 Honl tor- 5...J4 DIA-Modul S-Hort (6: 7) • 7 "R 7 . "Analog-Modul C5..!< • , "C51_N • " "CE..!< , I ", 12 "GL 5lG CLK...N , " ", " "53 B5 ZS CLK 11,31 VA_Buo Cl: PU FlJJuo

    .....:J •

    ,I""0 , 2

    Z5 51G NCLK 02 ,

    53 B5~.,'

    ::;: , ,GL CLK 11: 31 NIOWC , 5

    ff ff I S,

    (f) • 7NEf Ef :J 7 ,~01' CD • ,NIOR • "C C 1 "1 12

    NRCS2 NRC52 1 "Digitol-Modul NCIOR1 "NCIOR OJlUS (0115) 1 "O_BUS 10: 151 0_8u.10: 151VOeJ)u8 U:!I15) Oa_8u

    5J!u.ll: 5)STEUEnJlUS t1151

    SlJ!u.II:51CSO...N CSO...NCS2...N CS2...NCSS...N CSS...NCSij_N CSij...N

    _1~~r~6 ~DO15 Al

    KAMERA CO, 11

    K_lK..2

    MONITO

    Bild 2.2: Beispiel eines realisierten Elektroniksystems

    Das Pflichtenheft hierzu sollte mindestens folgende Punkte beinhalten:

    * Ziel und Zweck des Projektes* Gesamtbeschreibung* Funktionelle Anforderungen* Anforderungen an Systemschnittstellen* Leistungsanforderungen* Einschränkungen für den Entwurf* Geforderte Qualitäten und Eigenschaften* Prüf- und Abnahmebedingungen* Energieversorgung* Umgebungsbedingungen* Sonstige Anforderungen

  • 14 2. Zum Systementwurf

    Vor der Festlegung des Pflichtenheft~s ist im allgemeinen eine ~achbarkeitsstudieerforderlich. Das Pflichtenheft ist em Anforderungsdokument fur den Abnehmereines Produktes. Am Beispiel der Bildverarbeitungskarte soll ein Pflichtenheft inKurzform vorgestellt werden:

    Ziel und Zweck: Zweidimensionale Objekt- bzw. Schriftenerfassung mittels CCD-Kamera zurObjekt- bzw. Schriftenerkennung und anschließender Qualitätskontrolle mit tels Personalcomputer.

    Gesamtbeschreibung: Es ist eine Einsteckkarte in IBM-kompatible AT-Personalcomputer zuentwickeln. Die Einsteckkarte bewerkstelligt eine Bildsignalvorverarbeitung des von derCCD-Kamera gelieferten Videosignals zur Mustererkennung am Personalcomputer.

    Funktionelle Anforderungen: Das an einem Monitor beobachtbare Videosignal ist zu binarisierenbei einstellbarer, vom PC aus konfigurierbarer Komparatorschwelle. Vom binarisicrten Videosignal istzeilenweise in Realtime ein Lauf-Längencode zu ermitteln und in einem Stapelspeicher abzulegen.Der PC soll über ein Bus-Modul an den Stapelspeicher zugreifen können. Nach einerVollbildaufnahme mit maximal 5.000 Hell/Dunkelwechseln und der Ermittlung von Bezugszeilensollen konfigurierbare Prüfzeilen einstellbar sein.

    Anforderungen an Systemschnittstellen: Schnittstelle zur CCD-Kamera: vorgegeben durchausgewählte Kamera (512 * 512 Bildpunkte). Schnittstelle zum Monitor: Videonorm. Schnittstellezum Personalcomputer: AT-Bus. Zur Ansteuerung der BV-Karte vom PC aus ist einSoftware-Treiber zu entwickeln, so daß bestimmte Grundfunktionen (Vollbildaufnahme,Bildbereichsaufnahme, Prüfzeilen setzen, Schwcllwert setzen, Retransmit-Funktion, u.a.) als Makrovon einer höheren Programmiersprache aus aufrufbar sind.

    Leistungsanforderungen: Als erste Applikation soll die Erkennung und Auswertung vonLCD-Anzeigen, Slebensegmentanzeigen und gemultiplexten Fluroszcnzanzcigen realisiert werden.Folgende Merkmale sind dabei zu beachten:

    * Lageunabhängige Displayerkennung;* Erkennung des Nebenleuchtens bei 5 % der NormalheIligkcit;* Einlesen und erkennen einer 4 steIligen Zahl innerhalb

  • 2.1 Aufgabenbeschreibung durch ein Pflichtenheft 15

    Die Systemspezifikation ist eine Festlegung für den Entwerfer. Bei komplexerenSystemen sind mehrere ausführende Stellen bei der Entwurfsrealisierung beteiligt.Deshalb ist es notwendig, die Entwurfsbedingungen und Anforderungen umfassendfestzulegen. Allgemein enthält die Systemspezifikation detaillierte Spezifikationsdaten,sie lassen sich in folgende Bereiche unterteilen:

    Schnittstellenbeschreibung:* Definition der Interaktionsstellen (Ports, Pins, u.a.)* Signalformen an den Interaktionsstellen* Absolute Grenzwerte und Aussteuerbedingungen* Kritische Signalpfade* Signalübertragungsanforderungen* Toleranzen* Gehäuse, Aufbau- und Verbindungstechnik

    Verhaltensbeschreibung:* Funktionsdefinition* Eingangs-/Ausgangsbeziehungen* Simulationsmodelle* Algorithmen, Übertragungsfunktionen

    Strukturbeschreibung:* Definition von Teilfunktionen; HierarchiedarstelIung* Verbindung von Gesamt- und Teilsystem* Strategie bezüglich Testbarkeit

    System umgebung:* Temperatur, mechanische Belastungen, chemische Belastungen,* Strahlungsbelastungen* Anforderungen an die Elektromagnetische Verträglichkeit* Anforderungen an die Zuverlässigkeit

    Testumgebung:* Testsysteme, Testsystemverbindungen* Sicherheitsgrenzen* Produktionstest, Funktionstest* Qualitätssicherungsmaßnahmen

    Entwurfsmanagement:* Projektierung, Projektablaufplan .,* Einsatzplanung von Personal und Entwurfslulfsmltteln* Preis/Leistungsbewertung* Dokumentation

  • 16

    2.2 Ansätze zur Entwurfsautomatisierung

    2,2,1 Aufgaben und Ziele der Entwurfsautomatisierung

    2. Zum Systementwurf

    Bild 2.3 zeigt die Umsetzung der Anforderungsspezifikation in einen Systementwurf.Danach erfolgt schließlich die Systemimplementierung. Für den Systementwurf gibt esverschiedene Hilfsmittel und Werkzeuge als Ansatz zur Entwurfsformalisierung undEntwurfsautomatisierung.

    Entwurf

    Implementierung

    Test

    Freigabe

    Bild 2,3: Von der Anforderungsspe ifik: ti EZI 1 a IOn zum 'ntwurf und zur Implementierung

  • 2.2 Ansätze zur Entwurfsautomatisierung 17

    Unter Entwurfsautomatisierung versteht man die Generierung (Synthese), Verifikationund automatische Datenhaltung (in Datenbanken) von Entwürfen in denverschiedenen Entwurfsebenen. Zunehmend erstellen geeignete Werkzeugeautomatisch Teile eines Entwurfs bzw. es werden Entwurfsschritte automatisiert. DieEntwurfsautomatisierung hat folgende Ziele:

    * Reduzierung der Entwurfs- und Entwicklungszeiten;* weitgehendes Ausschließen von Entwurfsfehlern;* Vereinfachung von Änderungen in der Entwurfsphase;* Überprüfbarkeit eines Entwurfs;* Ermöglichung und Vereinfachung des Tests (Design for Testability).

    Bei einem kundenspezifischen Gate-Array mit 10.000 Gatterfunktionen macht derEntwurf einen Großteil der anfallenden Kosten aus. Ein manueller Entwurf ist hierin vertretbarer Zeit nicht mehr darstellbar. Mit heute verfügbaren Werkzeugen zurEntwurfsautomatisierung gelingt es, außerordentlich komplexe Systeme in relativkurzer Zeit zu entwerfen. Beim Entwurf komplexerer Bausteine, mit z.B. 50.000Gatterfunktionen beansprucht die Konzeptionsphase mehr als 50% derEntwicklungszeit. Ganz besonders wichig ist dabei die Berücksichtigung derAnforderungen an die Testbarkeit durch besondere Testhilfen bereits aufArchitekturebene.

    Für ein weiterführendes Studium der in diesem Kapitel angeschnittenen Thematik derEntwurfsautomatisierung sei auf /2/, /3/ verwiesen.

  • 18 2. Zum Systementwurf

    2.2.2 Hierarchisches Konzept und Funktionsspezifikation von Teilfunktionen

    Ziel der Entwurfsmethodik ist es, die Komplexität eines Systems durch einmodulares Konzept zu reduzieren und damit die Überprüfung der Korrektheit zuerleichtern. Diese Vorgehensweise wird mit dem Schlagwort "Strukturierter Entwurf"gekennzeichnet. Erstmals propagierten u.a. Mead und Conway /6/ diesenEntwurfsstil. Ziel der Anstrengungen ist es, soweit wie möglich Synthesewerkzeugebeim Entwurf einzusetzen. Im Idealfall sollte ein Funktionsmodul ausgehend von derFunktionsspezifikation automatisch in eine Schaltungsstruktur umgesetzt werden.Diese Synthese einer Schaltungsstruktur ist optimal nur in Teilbereichen möglich.Leichter automatisierbar ist die Umsetzung einer symbolisch beschriebenenSchaltungsstruktur in ein geometrisches Layout. Mit Silicon-Compilern habenSystementwickler die Möglichkeit ausgehend von einer herstellerunabhängigenBeschreibung den Entwurf weitgehend automatisch umzusetzen in ein Layout aufSilizium, Damit wird die Umsetzung des Entwurfs in Silizium für den Entwerfererleichtert. Eine wichtige Basis für eine herstellerunabhängige Entwurfsbeschreibungsind geeignete Hardwarebeschreibungssprachen (siehe Abschnitt 2.5.3). ZurVertiefung der Thematik über Silicon'-Compiler sei auf /9/, /10/ verwiesen.

    Bild 2.4 verdeutlicht nach dem Phasenmodell die einzelnen Synthesephasen von derProblemspezifikation bis zur Chiprealisierung.

    Silicon-Compiler

    IJ

    Verhaltens- IStruktur-I Layout-synthese synthese synthese I

    Problem Verholtens- ... I Schaltungs- - I -Spezifikation beschreibung ~I struktur

    --.. Layaut . ChipI

    I I

    Bild 2.4: Die Entwurfsphasen mit und ohne Silicon-Compiler

    In ,~en letzten ~ahren wu~den für die Lösung komplexer Softwareaufgaben sehreffiziente Techmken en~wlCkelt. Unter Ausnutzung eines streng hierarchischenKonzeptes und der damit gegebenen Modularität können Techniken wie sie fürSoftwareaufgaben entwickelt wurden auch teilweise für den Ha;dwarcentwurfube,rnommen we:den, Der wesentliche Unterschied zu Softwareaufgaben bestehtdan~, ,daß beim ~ardwareentwurf schon in der Systemkonzeptphase diepl:~slkahscl~en Besch:ankul1gen durch die Implementierung berücksichtigt werdenm~ss~n..Blld ~.5 ze~gt s~~ematisch wie durch Regelüberprüfungen (Restriktionen;GultIgk~ItsberelCh) e111 Losungsvorschlag prinzipiell generiert werden kann. Eines/Y3s/temat/18s/chbe Dhar~tebllung des Hardware-Entwurfs von digitalen Systemen ist u.a. in

    ... esc ne en.

  • 2.2 Ansätze zur Entwurfsautomatisierung

    Restriktionen Gültigkeits--Überprüfung

    ....bereich

    .-

    .... -Aufgabe Generierung Lösungs-....

    vorschlag

    Bild 2.5: Schema zur Schaltungssynthese

    19

    Ein weiterer wichtiger Unterschied zur Softwarelösung ist durch die erheblichgrößere Vielfalt der Realisierungselemente gegeben. Wohingegen die strukturierteProgrammierung nur wenige Grundelemente zum Aufbau von Modulen verwendet (z.B.: Anweisung; Auswahl; Iteration; Verkettung), ist bei der Hardwarelösung dieZahl der vom Anwender unmittelbar verwendeten Makrozellen vielfältig. Die Bilder2.6 und 2.7 zeigen die Phasen der Software-Realisierung und die derHardware-Realisierung. Bei der Softwaremethode erzeugen Compiler aus derhöheren Programmiersprache selbständig einen effektiven, fehlerfreien, ablauffähigenMaschinencode. Das Ergebnis der Hardwareentwicklung hingegen ist eindreidimensionales komplexes Schaltungsgebilde mit physikalischen Eigenschaften.Durch Steuerung von Ladungsflüssen und Potentialen werden logische Abläufenachgebildet. Die Zugriffsmöglichkeiten zu Testsignalen sind stark eingeschränkt. Injeder Entwurfsphase muß die Testmethodik bedacht und berücksichtigt werden (sieheBild 2.7). Die beiden Entwicklungswege sind funktional gleich, real aber gänzlichunterschiedlich.

    Nach Analyse und funktionellem Entwurf wird ein komplexes System hierarchischgegliedert und entsprechend einem Top-Down-Entwurf konzipiert. Einzelne Modulesind miteinander verbunden und kommunizieren miteinander. Auf der oberstenHierarchiestufe bestehen die Module beispielsweise u.a. aus Prozessoren, Speicher,Controller. Verbunden werden die Module mit Datenbussen. Ein wichtiger Punkt istdie Festlegung der Schnittstellen.

    Das hierarchische Konzept besteht nun darin, daß Module in Submodule soweitaufgeteilt werden, bis ein Submodul einfach genug ist, um in Hardware umgesetztwerden zu können.

  • 20 2. Zum Systementwurf

    Phase SW-Methode

    HLL-Programm-Design

    Analyse und

    funktioneller Entwurf

    Code-Konstruktion(automatisch, fehlerfrei)

    '- z.B. mit CASE-Werkzeugen_'-.L- -,- --'

    - /~ ..L- ...,

    /'

    • •

    Bild 2.6: Systementwurf mit Software-Implementierung

    Für die Analyse und für den funktionellen Entwurf in der Spezifikationsphase bzw,in der Systementwurfsphase werden heute u.a, CASE-Werkzeuge eingesetzt (CASE:Computer-Aided-Software-Engineering). Das Programm selbst wird in einerHochsprache (HLL: High-Level-Language) entwickelt und implementiert.

  • 2.2 Ansätze zur Entwurfsautomatisierung 21

    Phase

    HW-Methode

    Design-Schritt Design-Ergebnis

    TestspezifikationTestrahmen

    ----il--~ Objekt-Spezifikation

    !--

  • 22 2. Zum Systementwurf

    Kernal funct1anscorry • oge Iggerong corry p count enoble

    Cantral funct1ans

    Output funct1ans

    er yps t".tote enobls p signoS

    STARTING SYNTHESIS

    Bild 2.8: Beispiel einer Eingabemaske eines Spezifikationsgenerators

    In Bild 2.9 ist die rechnergestützte Spezifikation eines hierarchischen Entwurfsskizziert. Dabei ergeben sich folgende Problemstellungen:

    * Erstellung eines semantischen Modells einer Spezifikation;* Darstellung des Modells mit geeigneten Datenstrukturen;* Entwicklung von Mechanismen zur simulationsunabhängigen Konsistenzprüfung.

    Im einzelnen muß eine Spezifikation mindestens folgende Angaben enthalten:

    * Funktionale Spezifikation* Schnittstellenspezifikation* Beschreibung der Testbedingungen* Komponentenbeschreibung* Entwurfsmanagement

    Zwischen den Spezifikationsparametern besteht eine Vielzahl von Relationen, diedurch Regeln beschrieben werden können.

  • 2.2 Ansätze zur Entwurfsautomatisierung 23

    System levelSystem

    Modul M1Modul level 1

    namestatus

    designertimeschedule

    temperatur

    adiationibralianumanidity

    1/0 parts

    electricalchcrcc--terlstlcstimingcanslraints

    function

    functionaldescription···

    test components

    namescorrections

    attributes

    namestatus

    designertimeschedule

    interface

    1/0 parts

    electricalchorac-teristicstimingconslroinls···

    funclion

    funclionaldescripti on···

    test

    testpattern

    components

    namescarreclions···

    Modul F1

    ... :-.:.: : .L..---------:::::;:::;o;.;.:;.....

    Building-Block

    attributes

    namestatus

    designertimeschedule

    Interface

    1/0 parts

    electricalchorcc--terlsticstimingconstralnts

    funclian

    functionaldescription···

    test

    Modul Generator

    Bild 2.9: Zur Spezifikation in einem hierarchischen Entwurf

  • 24 2. Zum Systementwurf

    2.2.3 Einige Grundsätze zum Systementwurf

    Die Zergliederung in Module soll so vorgenommen werden, daß jedem Modul emebestimmte Funktion zugeordnet werden kann.

    Auf der untersten Architekturebene sind die Module sogenannte Building-Blocks,die eine bestimmte abgegrenzte Funktion erfüllen und die für sich testbar seinsollten. Ein Building-Block sollte nicht mehr als ca. 2000 bis 3000Gatterfunktionen beinhalten. Ein komplexes Design besteht demnach aus bis zu 50Building-Blocks. Blöcke mit regulären Strukturen bilden dabei eine Ausnahme.

    Aus Gründen der Testbarkeit sollten die Building-Blocks keine zu großesequentielle Tiefe aufweisen.

    Ähnlich wie in der Software ist auch bei der Hardware das Prinzip der "Lokalität"für die Korrektheitsüberprüfung eines Moduls außerordenlieh wichtig. ZurVerwirklichung der Lokalität müssen die nach außen gehenden Schnittstellen einesModuls möglichst einfach gehalten werden. Damit bleibt ein Maximum anInformation innerhalb eines Moduls. Globale Verdrahtungen sind möglichst überBusleitungen zu führen, Busleitungen können jedoch bei enger, parallelerLeiterführung bei höheren Signalverarbeitungsgeschwindigkeiten zu Problemen derSignalüberkopplung führen.

    Vorteilhaft sind "Bit-Slice"-Strukturen. Nach Optimierung einer Grundfunktion zurVerarbeitung von z.B. einer I-Bit-Funktion erfolgt der automatische Aufbau einesregulären Blocks zur Verarbeitung einer n-Bit-Funktion. Logische Funktionen, wiez.B. eine ALU können als I-Bit-Funktionseinheit entworfen werden, die dannn-rnal aneinandergereiht einen n-Bit-Funktionsblock ergibt.

  • 2.3 Die Entwurfsebenen und deren Darstellungsarten

    2.3 Die Entwurfsebenen und deren Darstellungsarten

    25

    Gajski und Kuhn führten 1983 mit ihrem Y-Diagramm ein Modell für dieEntwurfsdarstellung ein (Bild 2.10) /12/. Die Entwurfsebenen sind dort alskonzentrische Kr-eise visualisiert, die man folgendermaßen einteilt:

    * Architekturebene;* Algorithmische Ebene;* Funktionale Ebene;* Schaltkreisebene.

    VerhaltenArch itektur

    ................................................

    Schaltungsstruktur

    GeometrischeI

    Partitionierung

    Geometrie

    Bild 2.10: Zu den Entwurfsdarstellungsarten

  • 26

    Jede der Entwurfsebenen läßt sich darstellen im:* Verhaltensbereich;* Schaltungsstrukturbereich;* Geometriebereich.

    2. Zum Systementwur!

    Verhaltensbereich: Der Verhaltensbereich beinhaltet Aussagen über die Funktion, diezugrundeliegenden Algorithmen, das logische Verhalten, das Zeitverhalten , dieZuverlässigkeit u. a. Zur Beschreibung der unterschiedlichen Aspekte werdenverschiedene Beschreibungsformen verwendet. Das Verhalten einer Schaltung wirdzunächst in natürlicher Sprache spezifiziert bzw. formuliert. Eine Verfeinerung derVerhaltensbeschreibung erfolgt durch Datenblätter, Ablaufdiagramme, Zeitdiagrammeu. a. Die Werkzeuge zu den oberen Ebenen der Entwurfsdarstellung imVerhaltensbereich bestehen aus Sprachen zur Spezifikation des Verhaltensbereichsbzw. aus Compilern für prozedurale, applikative oder auch prädikatenlogischeProgrammiersprachen. In den unteren Ebenen wird das Verhalten durch Simulatorenund Analyseprogramme ermittelt. Bei der Modellbildung muß der Detaillierungsgraddem betrachteten Abstraktionsgrad angepaßt sein. Bild 2.11 verdeutlicht den unter-schiedlichen Detaillierungsgrad bei der Modellierung eines einfachen D-Flipflops.

    a) Nand-Gatter auf Transistorebene

    7lJHC7lJ,..--'-'--,

    w"'>---10 a: Q'---_--l

    CL1

    >---I>CLK

    c) D-Flipflop als Makrozelle:Boolesche Gleichung oder

    Funktionstabelle

    1* If CLKRISE then1* 1f PRE= 1 ond CLR=l THE1* If 0=8 then1* Q=8, QBAR=l1* else1* Q=l. QBAR=81* else ,,'1* else .. ,

    b) D-Flipflop auf Gatterebened) Prozedurales Verhaltensmodell

    eines D-Flipflops

    Bild 2.11: Modelle für unterschiedliche Detaillierungsgrade von Logikfunktionell

  • 2.3 Die Entwurfsebenen und deren Darstellungsarten 27

    SchaZtungsstrukturbereich: Der Schaltungsstrukturbereich besteht aus Komponentenund die sie verbindenden Netze. Komponenten sind in der

    * Architekturebene: Prozessoren, Speicher, Controller, Datenbusse u. a.* Registertransferebene: Register, Multiplexer, Codierer, Decodierer, ALU u. a.* Logikebene: Flipflops, Gatter, Transmission-Gates u. a.* Schaltkreisebene: Transistoren, Widerstände, Kondensatoren, Leitungen u. a.

    Die Beschreibung im Schaltungsstrukturbereich kann verbal durch Definition vonNetzlisten, grafisch durch Block- oder Registertransferdarstellungen, Logik-Schaltpläne, Transistor- oder "Stick"-Diagramrne erfolgen. "Stick"-Diagramrne sindsymbolische Layouts auf Transistorebene; sie enthalten u.a. auch Informationen überdie geometrische Lage der Transistoren zueinander.

    Geometriebereich: Der Geometriebereich beschreibt die physikalische Implemen-tierung einer Schaltung vektoriell durch Polygonzüge oder durch absolute Positionen.In höheren Ebenen wird durch den "Floorplan" die geometrische Aufteilung einesChips festgelegt. Durch ein geeignetes "Floorplanning" kann eine gute Anpassung derSchaltungskomponenten erzielt werden. Als Schnittstelle zum Hersteller sindStandard- Geometriebeschreibungssprachen bzw. Geometriebeschreibungsformate (z.B. GDSlI; CIF) eingeführt. Die Werkzeuge im Geometriebereich sindLayout-Editoren, Plazierungs- und Routing-Werkzeuge, "Design-Rule-Checker",Schaltungsextraktoren, Kompaktoren u. a.

    Anzustreben ist eine isomorphe (von gleicher Gestalt) Darstellung der Block-funktionen im Verhaltensbereich, Schaltungsstrukturbereich und Geometriebereich.Oftmals lassen sich gewählte hierarchische Dekompositionen nicht in andere Bereicheübertragen. Beispielsweise kann eine ALU mit Operandenregistern imSchaltungsstrukturbereich als Registertransfer-Struktur und im Geometriebereich als"Bit-Slice"-Struktur (z. B. 16-Bit-Scheiben) dargestellt werden.

  • 28 2. Zum Systementwurf

    2.4 Logiksynthese von endlichen Zustandsautomaten

    Die Schaltungssynthese ist allgemein in Teilbereichen möglich. Im Analogbereichgibt es Verfahren zur Schaltungssynthese für bestimmte Funktionsschaltungen, wiez.B, Filterschaltungen. Die in diesem Abschnitt behandelte Logiksynthese beschränktsich auf die Synthese von Zustandsautomaten für den Entwurf vonAblaufsteuerungen (ASM: Algorithmic State Machine). Das zugrundeliegendeKonzept des logischen Entwurfs von Zustandsautomaten zeigt Bild 2.12. Derendliche Zustandsautomat besteht aus einem Registerblock (z.B. D-; T-; RS- oderJK-Flipflops) und einem Block mit kombinatorischer Logik. Der Registerblockbeinhaltet den Zustand der Schaltung. Dadurch wird ein einzelnerVerarbeitungsschritt gekennzeichnet. Die kombinatorische Schaltung bildet aus demaktuellen Zustand St und den Eingangssignalen X den gewünschten FolgezustandSt+l und die vorgesehenen Ausgangssignale YI (Mealy-Automat). Während dieAusgänge YI sich innerhalb eines Zustandes ändern können, sind die Ausgänge Y2getaktet und frei von möglichen Fehlimpulsen (Moore-Automat).

    yx... .... 1", Kombinatorische ....

    Logikktueller t+ 1ustand ~ l S

    ~

    ~

    Folge- u~

    st~ZustandTak.!. Y2.... RegisterRes~t ...

    ",....

    AZ

    Bild 2.12: Grundkonzept eines endlichen Zustandsautomaten

    Der logische Entwurf ,einer ~blaufsteuerung ist Teil des Systementwurfs. ImSyst~men~urf wer?en die Funktionsblöoke festgelegt. Funktionsblöcke können z.B.Reglste~blocke sell~. Der Datenfluß zwischen den Funktionsblöckcn wird imallgememen durch eme Ablaufsteuerung gesteuert.

  • 2.4 Logiksynthese von endlichen Zustandsautomaten 29

    Bild 2.13 zeigt den logischen Entwurf z.B, einer Ablaufsteuerung als Teil desSystementwurfs. Die aus dem logischen Entwurf gewonnenen BooleschenGleichungen müssen dann in einen topologischen Entwurf umgesetzt werden.Anschließend kann die Implementierung in einer bestimmten Technologie erfolgen.

    verbale Spezifikation

    Partitionierungder Chipflöehe

    formal.Verhaltensbeschreibung

    ~

    redundanzfreie formaleVerhcltenebeechrelbunq

    Flaarplan

    Boole'seh. GI.lchungen

    ~

    Ma.kendal.n

    Maskendat.n dessteuerwerks

    IZ.lIblbllothekI ~'-----''-----'

    IIIIII

    Bild 2.13: Gliederung des Entwurfsablaufs von Steuerwerken

  • 30 2. Zum Systementwurf

    Grundsätzlich läßt sich eine Ablaufsteuerung durch einen Zustandsautomatenrealisieren. Bei manueller Vorgehensweise ist zunächst für die Ablaufsteuerung einAblaufdiagramm zu entwerfen. Sodann ist aus dem Ablaufdiagramm einZustandsübergangsdiagramm zu ermitteln. Bild 2.14 zeigt ein Ablaufdiagramm; esbesteht im allgemeinen aus Ausführungsanweisungen und Sprunganweisungen. JedemAusführungsschritt wird ein Zustand Si zugeordnet. Die Zustände Si werden ingeeigneter Weise durch Registerzustände codiert. Bei 3 Register-Flipflops ist esdemnach möglich 8 Ausführungsschritte zu codieren. Zur Veranschaulichung soll eineinfaches Beispiel in Form eines digitalen Impulsvergleichcrs gewählt werden.

    Y(3)

    Y(2)

    Y(3)

    Y(5)X (4)

    X(2)

    X(1)

    Bil~ 2.14: ~llge.n:ei~l.es Abla~fdiagra~und zugehöriges Zustandsübergangs-diagramm; X(I). Emgangsslgnalbedmgung Y(i): Ausgangssignalbedingung

  • 2.4 Logiksynthese von endlichen Zustandsautomaten 31

    Funktionsspezifikation des ersten Beispiels: Zwei Impulse Xl und X2 sindhinsichtlich der Phasenlage zueinander (Bild 2.15a) zu vergleichen. Xl muß vor X2erscheinen und verschwinden, noch während X2 vorhanden ist. Bei einerAbweichung ist ein Fehlersignal Y auszugeben. Nach einer Fehlererkennung soll dasSchaltwerk im Fehlerzustand verharren. Ein RESET-Signal stellt denAusgangszustand wieder her.

    Bild 2.15b zeigt das Ablaufdiagramm und Bild 2.15c das Zustandsübergangs-diagramm für das gewählte Beispiel.

    Zustände : 50 S, Sz 5.350

    o-1

    -0

    - 1

    y

    - 0- -1

    - -0

    -0

    - 0

    y

    "RES/

    RES

    • 0

    1 1

    I 0 1

    I1 1 •

    10,

    • •

    ••

    ••

    • 1 0

    • o·• 1o ••

    ·00

    • 1 0

    X1 Xz

    c) --~::--L~-~--~~-_.·00

    • • 1

    , ,

    X1 ---n----i+-X2 I I I I

    I I I I

    b)

    a)

    Bild 2.15: Logischer Entwurf von !3eispiel ~: a) Zur .Aufgabenstellung,b) Ablaufdiagramm, c) Zustandsubergangschagramm

  • 32 2. Zum Systementwurf

    Aus dem Zustandsübergangsdiagramm kann bei gegebener Eingangssignalbelegungund gegebenem Zustand der Folgezustand ermittelt werden. Möglich ist eineDarstellung in Form einer KV-Tafel (Bild 2.16a) oder in textueller Form (Bild2.16b).

    a) Folgezustand:FO Fl F4 F4 F4 F4 Fl FO

    F4 Fl F2 F4 F4 F2 Fl F4

    F4 F4 F2 F3 F3 F2 F4 F4

    FO F4 F4 F3 F3 F4 F4 FO

    - - - - - - - -- - - - - - - -- - - - - - - -

    F4 F4 F4 F4 FO FO FO FO

    Aktueller Zustand:So

    81

    b) RES Xl X2 Y

    Stete 0 SO: - 0 0 ~ FO: 0SO: 1 0 ~ F1: 0SO: 1 ~ F4: 1

    Stete 1 S1: 1 0 ~ F1: 0S1: 1 1 ~ F2: 0S1: - 0 - ~ F4: 1

    Stete 2 S2: 1 1 ~ F2: 0S2: - 0 1 ~ F3: 0S2: 0 ~ F4: 1

    Stete 3 S3: - 0 1 ~ F3: 0S3: - 0 0 ~ FO: 0S3: - 1 ~ F4: 1

    Stete 4 S4: 0 ~ F4: 0S4: 1 ~ FO: 1

    Bild 2.16) Verschiedene Darstellungen der Zustandsübergangstabellea KV-Tafel-Darstcllung b) Textuelle Darstellung

  • 2.4 Logiksynthese von endlichen Zustandsautomaten 33

    Wie nun die Synthese der Ablaufsteuerung durchgeführt wird, ist im folgendendargestellt. Zunächst müssen die Zustände codiert werden (Bild 2.17a). Bild 2.17bzeigt die KV-Tafeldarstellung unter Berücksichtigung der gewähltenZustandscodierung. Die Art der Zustandscodierung ist frei wählbar, sie bestimmt mitden Schaltungsaufwand. Oftmals wird ein Gray-Code gewählt, da sich dabei vonZustand zu Zustand nur ein Bit verändert. Im allgemeinen ist dabei auch derSchaltungsaufwand geringer. Als nächstes erfolgt die Auswahl der Flipflop-Art fürdas Zustandsregister. In der Regel werden D-Flipflops oder JK - Flipflops gewählt.Bei JK - Flipflops ist eine hohe Funktionssicherheit durch synchroneMaster-Slave-Flipflops mit asynchronem Reset gegeben.

    a) Zustandscodierung Uo 'U1 U2So 0 0 0 Uo U1Sl 1 0 0 UO Ü1S2 1 1 0 Uo U1S3 0 1 0 UO U1S4 0 0 1 U2

    b) Zustandsübergangstabelle als KV -Tafel

    000 100 001 001 001 001 100 000

    001 100 110 001 001 110 100 001

    001 001 110 010 010 110 001 001

    000 001 001 010 010 001 001 000

    001 001 001 001 000 000 000 000

    \ ~ \ , J

    51

    U1

    }~ u,

    Bild 2.17: Zustandscodierung von Beispiel 1

  • 34 2. Zum Systementwurf

    Für unser Beispiel wurden JK-Flipflops für das Zustandsregister gewählt. Bild 2.18azeigt die Boolesche Gleichung für das JK-Flipflop. Daraus ergibt sich die logischeBedingung für den J- bzw. K-Eingang. In unserem Fall ist U, tgegeben; mit U, j ;U, kwird der gewünschte Folgezustand eingestellt. Bei U. t = 0 ist U, j = U, t + 1 undbei Vi t = 1 ist Vi k = U i t +1 • Die konkrete Ausführung am Beispiel zeigt Bild 2.19.In Bild 2,18b sind als Ergebnis die Booleschen Gleichungen für dieZustandsregister-Flipflops zusammengefaßt.

    a] JK-Flipflop

    Uij

    U:

    U~I u.t Ut+l U" UI i I) ik

    o 0 0o 1 11 0 1

    1 1 0

    Ut+1 - u.. t u- t + u- tu ti-I) i ik i

    b] Boolesche Gleichungen der Zustandsregister(realisiert mit JK-Msster-Slave-Flipflops)

    UOj=U1'UZ' Xl'XzUOk= Xz'XlvXz' U1vXl'Xz

    U1j=Xl' Xz' UoU1k= Xzv Xl'~

    UZj=Xz' ü'o'U1vXl ' Uo'U1vXz ' Uo'U1vXl' Uo' U1UZk=RESET

    Bild 2.18: a) Ausgewählte Flipflop-Art b) Boolesche Gleichungen der J- undK-Eingänge

  • 2.4 Logiksynthese von endlichen Zustandsautomaten 35

    U1+1.o . 0 l1 0 0 0 0 l1 00 0 0 0 0 0 0 0

    - - - - - - - -0 0 0 0 0 0 0 0

    1 0 0 (i 1 0 0 If1 11 0 1 1 0 1""- 1-~ - - - - 1'- -

    .:;j - - \- ....., - - ~

    U1+1.1 • 0 0 0 0 0 0 0 0

    0 0 m0 0 Ho 0- - -J - - l:J - -0 0 0 0 0 0 0 0

    -u t+1 •1 .

    1 l' 0 0 0 0 1 11 Irr 1\ 0 o r, 1'\1- I\:- -:J - - \.- -J -- -; - - - - ~ -

    U 1+1.2 • 0 0 1 1 1 1 0 0

    IT' 0 0 rr n 0 0 J-1 1 0 0 0 0

    ...,..i.......

    0 10 1'0 0 1 1 0~

    : - - - - - - - -- - - - - - - -- - - - - - - -0 0 0 0 1 "1 1 1

    Bild 2.19: Zur Ermittlung der Booleschen Gleichungen für die J- und K-Eingängedes Zustandsregisters

  • 362. Zum Systementwurf

    Die minimierten Booleschen Gleichungen für die Registereingänge und für dieAusgangssignale werden nun durch entsprechende Gatterbeschaltungen realisiert; eswird eine Schaltungstopologie erzeugt. Bild 2. 20a zeigt die Schaltung als Ergebnisder Logiksynthese. In Bild 2.20b wird die Schaltung durch Logiksimulation getestet.

    XI~NX2 JUONU1 AAOllNU2

    a) Xl~ NXI~-

    X2'""""--~ NX2~---

    RESETD NXI

    NX2~ KUONAlJ2Ul NßCl2

    ~~~ JUIUB~--

    NUO~Xl AR" KUJ

    X2 NR02

    JUO

    CLOCKKUO

    NCLEAA

    JUJ

    CLOCKKUI

    NCLEAA

    UO

    NUO

    UI

    NU!

    b)

    CLOCKD

    CLEAR~ NCLEAA~

    NXIUO

    NUI

    NX2UOUl

    JU2

    JU2 CLOCKAESET

    NCLEAR

    U2

    NU2

    MCLOCK

    + + + + + + + + CLEAA

    + + + + + 1 + + + XI

    + + +1 + -l+1 .rt + + + l. X2+ 1'1 + + Ir. J~ l'l + 111 ,.. I? + Ir. STATE+ + + + + il+ + + AESET+ + + + + r + + + r

    1570.0 3140.0 4710.0 6280.0 7850.0 9420.0 10990.0 12560.0

    Bild 2.20: Beispiel 1: Schaltung a) und Ergebnis b) der Logiksimulation

  • 2.4 Logiksynthese von endlichen Zustandsautomaten 37

    Funktionsspezifikation des zweiten Beispiels: Es ist eine Ablaufsteuerung zurErzeugung taktsynchroner Steuerimpulse Y zu entwerfen. Die Länge derSteuerimpulse Y soll durch den Eingang Xj und X2 eingestellt werden. Ausgehendvon der Taktfrequenz 2 MHz werden die exakten Zeiten über einen Binärzähler Zerzeugt. Der Startzeitpunkt wird durch das Signal START festgelegt. Unmittelbarnach START soll der Zähler Z und auch die Ablaufsteuerung mit dem Resetsignal Rin einen definierten Ausgangszustand gebracht werden. Der Steuerimpuls Y soll beit = 0 beginnen und bis zum angegebenen Zeitpunkt andauern.

    In dem gewählten Beispiel ist ein Steuersignal Y bestimmter Länge zu erzeugen. DieLänge des Steuersignals ist abhängig von X. Der Beginn der Zeitbasis ist in Bild2.21 dargestellt.

    R. Xl X2Clock

    Zahler Z0 0

    1 00 0 0 1 O2 0 3 04-0 5 0 6 0 7 0 1

    ---+ 1 1Xl -

    X2 Ablaufsteuerung yStart

    y

  • 382. Zum Systementwurf

    Die Ablaufsteuerung ist durch drei Zustände gekennzeichnet: den Wartezustand SI 'den Vorbereitungszustand 8

    2und den Ausführungszustand S3 . Bild 2.22 zeigt das

    zugehörige Zustandsübergangsdiagrarnm. Die Länge des Steuersignals Y hängt ab vonden Ausgangssignalen des Zählers Z.

    o

    o

    1

    o

    R

    o

    o 0

    o

    E S T

    o

    o

    R Y

    o 0

    o

    o 0

    o 0

    o

    o 1

    o 0

    o 0

    o

    Bild 2.22: Zustandsübergangsdiagramm

    Mit Log~ksynthesewerkzeugen kann aus dem Zustandsübergangsdiagramm die dafürerforderliche Schaltung synthetisiert werden. Bild 2.22 zeigt den Zustands-übergangsgrafen. Möglich ist auch eine textuelle Darstellung wie für das ersteBeispiel angegeben und in Bild 2.16b dargestellt. '

  • 2.4 Logiksynthese von endlichen Zustandsautomaten 39

    Funktionsspezifikation des dritten Beispiels: Für die in Bild 2.23 skizzierteMultiplizierschaltung zweier 4stelliger Dualzahlen ist eine Ablaufsteuerung zuentwerfen. Für die Ablaufsteuerung steht ein kontinuierlicher Takt CLOCK zurVerfügung. Die Multiplikation soll durch ein externes Startsignal START ausgelöstwerden. Die zu multiplizierenden Operanden sind über das Operandenregister OReinzugeben. Durch das Übernahmesignal NEXT wird das Anliegen des zweitenOperanden gekennzeichnet. Das Ergebnis soll am Schluß der Multiplikation imAC-MQ Register stehen; die Bereitstellung des Ergebnisses wird durch dasREADY-Signal markiert. Das RESET-Signal bringt die Multiplizierschaltung ineinen definierten Ausgangszustand .

    Dieses Beispiel beinhaltet eine Logikschaltung zur AbIaufsteuerung einerSchaltungsstruktur auf Registertransferebene.

    SIGN(l:\IID-----,

    ABLAUFSTEUERUNG

    VSS AG

    RESETvss

    vssco

    IN I .41

    ESETOR-REG I STER

    VOLLADDIERER

    S Ilr41

    NEXTr-....---1 NEXTSTART STRATRESET AESETCLDCK CLDCK

    b8D---jbO

    bt CIl:?)

    AEADY 1---[::>REA0Y

    Sr 1---[::>Sr-

    I--[::>L

    R"I---C>A+

    R°I---C>A8

    CLOCKSr

    LA+A8

    AESET

    VSS COCLOCKSrL

    A"RO

    AESET

    IN I .41

    AC-MQ-REGISTER

    bIO 71

    Ao: CLEARCLOCK

    READY : Obernahmesignal

    A+: +->

    L : ->

    CLEAR

    SR: SHIFT ,

    ->

    Bild 2.23: Blockschaltbild der Multiplizierschaltung

  • 40 2. Zum Systementwurf

    Ist der Multiplikator eine 4stellige Dualzahl, so ergeben sich 4 Teilprodukte".DieseTeilprodukte müssen je nach Wertigkeit verschoben werden. Das Erge?n~s derMultiplikation erhält man z.B. durch Addition der Teilprodukte. Das Prinzip derbinären Multiplikation zeigt Bild 2.24.

    1881* 1181-9* 13L--J L--JI L Mu 1 t i p l Ik e t or-

    ~.---------Mult1p11kond

    . . 1 8 8 1

    . 8 8 8 8 ·. 1 8 8 1 . ·. 1 8 8 1 . ·8 1 1 118 1 8 1

    1811

    =117

    1. Te11produkt

    2. Te11produkt

    3. Te11produkt

    LL Te 11 produk t

    Bild 2.24: Beispiel: Prinzip einer binären Multiplikation

    Jedes Teilprodukt ist gleich 0000 oder gleich dem Multiplikand 1001. Entsprechendder Wertigkeit ist die Teilsumme vor der neuen Addition des Teilproduktes um eineStelle zu verschieben. Für die Multiplikation benötigt man neben einem Addierer einMultiplikator-Register. Im Beispiel ist der Addierer ein Volladdierer, damit läßtsich eine Paralleladdition vornehmen. Die Multiplikation kann in Einzelschritteaufgelöst werden, wie nachstehendes Beispiel zeigt:

    100 10000 1101 ~ < MQo>=I, 1. Stelle100 1 110 1 ~ Additiono100 1 119- ~ Shift, =0 , 2. Stelle0010 o111 ~ Shift, =1 , 3. Stelle101 1 011 1 ~ Additiono101 1011 ~ Shift, =1 , 4. Stelle1 110 101 1 ~ Additiono 1 11 010 1 ~ Shifto 111 o 1 0 1 ERGEBNIS

    Die Einzelschritte werden durch Steuerausgangssignale (Steuersignale bzw.Steuer-yariable). veranlaßt, ausgelöst von den Steuereingangssignalen undEntscheidungsvariablen. In unserem Beipiel benötigen wir folgende Signale zurSteuerung des Ablaufs der Multiplikation:

    Steuereingangssignale:START=l START=l NEXT

    Entscheidungsvariable:=l bo=4 Z

    Steuerausgangssignale:CLEAR;CLOCKREADY+'-7

    '-7; CLEARshift ,; '-7

  • 2.4 Logiksynthese von endlichen Zustandsautomaten 41

    AI~ ~ächstes wird ein ,logischer Ablaufplan (Bild 2.25a) erstellt. Jede Anweisung(z~ltl~ch getrennt von emer anderen Anweisung), die durchgeführt werden muß, istb~I emem Zustandswechsel zu veranlassen. Daraus läßt sich ein Zustandsübergangs-diagramm zur Steuerung der Multiplikation ableiten (Bild 2.25b).

    0) b) EI NGANGSS I GNALE: AUSGANGSSIGNALE:AG READY A+ L SrSTART bO Z NEXT RESET

    G

    e

    000

    a G 0

    o Go G

    GIG

    G G 0

    G 0 0

    e 0 1

    lOG

    o 0 1

    Bild 2.25: Ablaufsteuerung a) Ablaufdiagramm b) Zustandsübergangsdiagramm

    Nach Durchführung einer automatischen Logiksynthese erhält man dieSchaltungsstruktur der Ablaufsteuerung. In Bild 2.26 ist das Schaltbild des~ustandsregisters und das Schaltnetz der A~sgangssignale ang~geben. Um. Fel~ll~pulse zu vermeiden, sind einige AusgangsSIgnale geta~te.t.. BIld 2.27 schheßhchzeIgt das Ergebnis der Logiksimulation der gesamten Multiplizierschaltung.

  • 422. Zum System entwurf

    ,NA

    N~~~NR SrNbD

    Z NA2NA

    ~1~L

    ~~~'NA'NAZ A+

    U2NU]NUD 'NR

    ue 3NRU2 REAOYNl

    'NANUDNUI

    U2 NU2S

    NU2 U]NU2NEXT AO

    NU]

    U!

    NUD

    UD

    'NR

    '-- - - ~ '- ,...-------/----y-- YZustandsregister Ausgangssignale Al bzw. A2

    READY. AO. S sind getaktetum FehlImpulse zu vermeiden

    bDUDUDNZ

    NUD-...,\.........~U2 '----1

    N~~~

    U]NU2

    NEXT

    ~~--no ~--'

    SNU!

    U!NEXT

    blJo--t:>o---NbOINV

    NEXTo---l)o---NNEXTINV

    UAEHLEA

    RESETL

    Sr ZCLOCK NZ

    CLOCKo--(:>o---NCLOCKINV

    STRRT~ffC SCLOCK

    RESET

    RESETc_----RESET

    Bild 2.26: Schaltbild der realisierten Ablaufsteuerung

    1'1 + +~.!:----:::__-"'-__.:..J+nL...----"__--"-__.:..J+rfL..-~___::....._~I-.J t, • • n. • • nL-_.J;'-==_-O::-'__-l

    .r1 • .r1. • .r1Jl -wr L--....:.:-.__-:..~r;----;l:...-__'-'~:.Jl + '~L-:-'::"-__-l

    o ..... + 0 • .rr "V' 0 • .0 ..... • 0

    + +

    ] 5~0. 0 2660.0 ~020. 0 5560.0 6700. D 60~0.0 9560.0 10720.0

    Bild 2.27: Ergebnis der Logiksimulation

  • 2.4 Logiksynthese von endlichen Zustandsautomaten 43

    Zum Abschluß dieses Abschnittes soll durch Verallgemeinerung der Problemstellungdes letzten Beispiels übergeführt werden auf den nächsten Abschnitt. Bild 2.28 zeigtdas Grundschema einer Registerstruktur zur Realisierung eines Algorithmus zurSignalverarbeitung von Daten, gesteuert durch eine Ablaufsteuerung. DieRegisterstruktur empfängt Daten und liefert verarbeitete Daten. Der Ablauf derVerarbeitung wird gesteuert durch die Steuerausgangssignale, die wiederum werdenveranlaßt durch die Steuereingangssignale und Entscheidungsvariable.

    Dateneingang

    Reg. H

    I

    Steuereingänge

    1"\, ., ., ,/ \

    ( \Schaltnetz

    Reg. A

    I I! I

    If

    \ /\ i\/

    SteuersignaleEntscheidungsvariable

    Ablauf-steuerung

    Datenausgang

    ~17

    St atusausgänge

    Bild 2.28: Registerstruktur mit Ablaufsteuerung zur Realisierung eines Algorithmuszur Signalverarbeitung von Daten

  • 44 2. Zum Systementwurf

    2.5 Höhere Abstraktionsebenen von digitalen Funktionen

    2.5.1 Zur Registertransfer-Beschreibung

    Für den Entwurf komplexer Elektroniksysteme ist eine höhere Abstraktionsebeneerforderlich. Systeme mit 100.000 Gatterfunktionen und mehr können nicht aufGatterebene sinnvoll entwickelt werden. Durch Einführung von Blockfunktionen unddurch ein hierarchisches Konzept läßt sich auf einer höheren Abstraktionsebene dieFunktionalität beschreiben. Die algorithmische Ebene ist die heute mitEntwurfswerkzeugen darstellbare höchste Beschreibungsebene. Auf einer höherenBeschreibungsebene gewinnt man an Übersicht, es lassen sichRealisierungsalternativen leichter verifizieren. Gleichzeitig wird die Menge der Datenfür die Entwurfsdarstellung erheblich reduziert (Bild 2.29).

    1

    1 M -

    I(Byte)

    100 k -

    Daten-menge

    10 k -I-

    1 k IAlgorith.

    BeschreibungRegister-transfer-

    beschreibung

    Logik-pion

    . Layout

    --~[>Grad der Verfeinerungder Entwurfsdarstellung

    Bild 2.29: Beispiel für die erforderliche Datenmenge bei unterschiedlichen. Entwurfsdarstellungsartell

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen 45

    Registertransferbeschreibung. In der Registertransferbeschreibung wird der Datenflußzwischen Logikfunktionen dargestellt. Die Datenflußbeschreibung erfolgt z.B. aufWortebene. Ahnlieh wie in einer Programmiersprache werden Verknüpfungenzwischen Variablen (Datenwörtern) und Zuweisungen an Variable formuliert. DieseZuweisungen. werden auch Mikroanweisungen genannt. Zumeist sind bestimmtenVariablen Register in einer späteren Implementierung zugeordnet. DieRegistertransferbeschreibung ist im Prinzip die Steuerung des Datenflusses aufBusebene über Register und deren Verknüpfungssteuerung. Prinzipiell unterscheidetman folgende Formen einer Registertransferbeschreibung:

    * A

  • 46 2. Zum Systementwurf

    In Bild 2.30 ist das Operationswerk als Funktionsblock dargestellt. Der Blockempfängt Daten und gibt Daten wieder an nachgeordnete Funktionseinheiten ab. DerDatenfluß wird über Steuer-Variable, d. h. Steuersignale gesteuert. Die Steuersignaleliefert das Steuerwerk; sie sind abhängig von Entscheidungsvariablen. Damit ist derAblauf des Steuerwerkes abhängig von den Steuereingängen und vonEntscheidungsvariablen des Operationswerkes. Das Operationswerk selbst besteht auseiner Registerstruktur mit Datenleitungen und Steuerleitungen. Der Datenfluß erfolgtüber die Datenleitungen gesteuert durch die Steuersignale. Die Blockstruktur desOperationswerkes ist in Bild 2.31 dargestellt, mit dem Datenfluß zwischen denRegisterblöcken. Das Schaltnetz SN ist eine arithmetisch/logische Einheit (ALU) zurAusführung von Grundoperationen. Konkret wird der Datenfluß in Abhängigkeit desdecodierten Befehls über Ablaufsteuerungen gesteuert.

    A: A-Register (Akkumulator)

    B: B-Register (Multiplikator-Register)

    H: Hilfsregister (Multiplikanden-Register)

    S: Speicherregister

    P: Befehlszähler

    SN: Schaltnetz fur arithmetische

    und logische Operationen (kein Register!)

    u: Hilfsbit zur Komplementierung (Flipflop)

    0: Überlaufbit "Overflow" (Flipflop)

    c: Überlaufbit "Carry" (Flipflop)

    lfEJ~~~~~~~~~~~~~~~~~i~

    Speicher

    Bild 2.31: Blockschaltbild ein~s Operationswerkes mit Busleitungen für denDatenfluß zwischen den Registerblöcken

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen 47

    Bild 2.32 zeigt dieselbe Registerstruktur wie III Bild 2.31, jetzt aber mitSteuersignalen, den Steuer-Variablen. Die Steuer-Variablen werden von einerAblaufsteuerung erzeugt. Die Ablaufsteuerung ist Teil des Steuerwerks. Ein Beispielfür die Realisierung einer Ablaufsteuerung zur Multiplikation zweier Dualzahlenwurde im Abschnitt 2.4 behandelt.

    oHp

    Bild 2.32: Operationswerk mit den Steuer-Variablen zur Steuerung des Datenflusses

  • 48 2. Zum Systementwurf

    In der nachstehenden Tabelle 2.1 sind emige wichtige Steuer-Variable für dieAusführung von Mikrobefehlen eines Operationswerkes dargestellt. EineBefehlsanweisung läßt sich in eine Folge von derartigen Mikrobefehlen auflösen.

    Tabelle 2.1: Mikrobefehle und Steuer-Variable eines Operationswerkes mit denzugeordneten Operationen

    Steuer-Variable Mikrobefehle Operationen

    XOA X2 AX4 (A)+(H)+(u) ~ A Addition

    X3 (A)A(H) ~ A Konjunktion

    X2 (A)v(H) ~ A Disjunktion

    X2A X4 (A)E9(H) ~ A Disvalenz

    X, AX2 AX3 AX4 CA) ~ A NegationX3A X4 o ~ A LöschenX2A X3 (H) ~ A Transport400-LAA ZA (A)Cn-f ~ A Shift. zyklisch

    LAA DA WO ~ A Shift. arithmetisch

    RAA CACO W~A Shift. zyklisch

    RAcn-1W

    ~A Shift. arithmetisch

    X7 0 ~B Löschen

    AB (A) ~B Transport

    RB bn-'M ~B Shift. arithmetisch-LAALABALB AZAB (AB)cn-l ~ AB Shift. zyklischLAA LAB ALB " OB

    (A"B)0~ AB Shift. arithmetisch

    RA" CAB AR B "RAB b0(AB) ~ AB Shift. zyklisch

    RAA RB ARAB Cn-l (AB) ~ AB Shift. arithmetischXa (R) ~H NegationXg 0 ~H LöschenAH (A) ~H TransportHs (H) ~s Transport

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen 49

    Das skizzierte Beispiel in Bild 2.33 soll verdeutlichen, wie hardwaremäßigMikrobefehle erzeugt und damit der Datenfluß auf Registertransferebene gesteuertwird. Durch eine Folge von Mikrobefehlen kann ein bestimmter Befehl ausgeführtwerden. Die Folge von Mikrobefehlen wird durch eine Ablaufsteuerung mitSteuer-Variablen realisiert. Bild 2.33 zeigt ausschnittweise die Befehlsausführung ineinem Prozessor durch sog. Mikroprogramme. Die Befehlsausführung startet in einembestimmten Anfangszustand und endet in einem definierten Zustand. Vor derBefehlsausführung müssen in entsprechenden Speicherzyklen die erforderlichenOperanden bereit gestellt werden. Ein Speicherzyklus wird wiederum von einerAblaufsteuerung kontrolliert.

    ADDSUB

    MULT(Z) ;i; 0 A bo "" 0 --; -,-

    (z) ;i; 0 A bo = 1 A hn- 1 = 1-

    (Z) ;i; 0 A bo = 1 1\ hn-1 = 0 -

    (Z) = 0 1\ bo = 0 - -(Z) = 0 1\ bo = 1 - - -

    hn-1 hl ho

    D H-Reg CDCn-1 C, Co bn- , b, bo

    D A-Reg CD D B-Reg CD

    (ii) - Bo 0 - A; 0 - u; 0 - c; n-l - Zc-(AB) - AB ; (Z) - 1 - Z

    - (A) + (H) + (u) - A; 1 - C

    - (A) + (H) + (u) - A

    -C(A8)_AB: (Z) - 1-Z

    -(H)-H; l-u

    - - (A) + (H) + (u) - A

    Bild 2.33: Beispiel: Ablauf eines MuItiplikationsbefehls mit Mikrobefehlen

    Mit einer geeigneten Hardwarebeschreibungs~prache läßt sich der Datentransf~r einerBlockfunktion auf Registertransferebene mit den entsprechenden Entscheidungs-Variablen und Steuer-Variablen beschreiben.

  • 50 2. Zum Systementwurf

    2.5.2 Zur algorithmischen Beschreibung

    Im Gegensatz zur Registertransferbeschreibung ist auf der algorithmisc~enBeschreibungsebene eine Schaltungsstruktur noch nicht festgelegt. De~ Unter~.cllledverdeutlicht Bild 2.34. Während das algorithmische Verhalten im .gewahlt~neinfachen Beispiel in einer Zeile ~ormulie~~ werde~ kann, 1l1~t dieRegistertransferbeschreibung Bezu~ ~uf eI~le ~ewahlte .Regl~terstruk!ur. ZIe.1 d~ralgorithmischen Synthese ist es beispielsweise eine Konfiguration zu finden, die miteiner minimalen Registerzahl auskommt.

    c

    D--~

    AlgorithmischeBeschreibung:

    B = C + 0

    Rück-führung

    Registertransfer-beschreibung:

    B = DB = B + C

    Bild 2.34: Einfaches Beispiel einer Registertrallsferbeschreibung

    Im Algorithmus kann auch festgelegt werden, wie die Ausgänge auf Ereignisse an denEingängen und in Abhängigkeit von den inneren Zuständen (Entscheidungsvariable)reagieren. In einem Zeitmodell werden die Verzögerungszeitcn ermittelt, mit denendie Ausgangszustände zeitlich verzögert reagieren, um auch das Zeitverhalten desFunktionsblockes richtig zu beschreiben.

    Es genügt nicht, einen Funktionsblock auf algorithmischer Ebene zu beschreiben undzu verifizieren, man muß schließlich eine diese Funktion realisierendeSchaltungsstruktur finden. Die Methodik der algorithmischen Synthese ist heute invielen Bereichen ein Forschungsthema. Hierzu sei auf weiterführende Literaturverwiesen z.B. /8/.

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen

    2.5.3 Hardwarebeschreibungssprachen

    51

    Die algorithmische Beschreibung einer Logikfunktion ist nur mit einer geeignetenHardwarebeschreibungssprache möglich. Die Formulierung des Algorithmus erfolgtin der Regel in textueller Form. Dies erfordert ein erhebliches Umdenken für denSchaltungsentwickler, da er bisher gewohnt war, die Schaltungsstruktur seinerFunktionsmodule grafisch mit Schaltungsprimitiven darzustellen. Hardware-beschreibungssprachen haben ihren Ursprung in Programmiersprachen wie PASCAL,C oder ADA. Damit können Verhaltensmodelle für Funktionsblöcke mitunterschiedlichem Detaillierungsgrad von der Systemebene, der Registertransferebenebis zur Logikebene gebildet werden. Als IEEE-Standard wurde dieHardwarebeschreibungssprache VHDL (VHSIC-Hardware Description Language)eingeführt. In VHDL ist ein ENTITY- Konzept realisiert. Die Schnittstelle desFunktionsblocks wird in der ENTITY- Declaration beschrieben. Die eigentlicheRealisierung der Architektur erfolgt in der ARCHITECTURE-Declaration. DieFormulierung ist ähnlich der von PASCAL oder ADA. Im Vergleich zu einerherkömmlichen Programmiersprache lassen sich auch nebenläufige Aktionen und dasTiming-Verhalten von Grundelementen beschreiben.

    Anhand eines einfachen Beispiels in Form eines Multiplexers (Bild 2.35) soll dieDarstellung und die Verhaltensbeschreibung eines Funktionsblocks mit VHDLveranschaulicht werden. Herkömmlich wird ein Funktionsblock symbolisch mitSchaltungsprimitiven dargestellt (Bild 2.35). Diese symbolische Designstruktur läßtsich auch mit VHDL beschreiben (Tabelle 2.2). Das Verhalten der verwendetenSchaltungsprimitiven ist in der Verhaltens-Beschreibung (Tabelle 2.3) festgelegt.Dort wird auch das reale Timing-Verhalten berücksichtigt. Bei derSchaltungsverifikation sollen mehrere Realisierungsalternativen überprüft werdenkönnen. Die Auswahl einer Alternative zur Beschreibung des Funktionsblockes wirdin der CONFIGURATION-Declaration festgelegt (Tabelle 2.4). Im konkretenBeispiel beschreibt z.B. das nancLgate-Modell gekennzeichnet durch den Namen"behavioral" die Gatter Gl,G2 und G3. Diese einfache Schaltungsstruktur mit denGattern GO,Gl,G2 und G3 bildet einen Funktionsblock, der durch einVHDL-Modell beschrieben wird.

    0------1

    C --.,----1

    b----1

    G1

    & e G3

    & 9

    Bild 2.35: Symbolische Darstellung eines Funktionsblocks mit Schaltungsprimitiven

  • 52

    Tabelle 2.2: Designstruktur des Funktionsblockes in VHDL

    ENTITY mux ISPORT (a,b,c: IN BIT; g: OUT BIT);

    END mux;

    2. Zum Systementwurf

    ARCHITECTURE structural OF mux ISCOMPONENT inv_gate PORT (a:IN BIT;y:OUT BIT)!END COMPONENT!COMPONENT nand_gate PORT (a,b:IN BIT!y:OUT BIT);END COMPONENT!SIGNAL d,e,f: BIT!

    BEGINgO:inv_gate PORT MAP(c,d);gl:nand_gate PORT MAP(a,c,e);g2:nand_gate PORT MAP(d,b,f);g3:nand_gate PORT MAP(e,f,g)!

    END structural!

    Die Designstruktur in Tabelle 2.2 enthält die Bauteilliste, die Netzliste und dieNetz- und Verbindungsliste. Damit ist die Schaltungsstruktur festgelegt. In derPORT-Anweisung werden die nach außen gehenden Schnittstellen erklärt.

    Tabelle 2.3: Verhaltensbeschreibung des NAND-Gates bzw, Inverters mit VHDL

    ENTITY nand_gate ISPORT (a,b: IN BIT; y: OUT BIT);

    END nand_gate;ARCHITECTURE behavioral OF nand_gateISBEGIN

    Y

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen

    Tabelle 2.4: Designkonfiguration; Auswahl einer Alternative für die Simulation

    CONFIGURATION parts OF simple ISFOR structural

    FOR gO:inv_gate USE ENTITY work.inv_gate(behavioral);END FOR;FOR gl,g2,g3:nand_gate USE ENTITY work.nand_gate(behavioral);END FOR;

    END FüR;END parts;

    53

    Mit der in Tabelle 2.4 dargestellten Prozedur wird eine bestimmteSchaltungsrealisierung konfiguriert. Das heißt, einzelne Schaltungsmodule sindaustauschbar. Dies erhöht ganz erheblich die Flexibilität bei der Verifikationbestimmter Realisierungsalternativen.

    Ein weiteres einfaches Beispiel ist in Bild 2.36 dargestellt. Hier wird mitGatterprimitiven ein RS-Flipflop beschrieben.

    RES

    SET

    G1 G8

    Q

    Bild 2.36: Symbolische Beschreibung der Schaltung (z.B. RS-Flipflop)

    Bild 2.36 zeigt die herkömmliche symbolische Schaltungsbeschreibung. Nachstehendist dargelegt, wie ein derartiger Funktionsblock in VHDL beschrieben wird, so daßder Funktionsblock auch simulierbar ist.

  • 54 2. Zum Systementwurf

    Tabelle 2.5 enthält die VHDL-Modelle der Schaltungsprimitive. Dabei ist auch dasTiming-Verhalten enthalten.

    Tabelle 2.5: Modelle von Schaltungsprimitiven in VHDL-Beschreibung

    -- ***** nand_gate model *****-- external portsENTITY nand_gate I8

    PORT (a,b: IN BIT; y: OUT BIT);END nand_gate;

    -- internal BehaviorARCHITECTURE behavioral OF nand_gate I8BEGIN

    Y (= a NAND b AFTER 1 ns;END behavioral;

    -- ***** inv_gate model *****-- external portsENTITY inv_gate I8

    PORT (a: IN BIT; y: OUT BIT);END inv_gate;

    -- internal BehaviorARCHITECTURE behavioral OF inv_gate I8BEGIN

    Y (= NOT a AFTER 1 ns;END behavioral;

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen 55

    In Tabelle 2.6 ist die Designstruktur des einfachen Beispiels dargestellt. Darin wirdgezeigt wie die Schaltungsstruktur, symbolisch festgelegt in Bild 2.36, mit VHDLbeschrieben wird.

    Tabelle 2.6: Designstruktur eines RS-Flipflops in VHDL-Beschreibung

    -- ***** rs flip-flop model *****-- external portsENTITY rsff I8

    PORT (res,set: IN BIT, Q: OUT BIT);END rsff;

    -- internal structureARCHITECTURE structural OF rsff IS

    -- component types to useCOMPONENT nand_gate

    PORT (a,b: IN BIT, y: OUT BIT); END COMPONENT,COMPONENT inv_gate

    PORT (a: IN BIT; y: OUT BIT), END COMPONENT;

    internal signalsSIGNAL ql,q2; BIT;

    BEGINgO:inv_gate PORT MAP (ql,q);gl:nand_gate PORT MAP (res,q2,ql);g2:nand_gate PORT MAP (ql,set,q2);

    END structural,

    In der ENTITY- Declaration werden die Schnittstellen des Funktionsblocks nachaußen festgelegt; in der ARCHITECTURE-Declaration erfolgt die Festlegung derinneren Schaltungsstruktur . Verwendet werden dabei die Modelle, definiert inTabelle 2.5.

  • S62. Zum Systementwurf

    Nun soll diese Darstellung eines RS-Fliptlops für die Schaltungssimulationverwendet werden. Dazu benötigt man u.a. die Festiegung der Testsignale. In Tabelle2.7 ist die Festiegung von Testsignalen für das RS-FIipnop dargestellt. DieENTITY -Declaration "rsfLstim" definiert einen Stimulus-Vektor für dasRS-Flipflop.

    Tabelle 2.7: Teststimuli für das RS-Fliptlop

    ENTITY rsff_stim 18PORT (res,set: OUT BIT; q: IN BIT);

    END rsff_stirn;

    ARCHITECTURE behavioral OF rsff_stirn 18BEGIN

    set

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen 57

    Für die Verifikation der Schaltungsfunktion muß der Stimuli-Generator (generator)und der Schaltkreis (circuit) festgelegt werden. Tabelle 2.9 zeigt dies anhand unsereskleinen Beispiels.

    Tabelle 2.9: RS-Flipflop-Test-Bench für die Verifikation

    ENTITY rsff_bench 18END rsff_bench;

    ARCHITECTURE structural OF rsff_bench ISCOMPONENT rsff_stim PORT (res,set: OUT BIT; q: IN BIT); END COMPONENT;COMPONENT rsff PORT (res,set: IN BIT; q: OUT BIT); END COMPONENT;SIGNAL res,set,q: BIT;

    BEGINgenerator:rsff_stim PORT MAP(res,set,q);circuit:rsff PORT MAP(res,set,q);

    END structural;

    CONFIGURATION parts OF rsff_bench 18FÜR structural

    FÜR generator:rsff_stim U8E ENTITY work.rsff_stim(behavioral);END FÜR;FOR circuit:rsff USE ENTITY work.rsff(structural);

    FÜR structuralFOR gl,g2:nand_gate U8E ENTITY work.nand_gate(behavioral);END FOR;FOR gO:inv_gate U8E ENTITY work.inv_gate(behavioral); END FOR;

    END FOR;END FOR;

    END FOR;END parts;

    Das Ergebnis der Verifikation des Schaltungsverhaltens ist inDazu ist ein Schaltungssimulator erforderlich, der dieinterpretieren kann.

    Bild 2.37 dargestellt.VI-IDL-Beschreibung

    + -I- + + + + +RES

    + + + + + -I- + SET

    t---. + + + r + + + Q+I-' + + + + +

    QI+ +

    t---. + + + r + + + Q2+5.8 18.8 15.8 28.8 25.8 38.8

    35.8 IW.8

    Bild 2.37: Ergebnis des Zeitverhaltens der Verifikation eines RS-Flipflops

  • 58 2. Zum Systementwurf

    Die beiden bisher betrachteten Beispiele (Multiplexer und RS-Flipflop) zeigen dieAnwendung der VHDL-Beschreibung auf Logikebene für sehr einfache Funktionen.Der Vorteil der Hardwarebeschreibungssprache liegt aber gerade darin komplexeSchaltungsfunktionen zu beschreiben. Tabelle 2.10 zeigt die VHDL-Darstellungeines Barcode-Prozessors /16/. Der Barcode-Prozessor dient zum schnellenAuswerten des durch einen Laser-Scanner oder durch eine CCD-Kameraaufgenommenen Strichcodes. Der Sensor liefert im gewählten Beispiel dasVideosignal VIDEO; das Steuersignal SCAN kennzeichnet den Scan-Mode.Realisiert werden kann der Barcode-Prozessor z.B. durch einenGate-Array-Baustein. Eine Software-Realisierung basierend auf Standard-Mikroprozessoren wäre vergleichsweise langsam. Der Barcode-Prozessor enthältweniger als 1000 Gatteräquivalente; er hat folgende Aufgaben zu erfüllen:

    * Messen und Ausgeben der Breite aller Balken,DATA: Breite des aktuellen Balkens,ADDR: Nummer des aktuellen Balkens,WRONG: kennzeichnet eine ungültige Ausgabe;

    * Zählen der Anzahl der Balken, solange bis die vorgegebene BalkenzahlBKZN erreicht ist;

    * Erkennen des Strichcode-Musters; mit READY wird die Erkennungsignalisiert.

    ADY

    ONG

    TA

    DR

    AN REEO Barcode- WR

    ART DAZN Prozessor AD

    SC

    VID

    ST

    BK

    Bild 2.38: Barcode-Prozessor

    Mit der .in T~belle 2:10 realisierten VHDL-Beschreibung ist der Anwender in derLage mit einem SImulator den gewählten Algorithmus zu verifizieren undgegebenenfalls Alternativen zu erproben.

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen 59

    Tabelle 2.10: Funktionsmodell für den Barcode-Prozessor in VI-IDL-Beschreibung

    -- Prozessor zur schnellen MustererkennungENTITY barcode IS

    PORT (scan IN boolean; Scan-Signal eines Laser-Scannersvideo IN bit; Videosignal eines Laser-Scannersstart IN boolean; Start-Signal für den Prozessorbkzn IN integer; Zahl der Balken des Strichcodesready OUT boolean; Der Strichcode wurde erkanntwrong OUT bit; Ausgabe ist ungültigdata OUT integer; Breite des aktuellen Balkenaddr OUT integer; Nummer des aktuellen Balken

    zählt die Breite der weißen BalkenZählt die Breite der schwarzen BalkenZählt die Anzahl der BalkenMerker zur Erkennung eines S-W ÜbergangsWeiß entspricht '0'Schwarz entspricht 'I'

    -- Bis das Strichcode-Muster erkannt wurde

    integer;integer;integer;bit;bit := '0';bit .= '1';

    ) ;

    END barcode;ARCHITECTURE sequential OF barcode ISBEGIN

    PROCESSVARIABLE weissVARIABLE schwVARIABLE bkzVARIABLE markerCONSTANT wOCONSTANT sI

    BEGINready

  • 60 2. Zum Systementwurf

    ELSEschw = schw + 1;IF marker = wO THEN

    bkz := bkz + 1;wrong (= '0';

    ELSEwrong (= '1';

    END IF;marker := sI;weiss := 0;data (= schw;

    END IF;addr (= bkz;EXIT WHEN (weiss 255) OR ( schw = 255);

    END LOOP;EXIT WHEN (bkz = bkzn) AND ( weiss = 255);

    END LOOP;wrong (= '0';ready (= true; -- Ende Meldung an die externe SteuerungWAIT UNTIL start = false;END PROCESS;

    END sequential;

    Die wenigen Beispiele dieses Abschnittes sollen die Möglichkeiten einerHardwarebeschreibungssprache aufzeigen. Für eine ausführliche Darstellung derVHDL-Beschreibung von Logikfunktionen sei auf /14/ bis /16/ verwiesen. Das inTabelle 2.10 behandelte Beispiel ist der algorithmischen Ebene zugeordnet. Es wirddort nicht auf eine Registerstruktur Bezug genommen. Nicht berücksichtigt werdendabei die zeitlichen Abläufe; dies müßte in einem verfeinerten Modell vorgenommenwerden. Der algorithmische Ablauf läßt sich auch in einem Struktogramm darstellen.Tabelle 2.11 zeigt dies für das Beispiel Barcode-Prozessor.

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen

    Tabelle 2.11: Struktogramm für den Algorithmus des Barcode-Prozessors

    ready

  • 62 2. Zum Systementwurf

    2.5.4 Zum Schaltungsentwurf mit CAE-Workstations

    In zunehmendem Maß werden höhere Abstraktionsebenen bei der Entwicklung durchEntwurfswerkzeuge unterstützt. Bild 2.39 zeigt die bisherige Vorgehensweise bei derEntwurfsdarstellung und Entwurfsverifikation auf einer CAE-Workstation. Zunächstwird die symbolische Schaltungsstruktur bis auf Gatterebene aufgebaut, anschließendverifiziert. Nach erfolgreicher Verifikation der Logikfunktion wird die geometrischeSchaltungsstruktur, das Layout, erstellt. Zur Vertiefung dieses Abschnittes sei auf/17/, /18/ verwiesen.

    Verhalten Schaltungsstruktur

    Leistungsanforderungen

    Algorithmen

    CPU. Speicher

    Hardware Module

    von Zellen

    ALU, MUX, Register

    Gatter, Flipflops

    Transistoren

    ~~Polygone

    )

  • 2.5 Höhere Abstraktionsebenen von digitalen Funktionen 63

    In einer Weiterentwicklung der Vorgehensweise nach Bild 2.39 wird aufRegistertransferebene zunächst die Registerstruktur und deren Verknüpfungsymbolisch beschrieben (Bild 2.40). Nach erfolgreicher Verifikation desLogikverhaltens mit einer Registertransferbeschreibung wird eine Vorplazierung derBlockfunktionen auf geometrischer Ebene (Floorplanning) vorgenommen. DieBlockfunktionen werden dann aufgelöst bis auf Gatterebene und herkömmlich miteinem Logiksimulator verifiziert. Nach erfolgreicher Verifikation wird das kompletteLayout erstellt.

    Verhalten Schaltungsstruktur

    CPU, Speicher

    Hardware Module

    ALU, MUX, Register

    Algorithmen _ _ -.._---_..__.._-_ ..t~ .... ,

    Register Transfer{ ~ ...........-_..------_.._-.........

    Bcolesche Gleichur{gen," "'" Gatter, FlipflopsI I 1~

    Differentialgleibhurlgen Trchslstoren\ \1 1\ I I,'

    i \\ \ 1,1

    \ '\\ ', ~;. Polyqone'\ i\ -, } /

    \ "'i,' /Plaz,Verung von Zellen\"~ .. ,

    ~ /"\, "

    """0(: "{Ioorplan

    Leistungsanforderungen

    Cluster

    Geometrische

    Partitionierung

    Geometrie

    Bild 2.40: Zweite Generation eines CAE-Systems

  • 642. Zum Systementwurf

    Künftig wird bei CAE-Systemen auch eine algorithmische. Beschreibung undalgorithmische Synthese ~?n L?gi~funk~ione~ mit einer geeIgneten Hardware-beschreibungssprache verstarkt möglich sein (BIld 2.41).

    Verhalten SchaLtungsstruktur

    L . t f d CPU, Speicherers ungsan or :~gU~~:~men ,., - -..----.--.-- --- \; Hardware Module

    Register Transfer ,." -.-------- - , AL~" MUX, Register. \

    Boolesche Gleichu~gen, "•....-..-...---..-..--..." Gat~r, ~IipflopsI I ~. \ IJ : \. \ \

    Differentialglei~hu~gen tronststoren \\, \, ' . ,

    \ \ 1\ \ I , I

    \ \ \ \ I\ \ ! I I\ '. ,~Polygone i i\ \" '\ " I I\ -, \ I : /

    \ " } i ! I\,-" "'1; /Plazi~Gng f0rf Zellen

    -, /,,/ / /""'1' -'f'i~orpI9J::>/

    ././..' ......~(cfit;r .

    Geometrische

    Partiti onierung

    Geometrie

    Bild 2.41: Dritte Generation eines CAE-Systems

    Um aus einer Architektur-Beschreibung eine Logiksynthese vornehmen zu können,muß sichergestellt sein, daß diese Beschreibung auch in Hardware umsetzbar ist.Allgemeine Hardwarebeschreibungssprachen erlauben auf algorith