Newsletter 03/2019
Benjamin Prautsch über Generatoren für Analogschaltungen, die die Effizienz in den verschiedenen Designphasen deutlich steigern können.
Welcher Designer kennt das nicht: es ist nicht mehr viel Zeit bis zum Tapeout, doch die Menge der Arbeiten nimmt nicht in demselben Maße ab, wie die Deadline näher rückt. Die ausgeklügelte Schaltung muss noch als Layout implementiert werden und viele wiederkehrende Aufgaben bremsen den Fortschritt. Der eigentliche Knackpunkt steckt dabei oft in Teilen der Schaltung – ein Bereich der Beschaltung hat nicht selten geringere Performanz-Ansprüche, ist aber notwendig und benötigt sehr viel Zeit im Entwurf. Kann Automatisierung hier helfen, um Zeit einzusparen?
Der digitale IC-Entwurf macht es vor: Die Synthese reicht von der Hardwarebeschreibung bis zum Layout. Diese durchgehende Automatisierung ist der entscheidende Schlüssel für die enorme Größe und Komplexität heutiger integrierter digitaler Mikrochips. Doch auch im Analogen wurden in der Vergangenheit viele Fortschritte gemacht.
Für Analogschaltungen können Skripte und Prozeduren eingesetzt werden, die repetitive Aufgaben übernehmen. Das kann z. B. die Abschätzung der Schaltungs-Performance, die Prüfung einfacher aber leicht übersehbarer Fehler oder die automatisierte, konzentrische Anordnung von Bauelementen betreffen. Solche Skripte sind für den Designer durch Parameter und teils GUIs steuerbar und damit transparent und können die Produktivität deutlich steigern. Daneben gibt es insbesondere im akademischen Umfeld, aber zunehmend auch kommerziell, Ansätze für die Layout-Synthese. Letztere können sehr mächtig sein, wenn die richtigen Randbedingungen definiert worden sind. Die Definition dieser Randbedingungen ist in Entwurfstools längst möglich, wird aber noch zu selten konsequent genutzt. Eine möglichst optimale Synthese mit guten Ergebnissen kommt ohne diese Randbedingungen aber nicht aus. In der Folge ist die Hürde, die Synthese zu nutzen oft zu hoch oder die synthetisierten Resultate entsprechen nicht ausreichend der Erwartungshaltung.
Der einfachere Weg ist daher der Einsatz von Skripten und Prozeduren. Oder präziser: der Einsatz von Generatoren. In den letzten Jahren gab es hier interessante Entwicklungen. Es gibt Generatoren für Schaltpläne, für Testbenches, für die Simulations-Steuerung, für Layouts sowie Generatoren, die solche Entwurfsdaten „im Paket“ erzeugen. Die einen Ansätze nutzen pCells und andere erzeugen hierarchischen Zellen und Views, wie im manuellen Entwurf üblich. Manche Ansätze nutzen dafür einfache Skript-Sprachen, wohingegen andere z. B. das mächtige Python oder andere Programmiersprachen nutzen.
Allgemein gesprochen, erzeugen Generatoren auf Grundlage der Parameter-Eingabe des Designers entsprechende Entwurfsdaten. Generatoren sind daher Werkzeuge, die den Designer besonders gut bei wiederkehrenden Aufgaben unterstützen. Das können Layouts analoger Grundbausteine sein (Stromspiegel, Differenzpaare etc.), aber auch Generatoren für place & route, die viele Bibliotheks-Zellen oder Bauelemente in komplizierten Mustern platzieren und verdrahten. Einige Generatoren funktionieren dabei unabhängig von der Halbleiter-Technologie. Sie eröffnen damit auch den Weg einer schnellen Portierung zwischen Halbleiter-Technologien und Foundries auf der Schaltplan- und/oder Layout-Ebene. Zusätzliche Tools, die bestehende Schaltungen in Generator-Quelltext übersetzen erleichtern die Portierung dabei zusätzlich und ermöglichen auch den Aufbau einer generischen und in anderen Projekten wiederverwendbaren Bibliothek von Schaltungen.
Generatoren sind damit ein Werkzeug, das in verschieden Phasen des Entwurfs die Effizienz deutlich steigern kann. Gleichzeitig hat der Designer stets die volle Kontrolle über das Geschehen und erhält vorhersehbar schnelle Resultate, die als automatisierter Baustein in die Gesamtschaltung eingefügt werden können. Designer können sich damit stärker auf den Teil der Schaltung konzentrieren, für den sie kreativ Lösungen entwickeln müssen und repetitive sowie zeitaufwendige Aufgaben an den Computer delegieren. Der Einsatz von Generatoren kann damit ein wertvolles Werkzeug sein, um pünktlich gute Tapeouts fertig zu stellen ohne dabei übermäßig Mehraufwand zu produzieren.