Aufgabe der digitalen Synthese ist die Übersetzung einer funktionellen Schaltungsbeschreibung in einer Hardware-Beschreibungssprache (HDL, z. B. Verilog, VHDL) in eine Gatternetzliste. Ausgangspunkt der digitalen Synthese im Y-Diagramm ist die algorithmische Ebene in der funktionellen Sicht, am Ende liegt die Schaltung auf der Gatterebene in struktureller Sicht vor.
Die digitale Synthese gliedert sich in vier Schritte, die in der Abbildung dargestellt sind:
-
Algorithmensynthese
Hier wird aus der Verhaltensbeschreibung in einer HDL eine Register-Transfer-Struktur erzeugt. Dabei wird üblicherweise die Schaltung in einen Datenpfad und einen Steuerpfad zerlegt. Der Datenpfad beschreibt die vom Algorithmus auszuführenden arithmetischen Operationen, während der Steuerpfad den Ablauf des Algorithmus kontrolliert und als Zustandsübergangsdiagramm beschrieben werden kann. Für den Datenpfad findet bereits in diesem Schritt eine Optimierung von Kosten bzw. Performance statt.
-
Register-Transfer-Synthese
Hier werden der Daten- und der Steuerpfad getrennt voneinander synthetisiert. Der Steuerpfad, der als endlicher Automat (Finite State Machine, FSM) dargestellt werden kann, wird durch boolesche Gleichungen (Gatter) und Speicherelemente realisiert. Der Datenpfad wird ebenfalls mit optimierten booleschen Gleichungen (Gatter) und Speicherelementen (Register) realisiert. Für stark spezialisierte Strukturen wie Speicherfelder oder arithmetische Elemente wie Addierer oder Multiplizierer können durch Makrozellgeneratoren technologieabhängige Beschreibungen wie eine Gatternetzliste oder ein Layout erzeugt werden.
-
Logikoptimierung
Die im Rahmen der bisher ausgeführten Schritte entstandenen booleschen Gleichungen weisen noch ein erhebliches Optimierungspotential auf. Entsprechend der Kriterien Performance und Kosten können die logische Schaltungstiefe und die Anzahl der benötigten Gatter optimiert werden.
-
Technologie-Abbildung auf Logikebene
Das nach der Optimierung erhaltene System boolescher Gleichungen ist noch unabhängig von der Technologie, in der die Schaltung realisiert werden soll. In diesem Schritt wird es mit Hilfe einer technologieabhängigen Bibliothek von Grundgattern in eine Gatternetzliste umgesetzt. Die Gatter sind hinsichtlich Fläche und Zeitverhalten charakterisiert.
Diese Schritte enthalten erneut Optimierungen, bei denen Kompromisse zwischen Performance und Kosten eingegangen werden. Ein weiteres Optimierungsziel kann der Leistungsverbrauch der Schaltung sein.
Aufgrund des hohen Abstraktionsgrads der Schaltungsbeschreibung auf algorithmischer und Register-Transfer-Ebene sind die Optimierungskriterien nur durch stark vereinfachende Modelle beschreibbar. Die Genauigkeit der Modelle nimmt auf den unteren Abstraktionsebenen zu. Daher kann oft erst nach der Technologie-Abbildung festgestellt werden, ob bestimmte Ziele von vorausgehenden Synthese-Schritten erreicht wurden. Dann ist ein erneutes Durchführen dieser Schritte erforderlich.