1. PLD
1.1. Bausteine, Typen
- PLD: Programmable Logic Device
- PLA: Programmable Logic Array
- PAL: Programmable Array Logic
- CPLD: Complex Programmable Logic Device
- FPGA: Field Programmable Gate Array
- LCA: Logic Cell Array
1.2. Hersteller
- Xilinx
- Altera
- Lattice
- Actel
- Cypress
- Quicklogic
- Atmel
1.3. Technik
- PLA: Programmierbare UND-Matrix, gefolgt von programmierbarer ODER-Matrix
- PROM: Festverdrahtete UND, programmierbare ODER
- PAL: Oder Struktur fest verdrahtet
1.2. Kirchhoff:
- Jeder Punkt in dem mehr als zwei Zweige zusammenlaufen nennt man einen Knotenpunkt
- 1. Kirchhoffsche Regel: Knotensatz: In jedem Knotenpunkt ist die Summe der zufließenden Ströme gleich die Summe der abfließenden
- 2. Kirchhoffsche Regel: Maschensatz: Beim gleichseitigem Umlaufen ist die Summe aller Spannungen gleich 0
1.3. FET
- FET: Field Effect Transistor
- MOSFET: Metal Oxid Semiconductor FET
- MISFET: Metal Insulated Gate FET
- MESFET: Schottky Übergang
- IGFET: Insulated Gate FET
- SFET: Sperrschicht FET
- JFET: Junction FET
- Source: Quelle, Drain: Senke, Gate: Tor, Bulk
1.4. Bipolare Transistoren
- Schaltungen: Basisschaltung, Emitterschaltung, Collectorschaltung
- Kennlinien: Arbeitspunkteinstellung, Übersteuerungsgrenze, Sättigungsspannung, Kleinsignalverhalten, Stromverstärkungsgruppen, Restströme
- Herstellung: Mesa-Transistor, Exitaxie-Planar-Transistor, HF-Hochleistungstransistor, Hochspannungstransistor
1.5. Vierschichtdioden:
- Symmetrische Vierschichtdiode, Thriode, Thrystor, Triac
1.6. Dioden:
- Gleichrichterdioden
- PIN und PSN-Dioden
- Schottky-Dioden
- Hetero-Dioden
- Z-Dioden
- Tunnel-Dioden
- Backward-Dioden
2. VHDL
- Blöcke, Signale
- Blöcke: Multiplexer, Dekoder, ...
- Blöcke sind über Signale miteinander verbunden
- Kommentare: Doppelter Bindesstrich
- Es wird nicht zwischen Groß- und Kleinschreibung unterschieden
- Typisierung: Streng
boolean: true, false
bit: 0, 1
std_logic: 0, 1, z, -, u, l, h, x, w
0: starke 0
1: starke 1
z: hochohmig
-: don't care
u: unbekannt
l: schwache 0
h: schwache 1
w: schwaches x
x: Fehler
c <= b;
c <= a or b;
signal <signalname>: <typ>
<signalname>: <richtung> <typ>
Vektoren:
- bit_vector (<lower> to <upper>);
- bit_vector (<upper> downto <lower>);
a: in bit_vector (0 to 3);
b: out bit_vector (7 to 0);
c: std_logic_vector (0 to 3);
c <= b;
c <= ('1', '0', '0', '0');
c <= "1000";
1. Bibliotheks und Packagebeschreibung
2. Entity für Schnittstellenfunktion
3. Architecture für Funktionsbeschreibung
entity <blockname> is
port
(
<signalname>: <richtung> <typ>;
<signalname>: <richtung> <typ>
);
end;
entity Multiplexer is
port
(
a: in bit_vector (3 downto 0);
b: in bit_vector (3 downto 0);
s: in bit;
c: out bit_vector (3 downto 0);
);
end;
entity Counter is
port
(
clk: in bit;
rst: in bit;
q: out bit_vector (3 downto 0);
);
end;
architecture <Beschreibungsname> of <Blockname> is
begin
end <Beschreibungsname>;
architecture Structural of Multiplexer is
signal a, b, c: bit_vector (3 downto 0);
begin
a <= (a3, a2, a1, a0);
b <= (b3, b2, b1, b0);
c <= a when (s='0') else b);
c3 <= c(3);
c2 <= c(2);
c1 <= c(1);
c0 <= c(0);
end;
3. Speicher
4. MIPS, Software
Befehle
lb, lbu: laden eines Bytes
lh, lhu: Laden eines Halbworts
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
ls*: Laden eines Immidiate-Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
move*: Transfer zwischen Registern
add, addi, addiu: Addtion
sub: Subtraktion
mult, multu: Multiplikation
div, divu: Division
rem*: Modulo
abs*: Absoluter Wert
neg*: Negation
not*: Logisches NOT
and, andi: Logisches UND
or, ori: Logisches OR
xor, xori: Logiches XOR
Transportbefehle
Arithmetisch Logische Befehle
Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Load- and Storearchitecture
Speicher-Speicher-Architektur
Register-Speicher-Architektur
Akkumulator-Architektur
Stack-Architektur
Little-Endian-Format
Big-Endian-Format
1. Bit
2. Ganzzahl
3. Gleitkomma
4. Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
gleitkomma: ieee-754-std
f = (-1)^s*1.m*2^(e-b)
Stackarchitektur: 8087 intel, 862 atmel
Direktwertaddressierung
Registeraddressierung
Direkte Addressierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Autodekrement
Registerindirekte Addressierung mit Verschiebung
Registerindizierte Addressierung
Registerindizierte Addressierung mit Verschiebung
$a
$v
$s
$t
$ra
$fp
$sp
$ra
$zero
5. MIPS, Hardware
Steuerwerk:
1. Befehlsdekodierer
2. Funktionsdekodierer
Befehlsdekodierer
1. RegDst
2. RegWrite
3. ALUSrc
4. Branch
5. MemToReg
6. MemToWrite
7. ALUOp
Funktionsdekodierer
1. ALU-Op
2. Func
3. ALU-Operation
1. Befehlsdekodierer
2. Funktionsdekodierer
3. Registersatz
4. ALU
5. Datenspeicher
6. Befehlsspeicher
7. Befehlszähler
8. Vorzeichenerweiterungseinheit
9. 4 x MUX
10. 1 x AND
11. 2 x 2-Bit-Shifter
AND: PCSrc
ALU: Null, ALU-Ergebnis
Register-Satz:
1. Lese-Daten-1
2. Lese-Daten-2
3. Schreibedaten
4. Schreiberegister
5. Schreibe-Daten-1
6. Schreibe-Daten-2
7. WE
Befehlsspeicher:
- Lesedaten
- Schreibedaten
Befehlszähler
- PC (t)
- PC (t+1)
Datenspeicher
- Lesedaten
- Schreibedaten
- Addresse
- WE
ALU-Op Func ALU-Operation
00 1000000 - add 010 add
1X ... sub
X1 010 add
...
Operations-Code MemToReg MemToWrite Branch ALU-Src RegDst RegWrite ALU-Operation
r-Typ 000000 1 1 0 0 0 0 10
6. Mehrzyklus