Bevor wir uns den EDA-Werkzeugen im Einzelnen zuwenden, sollen hier anhand des Y-Diagramms noch einige allgemeine Definitionen vorgenommen werden. Dazu müssen wir uns die Tätigkeiten bei einem einzelnen Entwurfsschritt, also beim Übergang von einem Punkt des Diagramms zu nächsten, genauer ansehen.
Erzeugung (Synthese)
Aus den Dokumenten, die im Verlauf des Entwicklungsprozesses (z.B. Spezifikation, Netzliste, etc.) generiert wurden, muss das jeweils nächste erzeugt werden. Dies kann manuell, automatisch oder rechnergestützt geschehen. Ein Beispiel für automatisches Erzeugen sind Platzierungs- und Verdrahtungsprogramme, die aus Gatterschaltungen in Struktursicht Anordnungen von Zellen in physikalischer Sicht erzeugen.
Rechnergestützt wäre z.B. ein Platzierungs- und Verdrahtungsprogramm, das interaktive Eingriffe bzw. Vorplatzierung erlaubt, oder ein Programm, das nach Analyse einer algorithmischen Beschreibung gewichtete Vorschläge für eine Architektur macht, unter denen der Entwickler zu wählen hat.
Im Allgemeinen werden wir erzeugende EDA-Werkzeuge, bei denen sich gleichzeitig die Entwurfsebene und die Sicht (oder auch nur die Sicht) ändern als Synthesewerkzeuge und solche, bei denen sich nur die Entwurfsebene ändert, die Sicht jedoch gleich bleibt, als Generatoren bezeichnen. Ein Werkzeug, das aus booleschen Gleichungen eine Gatterschaltung erzeugt, ist demnach ein Logiksynthesewerkzeug, ein anderes Werkzeug, das aus einer komplexen Struktur, z.B. einem Multiplizierer eine Realisierung auf Gatterebene ableitet, ist ein (Modul-)Generator. Leider erfolgt die Benutzung dieser Begriffe nicht überall einheitlich. Insbesondere findet man bei Werkzeugen zur Optimierung von Gatterschaltungen oder bei der Generierung von Gatterschaltungen aus struktureller RTL(Register Transfer Level)-Sicht häufig - wenn auch fälschlicherweise - den Begriff "Logiksynthese".
Prüfen (Analyse)
Nur wenn der Entwurfsschritt automatisch gemacht wurde und das benutzte Hilfsmittel die Korrektheit des Ergebnisses garantiert, kann auf eine Überprüfung des Ergebnisses verzichtet werden. In allen anderen Fällen ist der Vorgang fehleranfällig, so dass eine Überprüfung zwingend notwendig ist.
Solche Prüfprogramme sind z.B. Design-Rule-Checker, die geometrische Regeln für Maskenlayouts überprüfen, Syntax-Checker für Funktionsbeschreibungen in höheren Beschreibungssprachen und vor allem Simulatoren für die verschiedenen Abstraktionsebenen. Andere Beispiele sind Netzlisten-Extraktoren zusammen mit Netzlisten-Vergleichern, die den Schritt von der Netzliste zum Maskenlayout (Layoutverifikation) überprüfen. Aber auch Programme, die Ergebnisse von Simulationen auf verschiedenen Abstraktionsebenen (intelligent) vergleichen, gehören dazu, ebenso wie die formale Verifikation. Häufig wird zwischen Validierung und Verifikation unterschieden. Unter Validierung versteht man das Einholen hinreichender Belege dafür, dass die Entwurfsziele erreicht wurden. Verifikation ist dagegen der Vergleich mit einem validierten (oder verifizierten) Standard, um die Einhaltung von Entwurfsregeln jeglicher Art zu beweisen.
Optimieren
Genügt der erreichte Punkt im Y-Diagramm nicht allen Anforderungen, wird man durch Optimierung versuchen, diesen Mangel zu beseitigen. Beispiele sind Kompaktierer, die die benötigte Fläche im Maskenlayout verringern sollen, Logik-Optimierer, welche beispielsweise die Anzahl der benötigten Gatter verringern sollen, aber auch Architektur-Modifikationen, welche die Performance erhöhen sollen.