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