Leonidas TP 2, Generierung und Berücksichtigung von verdrahtungsbezogenen Constraints in Layoutwerkzeugen • Verkleinerung der Abmessungen in modernen Deep Submicron Technologien ⇒ Einfluß der Verbindungs-Parasiten steigt • Verbindungs-Parasiten dominieren Device-Parasiten • Vernachlässigung der Verbindungsparasiten ⇒ Redesign! • Redesigns sind teuer (Zeit + Geld) • Verbesserung Time-To-Market: Redesigns vermeiden! Wie können Redesigns vermieden werden? • Definition von verdrahtungsbezogenen Constraints in Layout Tools • Effiziente und allgemeingültige Speicherung der Constraints • Frühzeitige Berücksichtung der Constraints im Flow • Entwicklung von Layout Tools zur Erfüllung Constraints Parasitensymmetrsiche Verdrahtung Stromgeführte Verdrahtung und Layout-Dekompaktierung zur Vermeidung von elektromigrationsbedingten Fehlerausfällen Vorausschauende Stromgeführte Verdrahtung Vorgehensweise parasitensym. Netzbündel-Verdrahter Stromgeführte Layout-Dekompaktierung • Die Stromdichte ist der wichtigste Designparameter für die Verdrahtung. • Die Verdrahtungsplanung muss den zyklischen Designkonflikt: Kenntnis der kompletten Netztopologie bei gleichzeitiger Kenntnis aller Netzsegmentströme“ geeignet auflösen können. • Optimierungsziel: Minimierung der benötigten Verdrahtungsfläche. Stromgeführte Verdrahtungsplanung • Die Anpassung der stromdichte-korrekten Leitbahnquerschnitte erfolgt nach der Verdrahtung. • Die Netztopologie ist bekannt, daher können alle Netzsegmentströme sofort bestimmt werden: → Vorteil: kein zyklischer Designkonflikt! • Hauptsächliche Anwendung bei der automatischen Reparatur von kleineren und mittleren Schaltungsblöcken. = Terminal T2a = = T1b T2b -45° 0° Generatoraufruf: BUS N=3 LENGTH=4e-5 WIDTH=5e-6 LAYER=2 BEVELSTART=45 BEVELEND=0 Layout Dekompaktier ung Anwendungsbeispiel Stromdichteprob leme in Leiterbahnen und Vias a) Zu verdrahtende Terminals T- und L-Struktur der Dreiecksmethodik = VT T1a Handlayout für eine Differenzleitung n Problem: Beim Schaltungs- und Layout-Entwurf sind Nebenbedingungen (Constraints) – oft nicht formalisiertes Erfahrungswissen von Designern und Layoutern Implementierung eines Constraint-Typs Beispiel: Matching von Transistoren Matching-Constraints: L2 = L1 W2 = W1 è Fehlende durchgängige Verwaltung von Constraint-Informationen Vorteile von zentralem Constraint Management: Tupel (t,E,Q) = { Problemstellung und Designflow •Für heutige, schnell getaktete Analog Blöcke bei gleichzeitiger Reduzierung der Versorgungsspannung wird der dynamische IR-drop immer wichtiger •Die hier entwickelte Lösung berücksichtigt die parasitären Widerstände und Kapazitäten auf den Versorgungsleitungen •Als Eingabe werden benötigt: ideale CDL-Netzliste, GDS, Stimuli für die Schaltung •Das Ergebnis ist eine IR-drop Karte, die die schlimmsten IRdrop Abfälle im Simulationszeitraum t kartiert, eine em Karte, die Stellen markiert in denen die Stromdichte verletzt wird, und Stromverläufe an den Devices Darstellung als Tupel Type: Elements: Qualifier: Matching instances, Min. Anz.: 2 equation system (mandatory) } <Type> xml-Format <Name>Matching</Name> <ElementType type="instance"/> <ElementLength min="2"/> <ParamDeclaration> <ParamName>Matching_Conditions</ParamName> <ParamType type="equationsystem"></ParamType> <ParamFlag flag="mandatory"/> </ParamDeclaration> </Type> n Erfassung von nicht formalisiertem Erfahrungswissen n Überblick über alle Constraints durch zentrale Speicherung n keine wiederholte Eingabe der Constraints für verschiedene Tools n leicht automatisch generierbare Schaltungs-Dokumentation PARSY -Layout Zusammenfassung • Problemstellung: Analoge Schaltungen werden immer stärker vom Spannungsabfall auf den Versorgungsleitungen, der durch parasitäre Widerstände und Kapazitäten verursacht wird, beeinflusst •Es gibt bisher auf dem Markt kein kommerzielles Tool, was dieses Problem löst, deswegen war eine Codeentwicklung zusammen mit einem EDA-Vendor erforderlich •Anforderungen: Blöcke mit bis zu 100000 Transistoren, Unterstützung aller internen analogen Bauteile, bei Extraktion und Simulation Berücksichtigung der Versorgungsleitungen •Ergebnis ist eine integrierte SW Lösung, mehrere Testcases wurden durch den Flow getragen, die SW Lösung wird in den internen Designflow integriert Warum Constraint Management? – meist nicht wiederverwendbar für Neuentwürfe (Redesigns), da nicht systematisch erfasst und verwaltet. differentielle Kopplungen werden während der Verdrahtung berücksichtigt, Leitungen werden „kopplungsgünstig“ verlegt • Virtuelle Terminals werden erstellt und vereinfachen den Verdrahtungsvorgang durch Aufteilung in Teilprobleme • Modulgeneratoren verstecken die Technologieabhängigkeiten vor dem Router • Modulgeneratoren durch neuartiges Trapezkonzept vereinfacht Volla uto ma tisch korrigie rte s Layout b) Stromdichtegerechtes Ergebnis – falls formalisiert, für verschiedene EDA-Tools mehrmals in tool-spezifischen Formaten einzugeben Ergebnisse • Kapazitive, n Wiederverwendung von Constraints bei Migration und Reuse (MATCHING,{M1,M2},{$1.l=$2.l,$1.w =$2.l}) GDS Zentrales Constraint Management Calibre LVS Calibre CCI Star-RCXT parasitic extraction Parasitic DSPF netlist Ideal Netlist Input Vectors zentral für alle Tools! Abb. 3: IR-drop Karte für das Beispiel aus Abb. 2. Spannungsversorgung unten links, schlimmster Spannungsabfall oben rechts FastMOS simulation with power rails (nanosim mode=5) Astro Rail Transistor Level Transient Analysis Engine SNPS Railtool GUI Current Waveform Abb. 1: Designflow für die Analyse des dynamischen IR-drops Beispiel: Tool 1 Tool 2 Abb. 4: Stromverlauf für an Device für das Beispiel aus Abb. 2 Tool 3 : Datenbasis Tool n Abb. 2: Beispiel Layout mit 50 FF zur Demonstration des Flows, Versorgungsleitung seitlich von unten nach oben Schnittstelle Multi Clock ScanChain Insertion Multi Clock ScanChain Insertion SI SI SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF Clk_1 Clk_1 Clk_2 Clk_2 Kettenaufbau Kettenaufbau Skew Problem Skew Problem 0 ?? 0 ?? 0 1 0 SI Datenverlust Datenverlust 1 FF1 FF1 FF3 FF3 FF2 FF2 FF4 FF4 SO SO SI SI SI SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF Cluster 2 Cluster 2 SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SFF SO SO Cluster 1 Cluster 1 Clk_1 Clk_1 Clk_1 Clk_1 Clk_2 Clk_2 Durch die Laufzeitunterschiede zwischen Clock1 und 2 werden hier die Durch Laufzeitunterschiede zwischen bevor Clock1FF3 undden 2 werden hier die Daten andie FF1 und FF2 bereits geschoben, bisherigen Daten an FF1 und FF2 bereits geschoben, bevor FF3 den bisherigen Wert übernehmen konnte. Zum “Receive” Zeitpunkt an FF3 ( Clock2 Wert konnte. Zum “Receive” Zeitpunkt an FF3 ( Clock2 liegt an)übernehmen ist die “0” bereits überschrieben. liegt an) ist die “0” bereits überschrieben. Clk_2 Clk_2 Lösungen für Skew Problem Lösungen für Skew Problem Anti Skew Element einbauen Anti Skew Element einbauen SI SI 1 0 FF 1 FF FF 0 0 FF FF FF FF FF SO SO Clk_1 Clk_1 SI 0 SI SI 1 0 FF Clk_2 Clk_2 Clocking Order Clocking Order 0 1 FF FF 0 FF FF FF FF FF SO SO Clk_2 Clk_2 Clk_1 Clk_1 SO SO Einbau AntiSkew Einbau AntiSkew FF FF SFF SFF Multi Clock ScanChain Insertion Randbedingungen Multi Clock ScanChain Insertion Randbedingungen und Constraints und Constraints • Netzliste vorhanden, aber • Netzliste vorhanden, aber – Keine Angaben zu Timing! – Keine Angaben zu Timing! – Noch kein Layout vorhanden! – Noch kein Layout vorhanden! • • Constraints Constraints – Funktionale Abhängigkeiten beachten – Funktionale Abhängigkeiten beachten • Z.B. vorhandene Schieberegister • Z.B. vorhandene Schieberegister • Clusterreihenfolgen • Clusterreihenfolgen – Scan Chain Balancing – Scan Chain Balancing • Neue Parameter für Optimierungsproblerm • Neue Parameter für Optimierungsproblerm – Verarbeitung flacher und hierarchischer – Netzlisten Verarbeitung flacher und hierarchischer Netzlisten – Handling von Multi-Million-Gate Schaltungen – Handling von Multi-Million-Gate Schaltungen Ergebnisse Ergebnisse • Spezifikation der Software umgesetzt • Spezifikation der Software umgesetzt – Multi Clock Domain ScanChain Creation (d.h., die Elemente der – Kette Multikönnen Clock Domain ScanChain Creation (d.h., die Elemente der unterschiedliche Clocks haben) möglich Kette können unterschiedliche Clocks haben) möglich – Multi Skew Domain ScanChain Creation (d.h., ScanChain – Elemente Multi Skew Domain (d.h., ScanChain haben zwar ScanChain die gleiche Creation Clock, aber verschiedene Elemente haben zwar die gleiche Clock, aber verschiedene ClockGates in diesem Tree, oder gehören zu verschiedenen ClockGates diesem Tree, oder gehören zu verschiedenen Branches des in Trees.) möglich Branches des Trees.) möglich Clk_2 Clk_2 Clk_1 Clk_1 Clk_2 Clk_2 Cluster 3 Cluster 3 Clk_1 Clk_1 Clk_2 Clk_2 Clk_1 Clk_1 SFF SFF Clk_3 Clk_3 SI 0 Clusterbildung Clusterbildung Ergebnis •Toolentwicklung inklusive der Weiterentwicklung des FastMOS Simulators nanosim •Testen des Flows mit verschiedenen Testcases •Integration des Tools in den internen Designflow •Produktive Pilotbenutzung bei internen Entwicklungsprojekten •Tool bildet die Basis für die Projektfortführung in Leo+ SFF SFF SO SO Clk_3 Clk_3 AntiSkew FF (½ Takt Verschiebung) AntiSkew FF (½ Takt Verschiebung) – Skew safe ScanChains durch automatisierten Einbau von – AntiSkewFF Skew safe in ScanChains durch automatisierten Einbau von die Netzliste AntiSkewFF in die Netzliste – Skew safe ScanChains durch user-defined AntiSkewFF – Skew safe ScanChains durch user-defined AntiSkewFF – Skew safe ScanChains durch Berücksichtigung einer – Taktreihenfolge Skew safe ScanChains einer (Clockingdurch Order)Berücksichtigung beim Prüfkettenzusammenbau Taktreihenfolge (Clocking Order) beim Prüfkettenzusammenbau