Digitalelektronik
Kapitel 2: Schaltungen
2.4: CMOS
MOS-FET
P-Substrat
n-
n+ n+
SiO2 SiO2 SiO2
Source Drain
Gate
Bulk
● Sehr hoher Eingangswiderstand >1012W
● Leitender n- -Kanal
● Gate negativ gegen Bulk
▪ Ladungsträger werden verdrängt
● Verarmungstyp
n-Kanal
p-Kanal
MOS-FET
P-Substrat
n+ n+
SiO2 SiO2 SiO2
Source Drain
Gate
Bulk
● Anreicherungstyp
● Durch positive
Spannung gegen Bulk
● n-Ladungsträger reichern sich am Gate an
n-Kanal p-Kanal
Herstellungsschritte
CMOS
Complementary Metal Oxide Semiconductor
● Benutzt N- und P-Typ
● Versorgungsspannung 5V oder 3,3V
MOSFET
● n-Typ leitet:
▪ Wenn UGate>UBulk
● p-Typ leitet
▪ Wenn UGate<UBulk
Merke:
Der n-Kanal MOSFET leitet nur die negativen Potentiale Der p-Kanal MOSFET leitet nur die positiven Potentiale
● „Floating“-Eingang:
▪ Beide Transistoren leiten
▪ Kann Gatter zerstören
▪ Vermeiden!
CMOS-Inverter: Stromverbrauch
● Eingang 1 oder 0
▪ (Nahezu) kein statischer Stromverbrauch
● Aber: Dynamisch durch Umladen der Kapazitäten
▪ Bsp (angelehnt an GF110 von Nvidia):
▪ Gate-Kapazität 0,1 fF (40nm-Prozess)
▪ 1 GHz, 1V, 3 Milliarden Transitoren (=N)
▪ I = N*(C*U)/dt
= 3*109 * 10-16 F * 1V * 109 s-1
= 300 A
▪ P = I * U, d.h. ca. 300 Watt
▪ Spannung geht quadratisch ein
CMOS-NAND
● n-Typ leitet:
▪ Wenn
UGate>UBulk
● p-Typ leitet
▪ Wenn
UGate<UBulk
demo (java-applets):
tams-informatik.uni-hamburg.de/applets/cmos/cmos_dt.html
CMOS Transmission Gate
● Tristate, Buffer (=Treiber)
Digitalelektronik
Kapitel 2: Schaltungen
2.5: Speicher
Beispiel für kommerziellen Speicher
● Speicher-Baustein von Cypress
▪ Adress- und Datenleitungen
▪ Steuerleitungen: CS (Chip Select), WE (Write Enable)
Bilderquellen: Cypress, Datasheet CY62256N
Beispiel für kommerziellen Speicher
Bilderquellen: Cypress, Datasheet CY62256N
SRAM mit CMOS
● 6-Transistor-Zelle
● Inverter-Inverter-Zelle
▪ 2 FETs zum Abkoppeln
● Schreiben: Select=1
▪ Entsprechende
Dimensionierung der Mosfets
● Lesen: Select=1 und Bitlines=0,5
▪ Spannungsdifferenz zw.
Bitlines
▪ Keine „reine“ digitale Schaltung
Vor- und Nachteile
● Schnell (<10ns)
● 6 Transistor-Zelle: hoher Flächenbedarf
● Hoher Stromverbrauch, bei hoher Geschwindigkeit und Speicherdichte
● Teuer
DRAM
● Dynamisches RAM
▪ Kondensator + FET
● Kondensator wird
beim Lesen entladen
▪ Wieder beschreiben
● Ladungsverluste
▪ Refresh
▪ Lesen und
Zurückschreiben
▪ Ca 1% der Zeit
DRAM
● Realisierung
● Gefaltet
● Gestapelt (3D)
● „Deep Trench“
ROM / PROM
● ROM = Read Only Memory
● PROM = Programmable ROM
EPROM
● EPROM = Erasable PROM
● „Floating Gate“ zwischen Gate und Kanal
● Programmierung durch hohe Spannung (19V)
● Ladungsträger (e-)
tunneln auf Floating Gate
● Abschirmungseffekt
● Bestrahlung mit UV-Licht (20min) entlädt Floating Gate
EEPROM
● Electrically Erasable PROM
● Durch- und
Zurücktunneln durch Spannung (ca. 19V) möglich
▪ Fowler-Nordheim-Effekt
● Auch als schnelles Flash-EEPROM machbar
● Mehrere MB/s
● >105 Zyklen möglich
Zusammenfassung
● RAM:
▪ SRAM-6-Transistor-Zelle,
▪ DRAM: Kondensator
● ROM: PROM, EPROM
● EEPROM: Einsatz als Flash (Memory-Stick, Digitale Kameras…)
Digitalelektronik
Kapitel 3:
Programmierbare Logik
Was ist programmierbare Logik?
Vereinfacht:
ein Schaltbrett
Digitalelektronik
Kapitel 3
3.1: Einfache PLD’s
Programmierbare Matrizen
a b c y 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0
● Disjunktive Normalform:
▪ y1 = ¬a ∧¬b ∧¬c
▪ y2 = ¬a ∧¬b ∧ c
▪ y5 = a ∧¬b ∧¬c
● Zeile verODERn:
▪ y = (¬a ∧¬b ∧¬c)
∨(¬a ∧¬b ∧ c)
∨( a ∧¬b ∧¬c)
PLA ● y = (¬a ∧¬b ∧¬c)
∨(¬a ∧¬b ∧ c)
∨( a ∧¬b ∧¬c)
● Aufbau der UND- Matrix durch
programmierbare Verbindungen
● Aufbau der ODER- Matrix durch
programmierbare Verbindungen a
b
c
y
● PLA=Programmable Logic Array
● Allgemein:
▪ PLD=Programmable Logic Device
y
PLA ● Mehrere Ausgänge:
● Erfordert größere UND-Matrix
● Ressourcen- schonung durch programmierbare ODER-Matrix
(Wiederverwendung der Produktterme) a
b
c
● Vereinfachte Darstellung
▪ Eingänge von ODER- bzw. UND-Gatter werden zusammengefasst
x
Programmierung
● Z.B als PROM (durchtrennte Verbindungen)
● Mit EPROM/EEPROM/Flash
▪ Statisch, behält Informationen (z.B. board-controller)
▪ Programmierung meist durch Kabel
● RAM
▪ Wird gebootet wie Prozessor
XC4000 XC4000
XC4000
latch
y
PAL ● ODER-Matrix
fest verdrahtet
● Schneller, aber weniger flexibel
a
b
c
● PAL=Programmable Array Logic
x
y
Kombinatorische PALs
a
b
● Ausgänge werden (teilweise) wieder zurückgeführt
PAL 16L8
● 10 Inputs
● 2 Outputs
● 6 flexible IOs
Kombinatorische PALs
● Anwendung:
● Mehrstufige kombinatorische Logik
● Aufbau von „kombinatorischen“ Flip-Flops
● Benutzung der „Brückenleitungen“ sowohl als Eingang- als auch Ausgangspin
▪ Mit (schaltbarem) Tristate-Buffer
▪ Man bleibt flexibel!
● Schaltung der Pins durch interne Leitung
PAL 16R6
● Wahlweise mit FFs vor Feedback-Leitung
● Zustandsautomat!
GAL=Gate Array Logic
● Makrozelle hat konfigurierbaren Ausgang
▪ Mit/ohne Register
▪ Ausgang/Eingang
CPLD
● CPLD=Complex Programmable Logic Device
● Mehrere Logic Array Blocks (LABs)
● Verbunden über Netzwerk
● Speicherung in EEPROM
CPLD
Logic Block
Logic Block
Logic Block
Logic Block
I/O I/O
Programmable Interconnect
PAL-Artige Struktur
CPLD
● Bsp: Altera, MAX 7000
Verbindungen CPLD
● Über PIA: Zeitverzögerung ist konstant
● Verhalten CPLD gut simulierbar
● Einsatz, z.B. als Bus- und Protokolltreiberbaustein
CPLD-Optionen
● Programmierung meist über JTAG-Stecker
▪ Auch zum Testen…
▪ JTAG=Joint Test Action Group
● Eingebautes RAM
▪ Verhindert „Verschwenden“ von Makrozellen
Einordnung
PLD
SPLD HCPLD
FPGA CPLD
PLA PAL
Simple PLD High Capacity PLD
Programmable Array Logic
Complex PLD Field Programmable Gate Array
Digitalelektronik
Kapitel 3
3.2: FPGA’s
FPGA
● Field Programmable Gate Array
● Logic Blocks werden durch 2D-Array verbunden
Hersteller
● XILINX (CPLD & FPGA)
● Altera (FPGA)
● Lattice
● div.
XILINX-FPGA-Complex-Logic-Block
● Look-Up-Table
▪ Implementiert kombinatorische Logik
▪ …siehe Teil 1e
● FF zum (optionalen) Registrieren
▪ Für Zustandsautomaten
4-LUT FF
1 0 latch
Logic Block set by configuration bit-stream
4-input "look up table"
OUTPUT INPUTS
LUT-Implementierung
● LUT als 16-Bit-RAM implementiert
● Bitstream lädt Latche
● Bsp: Input = 0001
● Output soll = 1 sein
● Latch 2 muss
mit 1 geladen werden
latch latch latch
latch
16 x 1 16 mux
INPUTS
OUTPUT
Latches programmed as part of configuration bit-stream 1
0000 F(0,0,0,0) 0001 F(0,0,0,1) 0010 F(0,0,1,0) 0011 F(0,0,1,1) 0011
0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
INPUTS
store in 1st latch store in 2nd latch
LUT-Beispiel
A B C D Z
0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
LUT
A B C D
Z
A B
C D
Z
Wahrheitstabelle Gatter-Implementierung LUT -Implementierung
Configurable Logic Block (CLB/Slice)
● 2*4Bit-Eingänge
● Schnelle Carry-Logik verbinden benachbarte CLBs
▪ Für breite Zähler und Addierer
F5IN
CINCLK CE
COUT
D Q
CK S
EC R
D Q
CK EC R O
G4G3 G2G1
Look-Up Table
Carry
&
Control Logic
O
YB Y
F4F3 F2 F1
XB X Look-Up
Table
BY SR
S
Carry
&
Control Logic
SLICE
COUT
D Q
CK S
EC R
D Q
CK EC R O
G4G3 G2G1
Look-Up Table
Carry
&
Control Logic
O
YB Y
F4F3 F2F1
XB X Look-Up
Table
F5IN BY SR
S
Carry
&
Control Logic
CINCLK
CE SLICE
Anbindung CLB
● Anbindung CLB an PSM
(programmable switching Matrix)
● Long-Lines über gesamten Chip
● Direct-Lines von CLB zum
Nachbarn