1 Einleitung.- 1.1 Behandelte Fragestellungen.- 1.1.1 Spezifikation.- 1.1.2 Entwurfsverfahren.- 1.1.3 Maschinelle Synthese.- 1.1.4 „Backend“.- 1.1.5 Wiederverwendung eines Modells.- 1.2 Ergänzende Literatur.- 1.3 Entwurf.- 1.3.1 Modellierung.- 2 Rolle eines Modells bei der Verifikation.- 2.1 Verifikationsmethoden.- 2.1.1 „Review“.- 2.1.2 Versuch.- 2.1.3 Beweis.- 2.2 Getrennte Verifikation von Funktion, Timing und Aufwand.- 2.3 Entwurfsfehler, Stimuli und Waveforms.- 2.3.1 Arten von Entwurfsfehlern.- 2.3.2 Verfahren der Stimulierzeugung.- 2.3.3 Erleichterte Inspektion der Signale durch Komprimierung.- 2.4 Simulation, ASIC-Emulation oder Prototyp?.- 3 Modelle: Verbergen und Vernachlässigen.- 3.1 Signale.- 3.2 Strukturmodelle und deren Konfiguration.- 3.3 Verhaltensmodelle: Abstraktion statt Hierarchie.- 3.4 Simulatorkonzepte.- 3.5 Signalflußrichtung.- 3.6 Designprozesse.- 3.7 Abstrakte Modellierung.- 3.7.1 Arten der Abstraktion.- 4 Strukturinformation (SI): Geometrie bis Kombinatorik.- 4.1 Abstraktionsmechanismen.- 4.2 Geometrie.- 4.3 Topologie.- 4.4 Gatterebene.- 4.4.1 Modellierung der Verzögerungszeit.- 4.4.2 Verschiedene Gattermodelle.- 4.4.3 Abstraktionsgrad der Gatter-„ebene“.- 4.5 Kombinatorik und Register (SI.CR).- 4.5.1 Kombinatorik.- 4.5.2 Simulations- versus Synthesesemantik.- 4.5.3 Einfache und komplexe Kombinatorik.- 4.5.4 Vor-und Nachteile der Abstraktion.- 4.5.5 Register.- 5 Strukturinformation (SI): FSM und Erweiterte FSM.- 5.1 Synchroner Entwurf.- 5.1.1 Transienter und stabiler Zustand.- 5.1.2 Abstraktions-„ebene“: RT-Ebene.- 5.2 „Multiprocess“ -Modellierung (SI.MP).- 5.2.1 Kombinatorik: Unvollständige „sensitivity list“.- 5.2.2 Risiko: Akkumulation von Timingpfaden.- 5.3 „Single-Process“ -Modellierung (SI.SP).- 5.3.1 Vollständige Spezifikation eines Ausgangswerts.- 5.3.2 Gemeinsamer Teilausdruck („common subexpressions“).- 5.3.3 Speicherung von Variablen in einem getakteten Prozeß.- 5.3.4 Ergänzte Moore-FSM: Entwurfssicherheit und schnelle Reaktion.- 5.4 EFSM: Getrennter Kontroll-und Datenzustand.- 5.4.1 EFSM: Explizite Datenpfade (SI.ED).- 5.4.2 EFSM: Implizite einfache Datenpfade (SI.ISD).- 6 (SI.ICS) Implizite Modellierung des Kontrollzustands: Herleitung.- 6.1 Kompakte Modellierung und Rescheduling.- 6.2 „Wait“ -Anweisung statt „sensitivity list“.- 6.3 „single-process“ -Schablone einer (E)FSM.- 6.4 Modellierung mit bedingten Sprüngen.- 6.5 Modellierung mit strukturierten Sprachmitteln.- 6.6 Modellierung ohne eine lineare Zustandssequenz.- 7 Analyse der Kontrollpfade.- 7.1 Analogie auf der Gatterebene: Timinganalyse.- 7.2 Kontrollpfad-Analyse.- 7.2.1 Gemeinsamer Teilausdruck und Mehrfachnutzung.- 7.2.2 Untersuchung der Realisierbarkeit.- 7.3 Zyklen in vollständigen Kontrollpfaden.- 7.3.1 „Statisch bestimmte“ Ausdrücke.- 7.3.2 Schleifen ohne „wait“ -Anweisung.- 7.3.3 Schleifen mit „wait“ -AnWeisungen.- 7.4 Notwendiges Scheduling und Durchsatzanpassung.- 7.4.1 Algorithmus, Durchsatz und Effizienz.- 7.4.2 Empirische Pfad Verteilungen und die Taktfrequenz optimaler Effizienz.- 7.4.3 Durchsatzanpassung durch Neu-Synthese?.- 8 Umformung durch Rescheduling.- 8.1 Analogie auf der Gatterebene: Retiming.- 8.2 Timing bei (SI.ICS).- 8.3 Regeln des Re-scheduling.- 8.3.1 Funktionales und zeitliches Klemmenverhalten.- 8.3.2 Lineare Sequenz von Anweisungen.- 8.3.3 Sequenz von Anweisungen mit einer bedingten Verzweigung.- 8.4 Durchsatzanpassung durch Rescheduling.- 8.4.1 Verringerung des Durchsatzes.- 8.4.2 Durchsatzreduzierung am Beispiel des PID-Reglermoduls.- 8.4.3 Erhöhung des Durchsatzes.- 8.4.4 Schnittstellenüberbuchung und Datenabhängigkeiten.- 8.5 Automatisches Rescheduling.- 9 (SI.ICS): Schleifen, Beispiel und Initialisierung.- 9.1 „while“ — und „for“ -Schleifen.- 9.2 Implizite Zustandsmodellierung an einem Beispiel.- 9.2.1 Modellierung der Einheit „transmitter“.- 9.2.2 Kontrollpfad-Analyse.- 9.3 SI.ICS: Vor- und Nachteile.- 9.4 „reset“ — und „interrupt“ -Modellierung.- 9.5 Bemerkungen.- 9.5.1 Graphisches versus textuelles Verhaltensmodell.- 10 SI.ICD: Abstraktion „DSP-Block“?.- 10.1 Implementierung eines Algorithmus.- 10.2 Emulation einer „Datenfluß“ -Simulation.- 10.3 Implizite Modellierung komplexer Datenpfade.- 10.4 EFSM-Konzept und Wert/Zeit-Relation.- 10.5 Abstraktionsgrad verschiedener Blöcke.- 10.6 Abstraktions stufen der Strukturinformation (SI).- 10.7 Bemerkungen.- 10.7.1 Protokollierung und graphische Nachbearbeitung.- 11 Vereinfachte Modellierung eines funktionalen Aspekts (FC).- 11.1 Verhalten nach der Aktivierung der „reset“ -Leitung.- 11.2 Systemebene: Programmierbare Einheit.- 12 Abstrakte Datentypen (AD).- 12.1 Definition durch Bitfelder.- 12.2 Abstrakter Datentyp.- 12.3 Datentypen als ein Abstraktionsmechanismus.- 12.3.1 Übergang zu konkreten Datentypen an einem Beispiel.- 12.4 Übersicht: Stufen und Übergänge.- 12.5 Polymorphe Signale.- 13 Modellierung der Wert/Zeit-Relation (VT).- 13.1 Software versus Hardware.- 13.2 Zeitskalen der simulierten Zeit.- 13.2.1 Reduktion der Ereigniszahl.- 13.3 Zweidimensionale Zeitskala in VHDL.- 13.3.1 Das „gepufferte“ Taktsignal.- 13.4 Abstraktionstufen der Wert/Zeit-Relation.- 13.5 Transformationen.- 13.6 Stufen der Zerlegung („Decomposition“).- 13.6.1 Einführung eines Taktes.- 14 Modellierung mit dem ’U’-Wert.- 14.1 Ursachen und Vermeidung zufälligen Verhaltens.- 14.2 ’U’-Wert auf verschiedenen Abstraktionsebenen.- 14.3 Ausreichende Initialisierung.- 14.4 Erweiterung des Wertebereichs.- 14.4.1 IEEE Standardwertesatz: „std_ulogic“.- 14.4.2 Abstrakte Datentypen.- 14.4.3 Simulations- versus Synthesesemantik.- 14.5 Erweiterung der Modelle.- 14.6 RT-, Gatterebene und die Realität.- 14.6.1 Einfluß einer logischen Umformung auf das’U’-Verhalten.- 14.6.2 Aussagekraft einer Simulation mit ’U’.- 14.7 Einführung von „std_ulogic“ -Typen.- 14.7.1 Mehrfachnutzung von Registern und Datenpfaden.- 14.8 Abstrakte Datentypen oder „std_ulogic“ -Typen?.- 14.9 Bemerkungen.- 15 Entwurfsstudie: „WM“.- 15.1 Schrittweises Zerlegen und Verfeinern.- 15.2 Spezifikation.- 15.3 VT.F: Früher Prototyp.- 15.3.1 Einfache Implementation des WM.- 15.3.2 Speicherverwaltung mit „access types“.- 15.3.3 „pseudo-random“ Testbench.- 15.4 VT.C: Ausgliederung des Objektes „WM“.- 15.5 VT.FMA: Schnittstellen und Allokation.- 15.5.1 Getrennte Schnittstellen.- 15.5.2 Polymorpher Datentyp „t_wmEntry“.- 15.5.3 Funktion des Algorithmus „first free list“.- 15.6 VT.MI: Zerlegung der Einheit WM und Scheduling.- 15.6.1 Synchrone Verpackung von RAMs.- 15.6.2 Zugriff auf ein verpacktes RAM.- 15.6.3 Einplanung und „arbitration“ im WMC.- 15.7 Diskussion der Entwurfsstudie WM.- 15.7.1 Implementationstechniken Hard-versus Software.- 15.7.2 Hardware/Software Co-Design.