1. Begriffe
1.1. Speicher-Elemente
1.2. Output-Logik
1.3. Next-State Logik
2. Spule & Kondensator
2.1. Spule
2.1.1. Formeln
2.1.1.1. L=N^2 * (μ*A)/l
2.1.1.2. U(t)=L*di(t)/dt
2.1.1.3. E=1/2 *L*I²
2.1.1.4. Φ=(L*I)/N
2.1.1.5. i=i_0 *(1-e^(-1/τ))
2.1.1.6. τ=L/R
2.2. Kondensator
2.2.1. Formeln
2.2.1.1. Q=C*U
2.2.1.2. C=ε*(A/d)
2.2.1.3. u(t)=1/C * ∫i(τ)dτ
2.2.1.4. W=1/2 *C*U²
2.2.1.5. U=U_0 * e^(-t/τ) (entladen)
2.2.1.6. U=U_0 * (1 - e^(-t/τ)) (laden)
2.2.1.7. τ=RC
2.2.1.7.1. Nach τ Sekunden ist ein Kondensator 63% ge- oder entladen
2.3. Frequenzfilter
2.3.1. Hochpass / Tiefpass
2.3.1.1. Hochpass lässt hohe Frequenzen durch
2.3.1.2. Tiefpass lässt tiefe Frequenzen durch
2.3.1.3. f_c=1/(2πτ)
2.3.2. Bandpass
2.3.2.1. f_m=1/(2π sqrt(LC))
3. Halbleiter
3.1. Transistor
3.1.1. Formel
3.1.1.1. B = I_C / I_B
3.1.1.2. Lastwiderstandsgerade: Ic=-1/R * Uce+(U_Vcc / R)
3.1.2. npn / pnp
3.1.2.1. npn
3.1.2.2. pnp
4. Digitale Speicherbausteine
4.1. SR-Latch
4.1.1. getaktetes SR-Latch - Clock
4.1.1.1. D-Latch - nur ein Eingang
4.1.1.1.1. D-Flipflop - Flankengesteuert (Pulsgenerator)
4.2. Pulsgenerator
5. Speichertechnologien
5.1. RAM (Random Access Memory)
5.1.1. SRAM (Statische RAM) - Flipflops - sehr schnell - verwendung: Level 2 Cache
5.1.1.1. Bipolarer SRAM - hohe Geschwindigkeit
5.1.1.2. NMOS-SRAM
5.1.1.3. CMOS-SRAM
5.1.2. DRAM (Dynamische RAM) - Transistor + Kondensator - hohe Speicherdichte - geringe Kosten - langsamer als SRAM - verwendung: Hauptspeicher
5.2. ROM (READ-ONLY MEMORY) - nichtflüchtiger Speicher - beschreiben heißt programmieren
5.2.1. Maskenprogrammierung (ROM) - irreversibel - beim Herstellungsprozess fehlende verbindungen - MOS
5.2.2. Elektrische Programmierung (PROM) - Können vom Anwender programmiert werden - beim Programmieren werden imPROM gezielt Sicherungen durch hohe Spannung zerstört
5.2.3. Löschbare, elektrische Programmierung (EPROM, EEPROM, Flash)
5.2.3.1. EPROM (Erasable Programmable ROM) - selbstsperrende Feldeffekttransistoren - können durch UV-Strahlen gelöscht werden
5.2.3.2. EEPROM (Electrically Erasable Programmable ROM) - kann elektrisch gelöscht werden - einzelne Speicherzellen können gelöscht werden
5.2.3.3. Flash (Flash-EEPROM) - arbeitet blockorientiert (mehrere Bytes)
6. Rechnerstruktur und Rechnerarchitektur
6.1. Addiernetze
6.1.1. Halbaddierer - addiert 2 bit - mit Übertrag
6.1.2. Volladdierer - addiert 2 bit - mit Übertrag
6.1.3. Ripple-Carry-Adder (asynchrones (Parallel-)Addiernetz) - berechnet mit VAs jede einzelne stelle (Ausnahme letztes: HA)
6.1.4. Carry-Bypass-Addiernetz - //TODO
6.1.5. Carry-Save-Addiernetz - //TODO
6.2. Addierwerke
6.2.1. Ripple-Carry-Addierer
6.2.2. Serien-Addierwerk
6.2.3. von Neumann-Addierwerk
6.3. Multiplikation
6.3.1. Carry-Save-Multiplikation
6.3.2. Wallace-Tree
6.4. CPU
6.4.1. Datenprozessor
6.4.1.1. ALU (arithmetic logic unit)
6.4.1.2. MBR (memory buffer register)
6.4.1.3. MR (Multiplikationsregister)
6.4.1.4. L (Link-Register)
6.4.1.5. A (Akkumulator)
6.4.2. Befehlsprozessor
6.4.2.1. Decodier Steuerwerk
6.4.2.2. IR (Instruktions Register)
6.4.2.3. MAR (memory address register)
6.4.2.4. PC (program counter)
6.4.3. Fetch/Execute-Zyklus
6.4.3.1. 1. Fetch-Phase
6.4.3.1.1. Inhalt von PC wird nach MAR gebracht. Inhalt von dieser Adresse aus dem Speicher über MBR nach IR gehohlt. Decoder decodiert Befehl PC wird incrementiert.
6.4.3.2. 2. Execute Phase Befehltsausführung, und initioation für den nächsten befehl.
6.5. Rechnerarchitektur
6.5.1. von Neumann-Rechner
6.5.1.1. Funktion
6.5.1.1.1. CPU führt genau 1 Befehl aus mit höchstens einem Datenwert
6.5.1.1.2. Daten und Programme auf dem selben Speicher
6.5.1.2. Speicherhirarchie
6.5.1.2.1. CPU
6.5.2. Harvard-Architektur
6.5.2.1. Funktion
6.5.2.1.1. Daten und Programme sind pysisch getrennt und werden über getrennte Busse angesteuert
6.5.2.1.2. Unabhängige Adressräume
6.5.3. Vergleich
6.5.3.1. pro von Neumann-Architektur
6.5.3.1.1. nichtbenötigter Datenspeicher nicht als Programmspeicher nutzbar und umgekert
6.5.3.2. pro Harvard-Architektur - verwendet in Digitalen Signalprozessoren
6.5.3.2.1. gleichzeitiges Laden von Befehlen und Daten => schneller
6.5.3.2.2. programmcode kann nicht versehentlich überschrieben werden => sicherer
6.5.3.2.3. Datenwortbreite und Befehlswortbreite unabhängig voneinander
7. MMIX
7.1. Register
7.1.1. Spezial-Register
7.2. Speicherorganisation
7.2.1. Wyde = 2 Bytes
7.2.2. Tetra = 2 Wydes
7.2.3. Octa = 2 Tetras
8. Hardwaresynthese
8.1. MUX (Multiplexer) - Mehrere Eingänge, 1 Ausgang
8.1.1. Kann eine Funktion realisieren - z.B. Minterme
8.2. DEMUX - 1 Eingang, mehrere Ausgänge
8.3. Decoder - hat n Eingänge und 2^n ausgänge - Ausgang m_(i) wird 1, wenn (x1 x2, ...xn)_2 = i
8.4. Encoder - macht decoder rückgängig
8.5. PLDs (Programmable Logic Devices) CPLDs (Complex Programmable Logic D.)
8.5.1. Punkt-orientierte PLA
8.5.1.1. Darstellung
8.5.1.1.1. Es müssen links alle Variablen und ihr Negat eingegeben werden, um auf Negat-Multiplizierer zu verzichten
8.5.1.1.2. kein Punkt: Identer
8.5.1.1.3. Punkt in Oder-Ebene (unten) : Addierer
8.5.1.1.4. Punkt in Und-Ebene (oben): Multiplizierer
8.5.1.2. Faltung
8.5.1.2.1. Variablen können von rechts eingeleitet werden. Dann muss die Leitung in der Horizontalen aber an einer Stelle unterbrochen sein
8.5.1.3. PAL
8.5.1.3.1. Nur die Und-Ebene ist beschreibbar.
8.5.1.3.2. Nicht löschbar
8.5.2. Bausteintypen
8.5.2.1. Identer
8.5.2.2. Addierer
8.5.2.3. Multiplizierer
8.5.2.4. Negat-Multiplizierer
8.5.3. CPLDS - 50-200 Gates
8.5.3.1. FPGA (Field Programmable Gate Arrays) - 1,000,000+ gates
8.6. VHSIC (Very High Speed Integrated Circuit) Hardware Description Language
8.6.1. VHDL (VHSIC Hardware Description Language)
8.6.1.1. Aufbau
8.6.1.1.1. Entity - Black-Box Interface - Definiert Ein- und Ausgänge
8.6.1.1.2. Architecture - Implementierung der Funktionalität
8.6.1.1.3. Configuration - verbindet Entity mit Architecture
8.6.1.1.4. Package - globale Konstanten - Hilfsfunktionen...
9. Mikrocontroller (MCU)
9.1. I/O Register
9.1.1. Data Direction Register (DDR x)
9.1.1.1. lesen (0) / schreiben (1)
9.1.1.2. Legt für jedes Bit des betrachteten Ports fest, ob es ein Ein- oder Ausgangsbit ist
9.1.2. Port Register (PORT x)
9.1.2.1. Schreiben
9.1.2.2. Legt für Eingangspins fest, ob Pull-up Widerstände eingeschaltet sind (1)
9.1.3. Port Input Register (PIN x)
9.1.3.1. Nur Lesen!
9.1.3.2. Enthält Werte aller Pins
9.2. Interrupts
9.2.1. 1. Interrupt Requenst (IRQ) 2. momentan laufendes Programm wird unterbrochen, PC wird gesichert 3. MCU ruft ISR (Interrupt Service Routine) zur Behandlung des Ereignisses auf. 4. Rücksetzen des PC
9.2.2. 1. Global Interrupt Enable Bit = 1 2. Spezifisches Interrupt Enable Bit = 1 3. Interrupt Flag Bit = 1
9.3. Polling - periodische Prüfung auf Ereignisse
9.4. Counter - zählt externe Ereignisse
9.4.1. Timer - zählt Clock-Zyklen
9.4.1.1. Watchdog Timer (WD) - Zählt von einstellbarem Wert runter auf 0 - bei 0 wird der Mikrocontroller resettet -> Deadlock detection
10. AD / DA - Wandler
10.1. Digital-Analog Umwandlung
10.1.1. Multiplexen
10.1.2. Widerstandsnetz
10.1.2.1. Binär gewichtetes Widerstandsnetz
10.1.2.1.1. V_0=V_ref * (x / (2^n))
10.1.3. Pulsweitenmodulation (PWM)
10.2. Analog-Digital Umwandlung
10.2.1. Flash-Wandler
10.2.1.1. Mit Operationsverstärkern
10.2.2. Tracking-Wandler
10.2.2.1. DA-Wandler, Operationsverstärker und Up/Down Counter
10.2.3. Sukzessive Approximation
10.2.3.1. DA-Wandler, Operationsverstärker und SAR (Binäre Suche)
10.2.4. Einrampenverfahren
10.2.4.1. Comperatior vergleicht Sägezahnsignal mit gemessenem Signal. Mit Zeit bis zum Umspringen des Comperators den Wert berechnen.
11. Operationsverstärker
11.1. Darlington-Schaltung - hintereinander geschaltete Transistoren - Nachteil: schwankender Verstärkungsv.
11.2. Differenzverstärker
11.2.1. Operationsvertärker
11.3. Funktionen
11.3.1. Komparator
11.3.1.1. Welche Spannung ist größer
11.3.2. Verstärker
11.3.2.1. invertierender Verstärker
11.3.2.2. nichtinvertierender Versträrker
11.3.3. Impedanzwandler
11.3.4. Schmitt-Trigger
11.3.4.1. invertierender Schmitt-Trigger
11.3.4.2. nichtinvertierender Schmitt-Trigger
11.3.5. Addierer / Subtrahierer
11.3.6. Integrierer / Differenzierer
12. Elektrotechnische Grundlagen
12.1. Netzwerkanalyse
12.1.1. Knotenspannungsanalyse
12.1.1.1. 1. Spannungsquellen durch Stromquellen ersetzen, wobei die zu den Spannungsquellen in reihe geschalteten Widerstände nun parallel geschaltet werden. Iq=Uq/R 2. Bezugsknoten wählen und Knotenspannungen einzeichnen 3. Knotengleichungen aufstellen //TODO
12.1.2. k: Anzahl Knoten (Es gibt k-1 unabhängige Knotengleichungen) z: Anzahl Zweigströme m: benötigte Anzahl Maschen (m=z-k+1) 1. Gleichung für k-1 Knoten aufstellen 2. Gleichung für m Maschen aufstellen 3. Spannungen in Maschengleichungen durch R*I austauschen
12.1.2.1. Zweigstromanalyse
12.1.2.1.1. 4. Gleichungssystem aufstellen mit allen Zweigströmen (z Gleichungen)
12.1.2.2. Maschenstromanalyse
12.1.2.2.1. 4. Jeder Masche einen Maschenstrom zuweisen 5. Die Zweigströme in Abhängigkeit der Maschenströme angeben 6. Gleichungssystem mit m Maschenströmen aufstellen 7. Mit erhaltenen Maschenströmen die Zweigströme ausrechnen
13. Boolesche Funktionen
13.1. Normalformen
13.1.1. DNF
13.1.2. KNF
13.2. Graphen
13.2.1. DAG (Direct Acyclic Graph)
13.2.2. Schaltskizze
13.2.3. OBBDs (Geordnete Binäre Entscheidungs-Diagramme)
13.2.3.1. Vereinfachung 1. Verjüngung 2. Elimination
13.3. Fehlerdiagnose
13.3.1. 1. Für jeden gerissenen Draht eine eigene Funktion aufstellen 2. jede dieser Funktionen mit der ursprünglichen Funktion mit xor verknüpfen 3. Ist die Funktion von einem Draht überall 0, so lässt sich hier ein gerissener Draht nicht identifizieren. Haben zwei funktionen an den sleben stellen 1en und 0en, so lässt sich der gerissene draht nicht eindeutig identifizieren.
13.4. Vereinfachung
13.4.1. Karnaugh-Diagramme für n = 3, 4
13.4.1.1. Primimplikaten (alle möglichst vereinfachten Kreise)
13.4.1.1.1. Kernimplikanten sind die Kernimplikanten, mit denen sich die Funktion mit Möglicht wenig Variablen darstellen lässt
13.4.2. Quine-McCluskey-Verfahren
13.4.2.1. 1. Alle Minterme in Gruppen nach der Anzahl Negationen Zusammenfassen 2. Liste neu aufstellen, wobei in Gruppe 1 auf alle Terme mit denen aus Gruppe 2 die Eliminations-Regel angewendet wird. Ist dies nicht möglich, wird der Term normal aufgeschrieben 3. Schritt 2. Solange wiederholen, bis sich nichts mehr ändert 4. Implikationsmatrix aufstellen.