Schaltungssynthese Dipl.-Ing. e-mail: rgerndt@iam.de Seite SYN/1
Motivation Vereinfachung des Systementwurfes Weniger Fehler durch abstrakte Beschreibung Portierbarkeit der Schaltung (PLD, CPLD, FPGA, ASIC, Standardzelle,...) Seite SYN/2
Übersicht Schaltungsbeschreibung durch formale, vollständige Spezifikation (Verhalten, Zeitbedingungen, Leistung, Größe,...) Synthese ist ein Übersetzungs- und Optimierungsproblem anhand einer Kostenfunktion (Fläche, Zeitverhalten,...) Unterscheidung: - Logiksynthese - Register-Transfer-Synthese - High-Level-Synthese Seite SYN/3
Logiksynthese - Übersicht Erstellen einer Logik, die eine gegebene Boolsche Gleichung realisiert Formale Beschreibung (z.b. disjunktive Normalform) Viele mögliche Lösungen, wenige, die die Randbedingungen einhalten Zu beachten - Geschwindigkeit - Fläche Aufteilung in - Phase 1: technologieunabhängige Logikoptimierung - Phase 2: technologieabhängige Abbildung auf Gatter und Optimierung ( library binding, mapping ) Seite SYN/4
Technologieunabhängige Logiksynthese Logikmodel unabhängig von physikalischen Gattern (Boolsches Netzwerk) Optimierung: - Vereinfachung (insbesondere don t cares, auch interne) - Netzwerkumformung (gemeinsame Faktoren) - Umstrukturierung des Netzwerkes (Balancierung der Verzögerungszeiten) Kostenfunktionen: Literale (Variablen) des Boolschen Netzwerkes Seite SYN/5
Technologieabhängige Logiksynthese Library binding (technology mapping) Abbildung des Boolschen Netzwerkes auf physikalische Gatter Darstellung des Boolschen Netzwerkes und der Bibliothekselemente als NAND-Netz Synthese durch Pattern matching -Algorithmus Vergleich von Abschnitten des boolschen Netzwerkes mit Bibliothekselementen Auswahl der günstigsten Realisierung Probleme bei komplexen Gattern und XOR-Gattern Seite SYN/6
Register-Transfer-Synthese Übersetzung RTL-Beschreibung in Netzliste Datenpfad-Synthese (Speicher und Funktionseinheiten) Controller-Synthese (Zustandsautomat) unterschiedliche Synthese-Methoden für Datenpfad und Controller Seite SYN/7
Datenpfad-Synthese Darstellung der Datenabhängigkeiten als Daten-Fluss-Graph (DFG) (Gerichteter Azyklischer Graph (DAG)) Geschlossener DFG = basic block (keine Kontrolbefehle) Direkte Abbildung des DFG auf Hardware möglich Hardwareersparnis durch - (Zwischen-)Speichern - Multiplexen - Sequencen ( resource-sharing ) Seite SYN/8
Controller-Synthese Ansteuerung des Datenpfads erfolgt durch Steuersignale Externe Scheduling-Bedingungen werden berücksichtigt Jeder Operation ist ein Ausführungstakt zugewiesen Der Zustandsgraph zum Schedule wird bestimmt Controllerimplementierung: - hardwired - microcoded Seite SYN/9
High-Level Synthese Verhaltensbeschreibung abstrakter als Register-Transfer-Beschreibung High-Level- Synthese = Übersetzen einer Beschreibung in eine Architektur Ergebnis der Synthese ist eine Register-Transfer-Beschreibung Teilfunktionen der Übersetzung: - scheduling - binding (allocation) Seite SYN/10
Scheduling Zuordnung der Operationen zu Taktschritten Verhaltensbeschreibung liefert Randbdingungen für die Abarbeitungsreihenfolge der Funktionen (Datenabhängigkeiten) Scheduling: - ASAP ( as-soon-as-possible ) - ALAP ( as-late-as-possible ) - RMS ( rate-monotonic-sheduling ) - earliest-deadline-first Chaining - Mehrere Funktionen in einem Taktzyklus Multicycling -Eine Funktion über mehrere Taktzyklen Auswahl eines Schedules gemäss Kostenfunktion (Zeit, Fläche) Kritischer Pfad: längste Takt-Kette Seite SYN/11
Binding ( allocation ) Zuordnung der Funktionen und Variablen zu Funktionseinheiten und Registern Datenpfad (Funktionseinheiten) + Register + Multiplexer + Controller Speichern von Variablen an Taktgrenzen Seite SYN/12
Optimierung Entfernen überflüssiger Hardware im kritischen Pfad Extra Hardware um weniger Takte zu benötigen Anpassen der Zykluszeiten Pipelining Multithreading Seite SYN/13