Digitaltechnik
Digitaltechnik
Juni 2020
Größte darstellbare Zahl nach Anzahl der Ziffern Source am niedrigeren Potential (UDS > 0) p
b: Basis; p: Anz. Vorkommast.; n: Anz. Nachkommast.
0 UGS < Ut (aus)
∧ UDS ≥ 0
Zmax = bp − b−n
β U − U − UDS U
UGS > Ut (linear)
GS t 2 DS
ID =
∧ 0 < UDS < UGS − Ut
Zahlenkonvertierung Dezimal nach Basis r
β (UGS − Ut )2
UGS > Ut (Sättigung)
2
Sei z Zahl im Dezimalsystem.
∧ 0 < UGS − Ut < UDS
Für z ≥ 1
1 ) Teile z durch r. Rest ist letzte Ziffer (LSB). pMOS
2 ) Wiederhole mit Ergebnis von 1). Rest ist vorletzte Zif-
fer usw. Guter Pull-Up p p
3 ) letzter Rest ist erste Ziffer (MSB). Source am höheren Potential (UDS < 0) n
Für z < 1
0 UGS > Ut (aus)
∧ UDS ≤ 0
1 ) Multipliziere z mit r. Übertrag ist erste Ziffer (MSB).
−β U − U − UDS U
UGS < Ut (linear)
2 ) Wiederhole mit Ergebnis von 1). Übertrag ist zweite GS t 2 DS
ID =
Ziffer usw.
∧ 0 > UDS > UGS − Ut
−β 2
2 (UGS − Ut ) UGS < Ut (Sättigung)
3 ) letzter Rest ist letzte Ziffer (LSB).
∧ 0 > UGS − Ut > UDS
Anzahl der benötigten Ziffern n bezüglich der Basis r, um
Z10 darstellen zu können:
Dimensionierung
n = blogr (Z)c + 1
W
Negative Zahl bilden (2er Komplement, Radix) tox
µεOx ε0
n
K(Z) = r − Z Lmin β = K0 W 0
L mit K = tOx
1 ) Betrag der Dezimalzahl in Binärsystem umwandeln εOx : rel. Dielektrizitätskonstante des Gate Oxyds
2 ) Binäre Zahl invertieren ε0 : Dielektrizitätskonstante
W: Kanalweite L: Kanallänge
3 ) Anschließend 1 addieren
µ: Beweglichkeit der Elektronen/Löcher
tOx : Gate Oxyd-Dicke
Binäre Rechenoperationen
L immer Lmin
n1 : Bit-Anzahl von Zahl 1; n2 : Bit-Anzahl von Zahl 2
Maximale Anzahl an Bit, um Ergebnis darzustellen: W ∼ Drain Strom ∼ Schaltgeschwindkeit
µn = (1.5 . . . 3.5) · µp ⇒ Kanalweite bei pMOS größer
Addition: nE = max(n1 , n2 ) + 1 ⇒ nMOS schaltet prinzipiell schneller als pMOS
Multiplikation: nE = n1 + n2
Verzögerungszeit (Propagation delay)
Gleitkommazahlen (IEEE 754)
Zeit zwischen 50%-Pegeln von Eingang und Ausgang.
1 bit Vorzeichen(v), 8 bit Exponent(e), 23 bit Mantisse(m)
1
tp = Ron,p · C · ln(2) , Ron,p ≈ β(|UGSp |−|Utp |)
Dezimalzahl → IEEE 754 Cload tOx Lp
tpLH ∼ Wp µp εOx (UDD −|Utp |)
Z positiv ⇒ v = 0; Z negativ ⇒ v = 1
Statisch
DNF und KNF
Sub-Schwellstrom, Leckstrom (Diodensperrstrom), Gate-
Strom DNF (= CSOP):
⇒ abhängig von Versorgungs- und Schwellspannung 1-Zeilen mit ODER verknüpfen A B C Z
0 0 0 0
Pdyn ≈ Pstat Z = A·B·C+A·B·C+A·B·C+A·B·C 0 0 1 1
2
PCap = α01 f CUdd 0 1 0 1
PShort = α01 f βn τ (Udd − 2Utn )3 KNF (= POS): 0 1 1 0
Werte der 0-Zeilen invertieren und 1 0 0 1
Anzahl der steigenden F lanken des Signals Z mit UND verknüpfen
α= Anzahl der steigenden F lanken des T aktsignals 1 0 1 0
Z = (A + B + C) · (A + B + C)· 1 1 0 0
Falls Schaltwahrscheinlichkeit gegeben ist: 1 1 1 1
·(A + B + C) · (A + B + C)
α = P (Z = 0) · P (Z = 1)
UDD 1 1 0 1 0
1 1 1 1 1 S
Ripple-Carry-Adder
A3 B3 A2 B2 A1 B1 A0 B0
I Cout = C4 VA VA VA VA C0 = Cin = 0
S3 S2 S1 S0
Utn UDD - |Utp| UDD Uin
Verzögerungszeit wird vom Carry-Übertrag dominiert!
Maximale Verzögerungszeit, wenn beim LSB das Signal
vout hat definierten Logikpegel, wenn gilt: | ∂v
∂vin | < 1
out
von G wechselt und bei allen anderen Gattern gilt: P = 1.
c e Q e Q c Q c Q i33 i33/o33
Q
D
D D Q D Q Q D Q - Q
Master Slave i f(s, i) s g(s) o i f(s, i) s g(s, i) o
clk clk
Timing
Ausgang nur vom Zustand Ausgang vom Zustand und
tsetup : Zeit, in der der Eingangswert vor aktiver Taktflanke abhängig. von Eingabe abhängig.
stabil sein muss
Vorteile:
thold : Zeit, in der der Eingangswert nach aktiver Taktflanke
stabil bleiben muss Kein Kombinatorischer Pfad Weniger Zustände,
von Eingängen zu Ausgängen Übersichtlicher, Allgemeiner
tc2q : Zeit, nach der der Eingangswert nach der Taktflanke
stabil an Q anliegt (=Ausgangslatenz des Registers) ⇒ Begrenzung der Logik-
Tiefe
tclk : Clock
tlängsterP f ad : (=kritischer Pfad) Längste Verzögerungszeit Nachteile:
zwischen zwei Registerstufen Hohe Anzahl von Zuständen Lange kombinatorische Pfa-
de bei Vekettung mehrerer
tclk ≥ tc2q + tlängsterP f ad + tsetup FSMs
thold ≤ tc2q + tkürzesterP f ad
fmax = 1
tsetup +tc2q +tlängsterP f ad
Speicher
(Für maximalen Durchsatz die Einheit op/s“ verwenden!) Definitionen
”
Bandbreite: Datenmenge pro Zeiteinheit zum Schreiben
Gesamtlatenz = (Maximale Anzahl hintereinander
oder Lesen [bit/sec]
geschalteter Register −1) · tclk
Latenz: Zeitdifferenz zwischen Anforderung und
Ausgabe von Daten [sec]
Für eine dauerhaft korrekte Datenübergabe müssen
Zykluszeit: Zeitdifferenz zwischen auffeinander folgenden
alle Register mit der selben Frequenz arbeiten (ansonsten:
Schreib/Lese Zyklen [sec]
Verletzung der Hold-/Setup-Zeit usw.).
Asynchron: Lese-/Schreibvorgang beginnt direkt
⇒ neues Datenwort kann unmittelbar am
Pipelining Ausgang anliegen
Aufteilen langer kombinatorischer Pfade durch Einfügen Synchron: Fester Systemtakt (→ Fließbandverarbeitung)
zusätzlicher Registerstufen, um die Taktfrequenz erhöhen ⇒ Datenwort ist frühestens mit nächstem Takt
zu können (Gesamtlatenz wird allerdings nicht kleiner). nach Anlegen einer neuen Adresse zu erwarten
⇒ Möglichst Halbierung des längsten Pfades!
⇒ Evtl. müssen sog. Dummy-Gatter“ eingefügt werden!
” Bei der Anordnung von Speicherzellen in Reihen und Spal-
ten wird darauf geachtet, dass es möglichst quadratisch ist.
Parallele Verarbeitungseinheiten
- Paralleles, gleichzeitiges Verwenden mehrere identischer Leseverstärker zwischen Speicherzelle und Decoder
Schaltnetze beschleunigen den Speicherzugriff.
1-Transistor DRAM-Zelle
WL “1” “1”
EDS
BL schreiben lesen
UDD
WL Algebra
UDD BL
UDD Boolesche Algebra
CS 1 ) x · y = y · x, x + y = y + x
X
X
UDD-Ut 2 ) (x · y) · z = x · (y · z) , (x + y) + z = x + (y + z)
CBL ΔU
3 ) x · (y + z) = x · y + x · z
4) x · x = x , x + x = x
UDD CS
∆U = (UX − 2 ) · CS +CBL 5 ) x · (x + y) = x , x + x · y = x
Signalverstärkung und Refresh-Zyklen notwendig. 6) 1 · x = x , 0 + x = x
7) 0 · x = 0 , 1 + x = 1
6-Transistor SRAM-Zelle
8) x · x = 0 , x + x = 1
WL
9) x = x
UDD
M2 M4
10 ) x · y = x + y , x + y = x · y
Q
M6 XOR Algebra
M5 Q
1) x ⊕ y = y ⊕ x
M1 M3
2 ) (x ⊕ y) ⊕ z = x ⊕ (y ⊕ z)
BL BL 3 ) x · (y ⊕ z) = x · y ⊕ x · z
4) x ⊕ 0 = x
5) x = x ⊕ 1 , x ⊕ y = x ⊕ y ⊕ 1
6) x ⊕ x = 1 , x ⊕ x = 0
Die Transitoren M1 - M4 realisieren ein CMOS-Latch zur
7) x ⊕ x ⊕ x = x
Speicherung einer ”0”bzw. ”1”. Über die Transistoren M5
und M6 wird die Speicherzelle zum Lesen oder Schreiben 8) x ⊕ y = x ⊕ y
ausgewählt. 9) x ⊕ y = x · y + x · y
10 ) x ⊕ y = (x + y) · (x + y)
Flash
Source Drain
11 ) x + y = x ⊕ y ⊕ x · y
Gate
12 ) x · y = x ⊕ y ⊕ (x + y)
Floating Gate
n+
p
n+
Schaltsymbole
Substrate
Lesen
Schreiben
Löschen
p\m m0 m2 m3 m7
xyzw 0000 p1 1 1 0 0
p2 0 1 1 0
p3 0 0 1 1
Menge aller Knoten (0-Kuben) = 2n ⇒ MinSOP : f = p1 + p3 = x · z + y · z
Menge aller Kuben = 3n
Menge aller Kanten = n2 · 2n
Resolventenmethode
Kubenabstand δ(c1 , c2 ):
Anzahl(#) an Literalen, die in c1 negiert und in c2 nicht Gesetze
negiert vorkommen und umgekehrt.
Allgemeines Resolutionsgesetz
#Kubusliterale = #Raumdimensionen - #Kubusdimension
#Überdeckte Minterme = 2Kubusdimension x·a+x·b=x·a+x·b+a·b
Begriffe Absorptionsgesetz
Cover a+a·b=a
z.B.: f = y · z + x · y + x · y f Schicht
x · y +
x ·
y · x ·
z + y·
z 0
⇒ cov(f ) = {y · z, x · y, x · y} +y · z + x · z 1
Implikanten, die in mehreren Funktionen vorhanden sind, f monoton fallend in xi ⇔ fxi ⊂ fxi ⇔ fxi = fxi + fxi
können gemeinsam genutzt werden. ⇔ xi kommt in Funktion nicht vor!
⇒ Nur sinnvoll, wenn dadurch die Gesamtliteralzahl sinkt.
Falls f monoton fallend, kann f aufgeteilt werden:
1 ) Zur Vereinfachung MinSOP von f1 , f2 , ... bestimmen
2 ) Mehrfachimplikant = f1 · f2 · ... f = xi · fxi + fxi
|{z} |{z}
ϕ g
Karnaugh-Diagramm Tautologie
n = 3: n = 4: f = 1 ⇔ fxi = 1 ∧ fxi = 1
w w w w
x z Falls f monoton steigend oder fallend: f = 1 ⇔ g = 1
z z z z 0000 0001 0101 0100
y x z
000 001 101 100 0010 0011 0111 0110
y x z Funktionale Dekomposition
010 011 111 110 1010 1011 1111 1110
x x x x Notationen
x z
1000 1001 1101 1100
y y y y - |x|: Anzahl der gebundenen Eingangsvariablen
- |X|: Anzahl aller Zustände der geb. Eingangsvariablen
- |z|: Anzahl der Dekompositionsvariablen
Heuristische Minimierung
- |Z|: Anzahl aller Zustände der Dekompositionsvar.
Literalentfernung (expand)
Schritt 1
z.B.: Dürfen y und z aus y · z · w einzeln bzw. gemeinsam
entfernt werden? Auswerten von f (x, y) (Wahrheitswertetabelle)
- y darf entfernt werden, falls fy·z·w = 1 x : gebundene Variablen, y : freie Variablen
- z darf entfernt werden, falls fy·z·w = 1
w = x1 · x3 · y 1 + x3 · y 2 + x1 · x2 · x3 · y1 +
- y und z dürfen entfernt werden, falls fy·z·w = 1 x2 · x3 · y 1 + x1 · x2 · y 2 + x1 · x2 · x3 · y1
Kubenentfernung (remove) y
x 000 001 010 011 100 101 110 111
Literalzahlerhöhung (reduce) 11 0 1 0 0 0 0 0 1
→ Zum Verlassen lokaler Minima. Anzahl der benötigten Variablen z: |z| = dlog2 (|Z|)e
z.B.: Darf man zum Kubus xy von f = xy + xyz + xz das Dekompositionsbedingung: |z| ≤ |x| − 1 bzw. |Z| ≤ 21 |X|
Literal z hinzufügen?
1 ) ⇒ xy von f entfernen → h Schritt 2
2 ) Darf hinzugefügt werden, wenn xyz ⊆ h (In diesem Konstruktion der Dekompositionsfunktion
Fall → Ja)
z = h(x) Dekompositionsfunktion
Strukturanalyse
(Willkürliche) Zuordnung von Belegungen (ẑ1 , ẑ2 , ...):
Monoton steigende Funktion
x̂ ∈ X f (x̂, y) ẑ
f monoton steigend in xi ⇔ fxi ⊂ fxi ⇔ fxi = fxi + fxi 000, 010, 100 y1 00
⇔ xi kommt in Funktion nicht vor!
001, 111 y1 + y 2 10
011, 101, 110 y2 11
Falls f monoton steigend, kann f aufgeteilt werden:
z1 = x1 · x2 · x3 + x1 · x2 · x3 + x1 · x2 · x3 + x1 · x2 · x3 +
f = xi · fxi + fxi x1 · x2 · x3 = ... = x1 · x2 + x3
z2 = x1 · x2 · x3 + x1 · x2 · x3 + x1 · x2 · x3
|{z} |{z}
ϕ g
NAND d
000 2
010 w c
e
100 00 y1
01 g f
001 y1+y2
111 10 z t a b c d e f ausgewertete neue Events*
y2
011 11 h Elemente
101
110 x y 0 1 1 1 1 0 1 init (a,’0’,0,1),
X h Z
(c,’0’,0,3)
1 0 AND (d,’0’,1,2)
2 0 NAND, NOR
Finite state machine (FSM) 3 0 NOR (e,’1’,3,5)
5 1 NAND
FSM= (S, I, O, δ, λ, S 0 ) S endliche Zustandsmenge, I Men-
*(signal, value, tgen ,texe )
ge der Eingangsmuster, O Menge der Ausgangsmuster, δ
Zustandsübergangsfunktion, λ Ausgangsfunktion, S 0 ∈ S
Anfangszustand
VHDL
Zustandsminimierung ENTITY Bausteinname IS
1 ) Eleminieren nicht erreichbarer Zustände Definiert die Schnittstelle einer Logik
3-äquivalente Zustände
PROCESS (Signalliste)
00 01 10 11 Alle Prozesse laufen nebeneinander ab
S1 S4/0 C S4/1 C S2/1 A S1/1 A
Da 2- und 3-äqivalente Zustände identisch, S2 S4/0 C S5/1 C S1/1 A S2/1 A A
sind diese Zustände (absolut) äquivalent. S3 S1/1 A S4/0 C S2/0 A S3/1 B B COMPONENT Gattername
S4 S1/1 A S2/0 A S3/0 B S5/1 C
C Beschreibt eine interne Komponente
S5 S1/1 A S2/0 A S3/0 B S4/1 C
Realisierung Testverfahren
x s1 s2 z1 z 2 y
Begriffe
x=0 x=1 0 00 00 0
Zustandscodierung:
1 00 01 1 Fehlerhafte Schaltung: yµ
S1 (S1, 0) (S2, 1) S1 = 00 = s1s2
0 01 00 0
S2 (S1, 0) (S3, 0) S2 = 01 = s1s2 Fehlergruppe: Menge aller erkannten Fehler von Test tv
1 01 10 0
S3 (S3, 0) (S1, 1) S3 = 10 = s1s2 Fehleranzahl = 2· Signalanzahl
0 10 10 0
1 10 00 1
Testgruppe: Menge aller Tests die Fehler fµ erkennen
Testmenge: Enthaltene Tests erkennen alle angenomme-
nen Fehler
y = x · s1 · s2 + x · s1 · s2 = x · s2
Fehlerüberdeckung: Vereinigung der Fehlergruppen
z1 = x · s1 · s2 + x · s1 · s2
enthält alle angenommenen Fehler
z2 = x · s1 · s2
Fehlererkennung: tv Rfµ = y(xv ) ⊕ yµ (xv ) = 1
Logiksimulation
Fehlerunterscheidung: yµ (xv ) ⊕ yκ (xv ) = 1
Ereignis: Wertänderung eines Signals
Ereignis: E = (z, val(z, texe ), tgen , texe ) Zwei einzelne Fehler sind nicht unterscheidbar, wenn
Laufzeitabhängige Effekte: deren Testgruppen gleich sind
Rechenregeln
3 ) Welche Eingänge wirken sich auf das jeweilige Gatter
aus? ⇒ Mit Punkt und dicker Linie markieren
1 ) yx = 0 falls y 6= f (x) 4 ) Fan-outs auftrennen. Die relevanten Fan-outs sind die-
2 ) yy = 1 jenigen, die sich bei verändertem Signalwert auf den
3 ) (y)x = yx Ausgang auswirken.
4 ) (z ⊕ w)x = zx ⊕ wx 5 ) Menge S 0 : Alle Signale, die im Fehlerbaum eine ,,Ver-
bindung zum Ausgang” haben.
5 ) (z · w)x = z · wx ⊕ zx · w ⊕ zx · wx
6 ) Menge F t : Alle Fehler, die sich auf den Ausgang aus-
6 ) (z + w)x = z · wx ⊕ zx · w ⊕ zx · wx
wirken.
7 ) Falls y = y(z(x)) : yx = yz · zx
8 ) (yz )w = (yw )z D-Algorithmus
D: ’1’ im fehlerfreien Fall, ’0’ im fehlerhaften Fall D: ’0’
Test
im fehlerfreien Fall, ’1’ im fehlerhaften Fall D-Kette VD :
z/0 = z · yz = 1 Einfach-/Mehrfachfehlerpfad von x zum Ausgang y
z/1 = z · yz = 1 · 0 1 X D D + 0 1 X D D
0 0 0 0 0 0 0 0 1 X D D
Fehlerbelegung (Einstellbarkeit) 1 0 1 X D D 1 1 1 1 1 1
X 0 X X X X X X 1 X X X
z/0 : z(x) = 1 D 0 D X D 0 D D 1 X D 1
z/1 : z(x) = 0 D 0 D X 0 D D D 1 X 1 D
Sensibilisierungsbelegung (Beobachtbarkeit) ⊕ 0 1 X D D a a
yz (x) = 1 0 0 1 X D D 0 1
1 1 0 X D D 1 0
Strukturbezogene Berechnung der BD X X X X X X X X
D D D X 0 1 D D
Redeweisen für yx : D D D X 1 0 D D
• BD von y nach x (Boolean Difference) F: Fehlerbelegung; S: Sensibilisierung I: Implikation; O:
Optionale Wertzuweisung
• Beobachtbarkeit von x an y (Observability)
• Empfindlichkeit von y gegen x (Sensitivity) Globale Implikation
Redeweisen für yx = 1:
z
w
• Fehlbelegung an x ⇒ Fehlbelegung an y Gatter
• Einfachfehler an x an y beobachtbar
Lernprozedur (Kontrapositionsgesetz)
yx = y(x) ⊕ y(x)
b ⇒ yb genau dann, wenn yb ⇒ x
x
y ⊕ yx = y(x) = z(x) ◦ w(x)
b
Es sollen nur globale Implikationen gelernt werden.
y ⊕ yx = (z ⊕ zx ) ◦ (w ⊕ wx )
Nur lernenswert falls bei Vorwärtsimplikation gilt:
yx = [(z ⊕ zx ) ◦ (w ⊕ wx )] ⊕ [z ◦ w]
yz · yw = 1
yx = yz · zx · wx + yw · wx · zx + zx · wx · [z ◦ w ⊕ z ◦ w]
yx = [(z ⊕ zx ) ◦ (w ⊕ wx ) ◦ (v ⊕ vx )] ⊕ [z ◦ w ◦ v] Einstellbarkeitsmaße(Controllability)
C0 : Nulleinstellbarkeit; C1 : Einseinstellbarkeit x Eingangs-
variable ⇒ C0 (x) = C1 (x) = 0.5
Pfadsensibilisierung Bei mehreren Alternativen zur Sicherstellung eines Signal-
wertes wird derjenige mit dem größten Einstellbarkeitsmaß
1 ) yz · zx · wx = 1 : Einfachfehlerpfad x-z-y ausgewählt (Nur bei Baumstrukturen exakt!).
2 ) yw · wx · zx = 1 : Einfachfehlerpfad x-w-y
Lizenz: CC BY-NC-SA 3.0
3 ) zx · wx · [z ◦ w ⊕ z ◦ w] = 1 : Mehrfachpfadsensibilisie-
[Link]
rung
0/de/
4 ) zx · wx · [z ◦ w ⊕ z ◦ w] = 1 : Selbstmaskierung