Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 3 » EDA Zusammenfassung
Inhaltsverzeichnis
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 | Standardzellen | Full-Custom |
---|---|---|---|---|
Entwurfszeit | sehr niedrig | niedrig | mittel | hoch |
Komplexität | niedrig | mittel | hoch | sehr hoch |
rel. Chipfläche | - | 1 | 0.7 | < 0.5 |
wirtsch. Stückzahl | 1 | 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
- Design einlesen
- Flurplan (IOs, Makro-Zellen, Spannungsversorgung, Globale Netzdefinition)
- Aufbau des Taktbaums
- Routing
- PnR-Verifikation (!= Signoff)
- 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