Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 3 » EDA Zusammenfassung

EDA Zusammenfassung

WiSe 2023/24, Dozent: Johannes Kliemt

Hinweis: keine Garantie auf Vollständigkeit und Korrektheit!

Technologiegrundlagen

ASIC weil: - Hoher Takt durch räumliche Kompaktheit - geringer Energieverbrauch - geringe Stückkosten bei Massenproduktion

YouTube-Video zur Funktionsweise von Transistoren

n-MOSFET:

       +--Vds----------+              +--Vds----------+
       |               |              |               |
       +--Vgs--+       |              +--Vgs--+       |
       |       |       |              |       |       |
+------+       | g     |       +------+       | g     |
|      |   ----+----   |       |      |   ----+----   |
|    s |   =========   | d     |    s |   =========   | d
|  +-+-+--+---------+--+-+-+   |  +-+-+--+---------+--+-+-+
|  | | n+ |         | n+ | |   |  | | n+    ______/|  n+ | |
|  | \____/         \____/ |   |  | \______/       \____/ |
|  |           p           |   |  |           p           |
|  +-----------+-----------+   |  +-----------+-----------+
|              | b             |              | b
+--------------+               +--------------+
               |                              |
              GND                            GND
  • p: Substrat (bulk) p-dotiert
  • n+: Wells (source, drain) stark n-dotiert
  • Polysilizium (gate)
  • Oxid (Isulator) zwischen Gate und Substrat

Sperrbereich: - Vgs < Vt - Ids ~= 0 - kein Kanal bildet sich aus

Linearbereich: - Vgs > Vt - Ids wächst mit Vds - Kanal bildet sich aus - vergleichbar mit Widerstand

Sättigung: - Vds > Vgs - Vt - Ids unabhängig von Vds - Kanal wird abgeschnürt

Kennlinien nur für ideale Transistoren!

In der Realität: - Mobility Degradation: Ladungsträger an Oxid gezogen, Kollision, Abnahme der Mobilität - Velocity Saturation: laterales Feld, Verringerung der Geschwindigkeit - Channel Length Modulation: Diode an Drain in Sperrrichtung, Verarmungszone, kürzerer Kanal, auch nach Sättigung mehr Strom

Body-Effekt: - Vorher: Annahme Bulk uns Source auf 0V - bei Reihenschaltung nicht unbedingt gegeben - Vt steigt → Ids sinkt

Leckströme: - Isub: Subthreshold, auch mit Vgs < Vt kann ein geringer Ids Strom fließen - Igate: Gate Leakage, Stromfluss zwischen Gate und Bulk durch extrem dünne Gate-Isolatoren - Ijunct: Junction Leakage, Drain und Bulk als in Sperrrichtung geschaltene Diode, trotzdem Stromfluss - Icont: Contention Leakage, Strom durch Pull-Up/Down Widerstand, bei CMOS irrelevant - Ishortcurcuit: Strom, der beim Schalten eines CMOS Netzes kurz fließen kann

Temperaturauswirkungen - Hohe Temperatur: - Vt sinkt (leichterer Wechsel vom Valenz- ins Ladungsband) - Ids sinkt (Widerstand im Kanal steigt)

Problem bei NMOS: Aufladen dauert länger als Entladen. Deswegen CMOS: - inverses/komplementäres PMOS Netz - Probleme hier beim Entladen → Kombination - Stromfluss nur beim Schalten - Anstiegs- und Abfallzeiten weitgehend gleich - Transistoren müssen aufeinander abgestimmt werden

Fertigung

Czochralski Verfahren, Kristall ziehen, Silizium-Wafer sägen

Fertigung in Planartechnik: - schrittweise Prozessfolge - Verändern der jeweils obersten Schicht - Photolithographie (Selektion) - Oxidation (SiO2) - Materialanlagerung - Ätzen (Selektion) - Diffusion/Ionenimplantation (Einbringung Diffusionsgebiete)

Photolithographie: 1. Aufbringen von Photolack (positiv oder negativ) 2. Belichtung durch Maske 3. Struktur wird übertragen 4. Entfernen von maskiertem Photolack

Alternativen: Röntgenlithographie, Elektronenstrahllithographie, Nanoimprint-Lithographie

Oxidation: - Umwandeln von Si in SiO2 - nass (Wasserdampf) oder trocken (Sauerstoff) - sehr hohe Temperatur - Oxid wächst in das Substrat ein

Materialanlagerung: - Verdampfung: Material als Gas auf Wafer, setzt sich ab - Sputtering: mit Ionen beschossen, Atome werden herausgeschlagen und bilden Schicht - CVD (Chemical Vapor Deposition): Chemische Reaktion an Waferoberfläche

Ätzen: - selektive Entfernung - Struktur durch vorherige Photolithographie - isotrop (trocken, Gase) und anisotrop (nass, Säuren)

Dotierung: - Ionenimplantation: Ionen auf Gitter geschossen, bleiben stecken, anschließend ausheilen - Diffusion: Einbringen von Fremdatomen bei hoher Temperatur, Wandern der Atome

Prozess nicht optimal, Defekte erwartet. Bei LOCOS (Local Oxidation of Silicon) erkennbar am Vogelschnabel.

Masken werden mit Markern bestückt zur genaueren Justierung.

Wichtige Effekte: - Latch-up: unabsichtlicher Thyristor durch bipolare Bereiche. Lösung durch Schutzringe oder zusätzlichen Wannen - Antenna: während Fertigung Gate temporär nicht mit Drain verbunden, Ladung kann nicht abfließen, Gate zerstört

STI (Shallow Trench Isolation): Alternative zu LOCOS - Vogelschnäbel (Instabilität) werden verhindert - Einfügen von Gräben zwischen den Wannen, “glatte” Struktur

Yield: - Silizium durch Fremdatome verunreinigt - Bindungsfehler im Kristall - abhängig von Chipgröße

Entwurfsmethodik

Full-Custom: - Layoutelemente manuell entwerfen - Ausnutzen aller Freiheitsgrade - hohe Optimierungsmöglichkeit (Fläche, Timing, Power) - hoher Zeitaufwand - hohe Fehleranfälligkeit - nur sinnvoll bei Massenproduktion

Standardzellenentwurf: - Zellen mit festgelegter Höhe und variabler Breite, genau spezifiziert - erleichtert automatisches Platzieren - IO-Zellen mit power rings - power rails für Vdd und Vss

Makrozellen-Layout: - ähnlich zu Standardzellen - keine einheitliche Abmessung - erprobte Blöcke (zB SRAM) - erschwerte Verdrahtung - kombinierbar mit Standardzellen und/oder full-custom

Array-Entwurf: - Layout und Logik bereits als Chip vorhanden - Programmieren der Verbindungen - PAL, PLA, FPGA - FPGA: CLB (Configurable Logic Block), BRAM, DSPs, …, CLB aus Slices mit LUTs und FFs, Verdrahtung programmierbar

Bewertung entsprechender Chips:

Kriterium PLD GA StandardzellenFull-Custom
Entwurfszeit sehr niedrigniedrigmittel hoch
Komplexität niedrig mittel hoch sehr hoch
rel. Chipfläche - 1 0.7 < 0.5
wirtsch. Stückzahl1 500 5000 50000

Ebenen: 1. Algorithmische Ebene: Spezifikation zur Lösung eines Problems (Hochsprache) 2. PMS-Ebene (Processor, Memory, Switch): Beschreibung durch Hauptelemente eines Rechners 3. Befehlsebene: Beschreibung durch die Struktur der Befehle 4. RTL-Ebene (Register-Transfer-Layer): Register und Operationen, synthetisierbarer HDL 5. Logikebene: Beschreibung mit logischen Gattern und Flip-Flops 6. Schaltkreisebene: Ebene von Transistoren, Widerständen, Dioden und Kapazitäten

Rechnerentwurfssprachen (VHDL, Verilog), Systementwurfssprachen (SystemC)

Beschreibung so abstrakt wie möglich, aber so genau wie möglich. Abbildung von oberer Ebene in untere: Synthese

Y-Diagramm

verschiedene Domänen: 1. Funktionale Sicht: Anforderungen, was Gegenstand tun soll, Boolsche Funktionen, Automaten 2. Strukturelle Sicht: logische Struktur, Module mit Verbindungen, topologische Anordnung 3. Physikalische Schicht: konkrete Implementierung, exakte Ausdehnung und Anordnung aller Komponenten und Verbindungen

Abstraktionsebenen: 1. Systemebene 2. Algorithmische Ebene 3. RTL-Ebene 4. Gatterebene 5. Schalterebene

  • Entwurfszustand: Schnittpunkt Domäne mit Ebene
  • Entwurfsschritt: Abbildung zwischen zwei Entwurfszuständen
  • Entwurfsmethode: Folge von Entwurfszuständen, die beim Layout (Mitte) endet
  • Syntheseschritt: Abbildung in Richtung Zustand, der Realisierung näher liegt
  • Analyseschritt: Umkehrabbildung der Synthese, “Verifikation”

teilweise automatisierbar, teilweise auch gar nicht (bzw nur schwer) realisierbar

Synthese

Designflow: - entlang Y-Diagramm - standardisierten Dateien als Schnittstelle der Toolchain - mit Umkehrfunktion (Validierung)

Standardzellenentwurf: 1. Design (Entwicklung der Funktionalität auf RTL-Ebene) 2. Synthese (Abbildung auf Netzliste mit Standardzellen) 3. Place and Route (Flurplan, Platzierung und Verdrahtung) 4. Signoff (Abschluss, Simulation, Validierungen)

(skip)

PnR

Netzliste aus Standardzellen platzieren und verdrahten

  1. Design einlesen
  2. Flurplan (IOs, Makro-Zellen, Spannungsversorgung, Globale Netzdefinition)
  3. Aufbau des Taktbaums
  4. Routing
  5. PnR-Verifikation (!= Signoff)
  6. Export

Standardzellen haben fertiges Layout. Oft nicht zugänglich, “grobe” Geometrie ausreichend. Prozessdaten in Captables. Jeweils BC (best case), WC (worst case) und TC (typical case).

Flurplan: grobe Schaltungsstruktur mit Größendefinition und Anordnung der Teilschaltungen. IO-Zellen auswählen (je nachdem ob IO oder Logik limitiert). - Die Abmessung: Abmessung gesamter Chip (inkl. IO) - Core Abmessung: Größe der Fläche für Standardzellen + Makroblöcke - Core Utilization: Ausnutzung der Fläche für Logik - Aspect Ratio: Verhältnis Chiphöhe zu -breite - Core to IO / Die: Abstand Core-Bereich zu IO bzw bis Chipkante (zB für power rings)

Platzieren der IO-Zellen als Ring um den Core (auch Spannungsversorgung). Designrules beachten. Zwischenräume und Ecken mit Filler-Zellen füllen. IO hat seinen eigenen Spannungsring.

Makroblöcke im Core-Bereich platzieren. Halo-Blöcke außenrum.

Globale Netze wie vcd! oder gnd! müssen definiert sein. Zellen haben Pins zu diesen globalen Netzen.

Spannungsversorgung: - Spannungsring um den Core Bereich - Spannungsring um jeden Makroblock - Power-Rails für Standardzellen - bei großen Chips Stripes - Verbindung mit IO - horizontale/vertikale Verdrahtung nach Layern - Layerwechsel (VIAs) an Ecken

Nach Flurplan Einfügen der Standardzellen: - Platzierungsverbote (zB unterhalb von Versorgungsleitungen) - End-Caps: Designregeln schreiben Abstände, Metallbreiten usw. vor

Routing: erstmal Trial-Route für Machbarkeitsanalyse (grafische Staukarte)

  • Routing erfolgreich → weiter
  • knapp verfehlt → neue Platzierung?
  • weit verfehlt → neuer Flurplan

Achtung: Platzierungsstrategie wichtig, um später Zeitconstraints einzuhalten - Elemente innerhalb des kritischen Pfades nahe beieinander - Puffer, um Treiberfähigkeit zu erhöhen - mehrfaches Einfügen von Logik, Reduktion des Loads - Zusammenfassen von Logik, weniger Flächen- und Strombedarf

Taktbaum: - Clock high-fanout - hohe Kapazität und hoher Skew, zudem anfällig für Rauschen - CTS (clock tree synthesis), Puffer in Baumstruktur (zB H-Baum) - Verringerung des Skews - Taktbaum wird meistens von Tool erstellt - Achtung: Netzliste wird verändert, Puffer brauchen Platz - Wechsel bei der STA: Ideal Clock → Propagated Clock

Genaues Routing: - Aufteilung des Designs in Blöcke, Verdrahtung untereinander und innerhalb - Reparieren von Fehlern (Kurzschlüsse, Abstände, MaxStack VIAs, …) - Optimierungen (Zeitverhalten, X-Talk, Antenna)

Antenna: - Lange Metall-Bahnen, die nicht am Drain angeschlossen sind, verhindern - Re-Routing und Verlagern der Verbindung in höhere Schichten - VIA nahe des Gates - oder Einführung von Schutzdioden

Crosstalk (X-Talk), Übersprechen: - Nahe Leitungen können sich gegenseitig beeinflussen - Vergrößerung des Abstands, Layerwechsel, Umsortierung der Netze, Umwege

weitere Optimierungen: - DFM (Design for Manufacturing), Verdopplung der VIAs - Auch nachträgliches Ändern der Netzliste möglich, um Constraints zu erfüllen, ECO (Engineering Change Order)

Timing Analyse: - jetzt auch Hold-Timings wichtig - Einhaltung durch Neuverdrahten zeitkritischer Bereiche - bei Hold-Violations automatisch Delay einbauen - Achtung: dadurch können Constraints verletzt werden - Iterativer Prozess: Routing → Timing → Re-Route → Timing → …

Freie Flächen mit Filler-Zellen. Entweder leer oder mit Kapazitäten (stabilere Spannungsversorgung). Verbindung von N- bzw P-Wannen.

“grobe” PnR-Verifikation: - geometrisch: Breite, Länge, Abstände, Überlappung, Kurzschlüsse - connectivity: offene, nicht verbundene Netze - antenna: Antenna-Constraints - metal density: Metall-Dichte zwischen min und max - Spannungsversorgung: vorhanden, IR-drop

Signoff

(skip)

Low Power

immer mehr Bedeutung weil: - Wärme: teure Kühlung notwendig, Ausfallraten nehmen zu - Mobile Geräte: Zeit bis zur nächsten Ladung soll maximiert werden

auf unterschiedlichen Ebenen: - System-Design: Speichertyp, Bustyp, IO - Sub-System-Design/Algorithmen: welche ALU, Busbreite CPU, FPGA/ASIC/CPU - RTL: Pipelining, bus-encoding - Gatter/Netzlisten: Clock-Gating, Daten-Gating - Transistoren: Multi-Vth

Pshortcircuit: wenn beide Transistoren etwas geöffnet

Pswitching: Durch das Umschalten des Eingangs, Stromfluss durch Laden/Entladen des Kondensators

Pswitching = alpha * C * Vdd^2 * fsys

alpha: Aktivitätsfaktor

fsys: Systemfrequenz

Berechnung Gesamtleistung: - Ptotal = Pdynamic + Pstatic - Pdynamic = Pshortcurcuit + Pswitching - Pstatic = (Isub + Igate + Ijunc + Icontention) * Vdd

Aktivitätsfaktor senken durch: - Clock-Gating - Data Isolation - Pipelining (Glitches filtern)

alpha mit probabilistischem Modell abschätzbar, aber: - Modell nur bei gleichbleibender Wahrscheinlichkeit korrekt - nur wenn Gatter keine Verzögerung, Glitches! → alpha > 1 möglich

Frequenz: durch Verringern sinkt Leistung, wenn volle Performance nicht gebraucht aber abschaltbar

Spannung: durch Technologie vorgeschrieben, geringer mit mehr Rauschen und längerem Delay

Kapazität: Leitungslänge verringern, full-custom mit optimierten Gattern

Parallelität: - verdoppeln der Komponenten, Halbierung der Frequenz - weniger Spannung notwendig - oder: Pipelining, Frequenz bleibt gleich

Spannung absenken auch für Pstatic interessant, aber: trade-off zwischen geringen Leckströmen und geringem Delay im aktiven Modus

Subthreshold Leakage: - eng mit Dotierung und damit Vth verbunden - LVT: Vt klein, Isub hoch, schnell, oft HP (high performance) oder SP (standard performance) bezeichnet - HVT: Vt hoch, Isub klein, langsam, oft LL (low leakage) bezeichnet - bei full-custom Einfluss auf Gate-Länge selbst - Mischung von LVT und HVT möglich, aber: Prozesskosten! - VTCMOS: variabel einstellbar, Body-Effect durch Vbb, benötigt zusätzliche Power-Leitungen

Gate-Leakage reduzierbar durch dickere Oxid-Schicht oder alternativen Materialien (zB mit hoher Dielektrizitätszahl, High-K)

Junction-Leakage gering und meist vernachlässigbar, in HVT beobachtbar: - BTBT (Band-to-Band-Tunneling): Strom von Drain nach Bulk, am schlimmsten bei Vdb = Vdd - GIDL (Gate-Induced-Drain-Leakage): Strom von Drain nach Bulk, angeregt durch hohe elektrische Felder zwischen G und D, am schlimmsten bei Vgd = -Vdd

Stack-Effekt: - Bei Reihenschaltung (zB NAND), beeinflussen sich Leckströme gegenseitig - bei Abschaltung gezielt Eingaben setzen, um Stack-Effekt auszunutzen - trade-off: gezieltes Setzen erfordert Aktivität

Power-Gating: - Achtung: Gating-Transistoren müssen beefy genug sein, im Betrieb viel Strom - Achtung: zusätzlich Daten-Gating betreiben, sonst ungültige Werte am Ausgang - Achtung: kostet viel dynamische Leistung, lohnt nur bei langer Abschaltung

RTL Maßnahmen: - generell: Aktivitätsgrad vermindern - Achtung: bei falscher Strategie/Verwendung, mehr Strom oder sogar funktionsunfähig - keine Zurücksetzen Default-Werte - redundante Logik vermeiden - Pipelining: Glitches werden nicht weitergegeben, aber mehr FFs, trade-off - Zustandscodierung: Gray, One-Hot, One-Cold, bei Gray zB auch Invertierendes Übertragen - Register-Retiming: bei nicht-zeitkritischen Pfaden Register Umplatzieren - Vorberechnete Logik: zB MSB-Vergleiche bei Integern - Clock-Gating: Nur aktivieren, wenn wirklich geschalten werden soll, ICG-Zellen mit Latch, am besten schaltbar um gut testen zu können - Daten-Gating: Daten nicht berechnen, wenn nicht benötigt

Rechnergestützt: - Re-Mapping: Komplexgatter - Datenpfad-Optimierung

Design for Test

  • Verifikation: Funktionale Überprüfung, ob Design korrekt ist
  • Testing: Annahme, dass Design korrekt ist, korrekte Fertigung prüfen

Hinzufügen von Testschaltung. Ziel: automatisches Testen

BIST (Built-in Self Test): Test und Auswertung innerhalb des Chips

Internal Scan Design: - Verbindung aller FFs über Multiplexer zu einem großen Schieberegister - spezielle Standardzellen - Test-Modus kann (de-)aktiviert werden - TM (Testmode), SE (ScanEnable), SI/SO (ScanIn/Out), Reset, Clock - FFs schreiben, einen Takt rechnen, neue Werte auslesen und vergleichen

ATPG: Automatic Test Pattern Generation - Analyse der Scanchain - Auswahl der Testvektoren

Fehlermodelle

Modi-Analyse empfohlen → MM-MC Entwurf

JTAG (Joint Test Action Group): - Test auf Platinenebene - IO Zellen zu Schieberegister - Verhalten durch TAP (Test Access Point, Zustandsautomat) geregelt - TDI (Test Data In), TDO (Test Data Out), TCK (Test Clock), TMS (Test Mode Select), TRST (Test Reset) - Register: Instruction Register, Bypass, IDCODE (Kennung), X-Register (beliebig) - BSDL (Boundary Scan Description Language): JTAG Debugger internen Aufbau beschreiben