Erschienen in DESIGN&VERIFICATION 0/2000, S. 71
Vorwort
Die winzige Feature-Größe der aktuellen Generationen der IC-Technologie zwingt die Entwickler, wesentlich mehr Details als zuvor zu verarbeiten. Andererseits zwingen die Komplexität der Chips und die Zahl der enthaltenen Transistoren die Designer dazu, sich von möglichst vielen Details zu befreien. Die EDA-Branche muss auf diese gegensätzlichen Forderungen reagieren, neue Top-Down-Design-Methoden entwickeln und diese mit entsprechenden Werkzeugen unterstützen. Das Ziel ist es, bereits beim ersten Designdurchlauf die volle Funktionsfähigkeit sicherzustellen (right first time)
Ein typischer Design-Prozess beginnt heute mit einer ungenauen Spezifikation in Papierform. Die Ingenieure verwenden eine Hardware-Beschreibungssprache (HDL) wie VHDL oder Verilog, um ein Computer-Modell des Designs herzustellen. Durch eine Simulation wird sichergestellt, dass das Design die gewünschten Funktionen ermöglicht. Dazu verwenden die Techniker ein Synthese-Programm, das die HDL-Beschreibung automatisch auf ein Netzwerk miteinander verbundener logischer Gatter oder die Netzliste (Netlist) reduziert. Diese Phase im Design-Prozess entspricht der Übergabe des Papier-Designs vom Techniker zum Zeichner. Der moderne Drafting-Prozess, oder das Layout-Design, löst das Gewirr der Informationen, die in der Netlist enthalten sind, und entwirft die entsprechenden Transistoren sowie ihre Verbindungen untereinander. Die Endphase vor der Produktion, die physikalische Verifizierung, gleicht das Design mit der Netlist ab und stellt sicher, dass es keine Kurzschlüsse enthält.
Die Bewältigung der Komplexität im Design
Die Elektronikentwicklung befindet sich zurzeit an einem Scheideweg in der Evolution der elektronischen Design-Automatisierung. Die winzige Feature-Größe der aktuellen Generationen der IC-Technologie zwingt die Entwickler, wesentlich mehr Details als zuvor zu verarbeiten. Andererseits zwingen die Komplexität der Chips und die Zahl der enthaltenen Transistoren die Designer dazu, sich von möglichst vielen Details zu befreien. Die Situation erscheint weniger paradox, wenn wir das Design auf zwei Ebenen betrachten. Die Systemebene entspricht dem Papierentwurf des Elektronikers. Das Design ist auf dieser Ebene noch sehr abstrakt – der Techniker weiß, was das Design abdecken soll, hat aber noch nicht entschieden wie. Auf der anderen Seite gleicht die Implementierungs-Ebene der Darstellung des Zeichners. Das Design ist auf dieser Ebene sehr detailliert und die feinen Effekte lassen sich wegen der mikroskopischen Feature-Größen gut verstehen. Die Lösung dieses Dilemmas ist ein automatisierter Vorgang, um das Design von der abstrakten Systemebene auf die detaillierte Implementierungs-Ebene zu bringen.
Die Verlagerung zum Design auf Systemebene
Die Design-Spezifikationen sind keine unveränderbare Größe – sie verändern sich ständig während des Designvorganges, so dass die Designer vor dem Problem stehen, ein bewegliches Ziel treffen zu müssen. Dies macht einen Design-Ansatz notwendig, der sofortige Veränderungen am Design ermöglicht – auch nachdem das Produkt auf den Markt gekommen ist. Aus diesem Grund implementieren Designer-Teams soweit es die erforderliche IC-Performance zulässt möglichst viele Produkt-Features in Software. (Diese Verlagerung spiegelt sich zunehmend in der Zusammensetzung von Design-Teams wider, in denen die Zahl der Software-Techniker die der Hardware-Designer übertrifft.) Moderne Elektroniksysteme sind daher häufig nicht viel mehr als die notwendige Voraussetzung, um Software ausführen zu können, mit der dann die meisten Features des Produkts abgebildet werden können. Das Problem liegt darin, dass sich die Software nicht ohne vorherige Kenntnisse der Hardware-Plattform schreiben lässt, und das Hardware-Design benötigt ausreichend Software zum Test. Die Techniker sind daher auf Design-Tools angewiesen, mit denen sie Hardware und Software gemeinsam als ein vollständiges System entwickeln können. Eine weitere Herausforderung liegt in den immer kürzeren Markteinführungsphasen, in denen die Techniker neue Produkte auf den Markt bringen müssen. In dieser Situation kann nicht jedes neue System von Anfang an entwickelt werden. Techniker müssen daher große Anteile des Design aus vorhandenen Hardware-Blöcken bauen, dem so genannten ‚Intellectual Property‘-Blöcken (IP). Die Designer müssen dabei wissen, wie die IP-Blöcke reagieren, wenn sie im System miteinander verbunden werden. Die Entwicklungsumgebung ‚Virtual Component Co-design System‘ (VCC) von Cadence ermöglicht die gemeinsamen Entwicklung von Hardware und Software durch die Trennung des Systemverhaltens und der Systemarchitektur. Ein Beispiel soll hier diese Trennung verdeutlichen: Die ersten Mobiltelefone waren aktenkoffergroße Geräte, die Hunderte Komponenten enthielten. Die Ingenieure integrierten diese in wenigen Jahren in die heute üblichen kleinen Gehäuse, die nur noch wenigen Chips Platz bieten müssen. Viele Funktionen sind als Software implementiert. Das Verhalten des Telefons blieben dabei (weitgehend) unverändert: Man kann damit mobil telefonieren. Der einzig wirkliche Unterschied ist die veränderte Architektur des Telefons, indem die Features entweder als Hardware oder Software implementiert wurden. Mit Hilfe des Tools VCC kann ein Designer das Verhalten eines Systems beschreiben und es simulieren, um sicherzustellen, dass es korrekt arbeitet. Das Tool führt den Designer dann zu jener Implementierung, die den Anforderungen des Produkts am besten entspricht, indem eine Reihe möglichen Architekturen durchgespielt wird. Das Tool assembliert dann den HDL-Code, der als Input für logische Simulatoren und Synthese-Systeme dient und bietet damit einen automatisierten Pfad zu den Tools der physikalischen Implementierung. Gleichzeitig erzeugt das Tool die Software für das System, die sich für bestimmte Mikroprozessor-Cores und Echtzeit-Betriebssysteme (target)eignet.
‚Right first time‘
Die Verlagerung zum Design auf Systemebene wurde zum Teil von der Notwendigkeit angestoßen, den Abstraktionsgrad zu erhöhen, auf dem die Techniker ihre Designs schaffen. Doch um das Problem des modernen Elektronik-Designs zu lösen, müssen die Design-Tools gleichzeitig eine riesige Menge an Details auf der Implementierungs-Ebene bewältigen. So wie Transatlantik-Telefonate durch die Verzögerungen langer Unterseekabel behindert werden, schafft die Signalverzögerung durch Verbindungen innerhalb eines ICs (interconnect) ein ähnliches Problem für die Designer. Obwohl die Entfernungen viel kleiner sind, zeigt sich dieses Phänomen als problematisch, da die Signale viel schneller übertragen werden müssen. Sobald die Designs mit Gigahertz-Geschwindigkeiten arbeiten sollen, die für moderne Produkte charakteristisch sind, müssen daher die Designer möglichst früh im Design-Prozess über ein genaues Model dieser Verzögerung verfügen. Ohne ein genaues Modell der Verzögerung verlängern sich die Design-Zeiten, da die Entwickler endlose Wiederholungen durchlaufen und vergeblich versuchen, den Himmel namens ‚timing closure‘ (Einhaltung der Zeitvorgaben auf dem Chip) zu erreichen. Die vorherige Generation von Synthese-Tools verfügte über statistische ‚Wireload‘-Verzögerungs-Modelle, was aber nur eine ungenaue Schätzung der Interconnect-Verzögerungen derzeitiger ICs ermöglicht. Zudem verwenden Synthese-Tools und Tools zur physikalischen Implementierung (Place&Route) typischerweise unterschiedliche Modelle der Interconnect-Verzögerung, so dass das Verzögerungsmodell des Synthese-Tools nur wenig aussagekräftige Informationen darüber liefert, wie das Design in der Realität funktionieren wird. Dies führt in der Regel zu weiteren ‚Runden‘ in der Design-Schleife. Das Cadence Synthesis, Place and Route-System (SP&R) löst dieses Problem durch die gleichen, physikalisch genauen Modelle der Interconnect-Verzögerung innerhalb des Synthese-Tools und des Route-Tools. Die beiden Tools stimmen deshalb bei der Taktung des Designs überein, so dass die Designer mit nur einem Schritt die Abschlusszeiten genau einhalten können.
Hierarchisches Design
Der Schlüssel zur Kontrolle über die Komplexität des modernen Chip-Designs ist die Verwendung eines hierarchischen Ansatzes. Die Aufgabe, ein IC mit 10 Millionen Transistoren zu entwickeln, ist unmöglich, wenn er frontal bewältigt werden soll. Eine ‚Teile-und-Herrsche‘-Strategie jedoch macht das Problem lösbar: Man teile das Design in zwei Hälften und plötzlich ist jeder Teil nur halb so komplex wie das Ganze. Man teile das Design noch ein paar weitere Mal, und die entstehenden Blöcke lassen sich überblicken und, was ebenso wichtig ist, (leichter) erneut verwenden. In der Praxis werden die Grenzen zwischen den hierarchischen Blöcken von der Struktur des Designs statt von den willkürlichen Praktiken diktiert, die dem Designer das Leben einfacher machen. Dennoch weist dieser Ansatz des hierarchischen Designs spezifische Probleme auf. Die hierarchischen Blöcke, aus denen das Design besteht, werden mit einem Place&Route-Tool zusammengefügt und untereinander verbunden. Die Verbindungsleitungen verlaufen ggf. über die Gesamte Fläche des ICs und haben daher einen riesigen Effekt auf die Performance des Designs. Design-Blöcke, die isoliert perfekt funktionieren, brechen zusammen, falls die Charakteristiken der Verbindungen untereinander während der Zusammensetzung des Chips nicht berücksichtigt werden. Es ist daher erforderlich, die Reihenfolge zu vertauschen, in der das Design vorgenommen wird, so dass die Verbindungen untereinander zuerst geschaffen werden können. Cadence hat mit führenden Designern an einer neuen hierarchischen Synthese- und Chip-Assemblierungs-Technologie gearbeitet. Im Mittelpunkt der Technologie steht die Fähigkeit, durch die hierarchische Synthese sowie durch hierarchisches Place&Route das Zeitverhalten der Verbindungen untereinander vorherzusagen. Die Technologie basiert auf einem großen Portfolio bestehender, ausgereifter Design-Tools und minimiert daher die Auswirkungen auf die Design-Prozesse der Kunden. Die neue hierarchische Technologie ‚automatisiert‘ die besten Verfahren der leistungsfähigsten Design-Gruppen von heute. So können Designer die Daten viel früher im Design-Prozess Anderen zur Verfügung stellen, dadurch die Vorhersagbarkeit des Zeitverhaltens verbessern und zu einem früheren timing closure.
Schlussfolgerung
Die Revolution der Elektronik, die von der Kostensenkung und Verkleinerung der IC-Technologie ausging, hat anspruchsvolle elektronische Produkte für alle Verbraucher weltweit erschwinglich gemacht. Weitere Verbesserungen an der IC-Prozesstechnologie steigern das Marktpotenzial für neue Produkte, präsentieren den Chip-Entwicklern jedoch eine Reihe neuer Herausforderungen. Durch die Zusammenarbeit mit führenden Unternehmen des Elektronik-Designs liefert Cadence innovative Lösungen, die sich an die Zwänge des Produkt-Designs anpassen lassen. Während die Tätigkeit von Cadence eine technische Herausforderung darstellt, ist das Versprechen des Unternehmen relativ einfach: Es hilft Unternehmen aller Art, mit der umfassendsten und anspruchsvollsten Reihe von Design-Tools der Branche elektronische Produkte auf den Markt zu bringen.
|
| |
|
 |
|