Sie sind auf Seite 1von 46

Computersysteme

0. Einleitung
1. Zahlendarstellung
2. Grundlagen digitaler Schaltungslogik
3. CMOS-Technologie
4. Standard-Schaltnetze
5. Computer-Arithmetik
6. Schaltwerke
7. Spezielle Schaltwerke
8. DLX-RISC-Architektur und Assembler
9. Pipelining
10. Speicher-Hierarchie und Cache
1
Computersysteme

4. Standard-Schaltnetze

4.1 Codierer und Busse


2
4. Standard-Schaltnetze

• Bislang haben wir das Rechnen und die Repräsentation von Zahlensystemen in binärer
Form, die booleschen Grundelemente, deren Umsetzung in Schaltnetze und ihre
Realisierung durch CMOS-Gattertechnologie kennen gelernt.
Diese Kapitel bilden die Grundlage für alle nachfolgenden Kapitel.

• Kapitel 4.1 führt Standard-Schaltnetze ein, die in Rechnerhardware immer wieder


vorkommen, wie Datencoder und Dekodierer, Multiplexer und Datenbusse.
Sie bilden die Grundlage für die in einem Rechner notwendigen Datenflüsse.

• Die Realisierung von DMF oder KMF durch zweistufige Schaltnetze wurde in Kapitel 2
besprochen.
In Kapitel 4.2 wird eine alternative Realisierung über Programmable Logic Arrays
(PLAs) eingeführt, mit der das Schaltnetz direkt aus den Funktionsgleichungen erstellt
werden kann, unter minimalem Hardwareaufwand.

3
4.1 Der Codierer

Ein Codierer ist ein Schaltnetz, das eine Nachricht in einem definierten Code als Input bekommt, und
diese in einen anderen Code wandelt und ausgibt.
Sie erinnern sich an den 7-Segment-Codierer für die Anzeige der Dezimalziffern.

Häufig wird ein 1-aus-N-Code benötigt.


Dies ist eine Codierung des Eingangs E von 0 bis N-1, bei der genau ein Bit 1 ist und alle anderen 0.
Der Coder gibt am Ausgang a die Position der 1 in E aus.

Anzahl Eingänge: N=2n


e0
N Eingänge ei, N=8 0
e1
0
.
Anzahl Ausgänge: n = log2N
0
Genau 1 Eingang zeigt 1, 0 ei

alle anderen sind 0 1


.
n Ausgänge ak,
0
0
eN-1
hier: n = log28 =3
Hier: e4 = 1, (i=4) 0

E=(0,0,0,0,1,0,0,0)
100 Hier: e4 = 1 => a=410=(100)2
an-1 ak a0
4
Relevanter Teil der Wertetabelle für 1-aus-16-in-Binär-Codierer
e15 e14 e13 e12 e11 e10 e9 e8 e7 e6 e5 e4 e3 e2 e1 10
e0 a3 a2 a1 a0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

In jeder Zeile des Eingangsfeldes darf nur genau eine Eingangsvariable ei auf 1 gesetzt werden
(auf der Diagonale), alle anderen Eingangsvariablen müssen 0 sein. Daher sind alle anderen
Eingangskombinationen verboten. An den Ausgangsvariablen ak liegt der Index i der
5
Eingangsleitung als Binärzahl an.
1-aus-16-in-Binär-Codierer ( 1-stufiges Schaltnetz)
e15 e14 e13 e12 e11 e10 e9 e8 e7 e6 e5 e4 e3 e2 e1 e0

≥1 a0

≥1 a1

≥1 a2

≥1 a3

6
Der Decodierer

Jetzt ist der Eingang E ein n-stelliger Binärcode und der Ausgang A ist ein 1-aus-N-Code.
Es wird genau 1 Ausgangsleitung E auf 1 geschaltet, alle anderen bleiben 0.

Anzahl Eingänge: n = log2N Anzahl Ausgänge: N=2n


Hier: n=3 a0 Hier: N=8
a1 0
0
.
0
ak
0
.
1
0
0
aN-1
0

100 a4 = 1 => A = (0,0,0,0,1,0,0,0)


en-1 ei e0

E = 410 = (100)2
7
Wertetabelle für Binär-in-1-aus-16-Decodierer
e3 e2 e1 10
e0 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Die Belegung der Eingangsvariable e bestimmt den Wert k der Ausgangsvariablen ak . Nur auf
der Diagonalen steht eine 1, alle anderen Ausgangsvariablen nehmen den Wert 0 an. 8
Binär-in-1-aus-16-Decodierer (1-stufiges Schaltnetz)

e3 e3 e2 e2 e1 e1 e0 e0

& a0
& a1
& a2
& a3
& a4
& a5
.
.
.
& a14
& a15
9
Der Multiplexer

Ein Multiplexer ist ein Schaltnetz, das einen von mehreren Eingängen wählt, und diesen
unverändert auf den Ausgang legt.
Man kann sich einen Multiplexer wie eine Verengung (oder Dateneinfädelung) vorstellen.
Multiplexer haben Dateneingänge und Steuereingänge.
Abhängig von den Signalen der Steuereingänge wird der richtige Dateneingang ausgewählt.

e0
N Daten- e1
1 Datenausgang
eingänge e2
.
. a
.

eN-1
n = log2N Steuereingänge
s

Seien die Dateneingänge mit ei bezeichnet, i=0,...,N-1, die Steuereingänge mit sk,
k=0,..,n-1, der Ausgang mit a. Dann muss N≤2n sein. Die Funktion des Multiplexers wird
beschrieben durch
a = ei, falls (i)10=(sn-1sn-2...s0)2 10
Beispiel 2-auf-1 Multiplexer:

Ein 2-auf-1-Multiplexer. Dieser hat 2 Dateneingänge e0 und e1 und einen Steuereingang s.


Wenn die Steuerleitung s=0 ist, so ist a=e0 und wenn s=1 ist, so ist a=e1.

s e1 e0 a
0 0 0 0
0 0 1 1
e0
0
0 1 0 0
a 0 1 1 1
e1 1 0 0 0
1

1 0 1 0
1 1 0 1
s
1 1 1 1
11
Realisierung 2-auf-1 Multiplexer :

s e1 e0 a
e0 0 0 0 0 0 e0
&
a 0 0 1 1
0 1 0 0 a
e1 1 ≥1
1

0 1 1 1
1 0 0 0 e1 &
s
1 0 1 0
1 1 0 1 s
e1e0 1 1 1 1
00 01 11 10
s
0 0 1 1 0
1
0 0 1 1 a = s e0 + se1
e0 e1 12
16-auf-1-Multiplexer. Mögliche Realisierung: (log2n)-stufige 2-auf-1 Multiplexer

s3 s2 s1 s0 a e0
e1
0 0 0 0 e0
0 0 0 1 e1 e2
e3
0 0 1 0 e2
0 0 1 1 e3 e4
e5
0 1 0 0 e4
e6
0 1 0 1 e5
e7
0 1 1 0 e6
e8
0 1 1 1 e7 e9 a
1 0 0 0 e8
e10
1 0 0 1 e9 e11
1 0 1 0 e10
e12
1 0 1 1 e11 e13
1 1 0 0 e12
e14
1 1 0 1 e13 e15
1 1 1 0 e14
1 1 1 1 e15 s0 s1 s2 s3
Wertetabelle 14
Der Demultiplexer
Ein Demultiplexer ist ein Schaltnetz, das seinen einzigen Dateneingang an einen von N
Ausgängen übertragen kann (ähnlich zu einer Weiche). Die Auswahl, welcher Ausgang gewählt
wird, wird durch die Steuereingänge bestimmt.

a0
1 Dateneingang e a1
a2
e . N Ausgänge ai
.
.

aN-1

n=log2N Steuereingänge sk

Seien die Datenausgänge mit ai bezeichnet, i=0,...,N-1, die Steuereingänge mit sk, k=0,..,n-1, der
Eingang mit e. Dann muss N≤2n sein. Die Funktion des Demultiplexers wird beschrieben durch
ai = e, falls (i)10=(sn-1sn-2...s0)2 , sonst ai = 0
15
Wertetabelle für 1-aus-16-Demultiplexer

e s3 s2 s1 10
s0 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0

0 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Für e=0 gilt: alle Ausgänge sind auf 0 geschaltet (durch ein UND-Gatter blockiert).
16
Für e=1 gilt: Auswahl eines Ausgangs durch Steuereingänge sk.
Realisierung eines 1-aus-16-Demultiplexers (2-stufig)

s3 s3 s2 s2 s1 s1 s0 s0

& & a0
& & a1
& & a2
& & a3
& & a4
& & a5

& & a14


& & a15
17
Der Datenwegschalter

Ein Datenwegschalter ist ein Schaltnetz, das eine Reihe von m Eingängen ei (ein
Leitungsbündel) unverändert an eine entsprechende Reihe von m Ausgängen ai weiterleitet,
wenn ein Steuereingang auf 1 gesetzt ist (i=0,...,m-1).
Wenn der Steuereingang auf 0 ist, wird an alle Ausgänge eine 0 gegeben.
Der Querstrich „ / “ unter dem „m“ zeigt an, dass genau m Leitungen parallel und gleichzeitig
geschaltet werden. Der Datenwegschalter besteht also aus m einzelnen Schaltern

ei, falls s=1


Für alle m Leitungen i gilt: ai =
0, falls s=0

m
E m
& A
1

s 18
Realisierung des Datenwegschalters (m Leitungen werden geschaltet)

e0 a0
&
e1 a1
&

em-2 am-2
&
em-1 am-1
&

19
Der Datenwegmultiplexer

Ein Datenwegmultiplexer ist ein Schaltnetz, das aus m parallel geschalteten Multiplexern
besteht. Mit ihm kann man Leitungsbündel der Stärke m schalten. Alle parallelen Leitungen
werden durch die Steuereingänge auf dasselbe Ausgangsbündel geschaltet.

m
E0
N Daten- E1
eingangs- Ei
m
Bündel mit je Ausgangsbündel A
m Leitungen
EN-1

Steuereingänge s
Für alle j=0,...,m-1 gilt aj = ei,j genau dann, wenn (i)10 = (sn-1...s0)2
20
Der Datenwegdemultiplexer

Ein Datenwegdemultiplexer ist ein Schaltnetz, das aus m parallel geschalteten Demultiplexern
besteht. Mit ihm kann man ein Leitungsbündel der Stärke m auf eins von N
Ausgangsleitungsbündeln schalten.

m
A0
A1
1 Daten-
m Ak
eingangs- E N Ausgangsbündel,
bündel mit von denen eines die
m Leitungen Werte von E übernimmt.
AN-1

Steuereingänge s
Für alle j=0,...,m-1 gilt ak,j = ej genau dann, wenn (k)10 = (sn-1...s0)2 , alle anderen ak,j sind 0.

21
Vereinfachte Wertetabelle des Datenweg-Demultiplexers

sn-1 sn-2 ...... s2 s1 s0 Ausgangsbündel


0 0 .... 0 0 0 A0 = E, Ak = 0 für k≠0
0 0 .... 0 0 1 A1 = E, Ak = 0 für k≠1
0 0 .... 0 1 0 A2 = E, Ak = 0 für k≠2
0 0 .... 0 1 1 A3 = E, Ak = 0 für k≠3
0 0 .... 1 0 0 A4 = E, Ak = 0 für k≠4

1 1 .... 1 1 0 AN-2 = E, Ak = 0 für k≠N-2


1 1 .... 1 1 1 AN-1 = E, Ak = 0 für k≠N-1

22
Aus 3.4: Transmissionsgatter

Transmissionsgatter haben die Funktion eines Tores: Sie geben Signale vom
Dateneingang an den Ausgang, wenn der Steuereingang (s=Steuereingang,
enable) auf 1 ist.

Das interessante an Transmissionsgattern ist die Tatsache, dass ihr Ausgang nicht
beschaltet ist, wenn s=0 ist.
Das heißt, der Ausgang ist dann weder 0 noch 1, sondern „hochohmig“.

23
Aus 3.4: Transmissionsgatter als Relais-Schaltungen

• n Ausgänge von Transmissionsgattern dürfen verbunden werden!


• genau ein s-Signal auf logisch 1, alle anderen (n-1) s-Signale auf 0.
• Wird bei Daten- und Adressbus benötigt, da dort mehrere Ausgangsleitungen
auf einen gemeinsamen Bus beschaltet werden müssen.
• Das Transmissionsgatter nimmt hier die Funktion eines Relais an, welches
nur genau ein Signal (hier in1 oder in2) durchschaltet.

in1
in out s s1
out

in2
s 1
s2
Symbol des Transmissionsgatters 24
Datenbus
Ein Datenbus ist eine Leitung oder ein Leitungsbündel, über das verschiedene angeschlossene Geräte
Daten austauschen können. Diese Geräte können schreibend oder lesend auf den Bus zugreifen.
Schreibende Zugreifer bezeichnet man auch als Sender, lesende als Empfänger. Natürlich kann dasselbe
Gerät manchmal als Sender und manchmal als Empfänger zugreifen.

S1 E2 S3 E1 S2

& &
m
Datenbus

Decodierer Decodierer
für Sender Busmaster für Empfänger

Der Datenbus mit einem Bündel von m Datenleitungen wird über den Busmaster zwischen genau einem 25
Sender S und einem Empfänger E geschaltet.
Datenbus mit Adressbus

Der Nachteil ist offensichtlich: Der Busmaster (Bus Controller, Arbiter) muss eine direkte
Leitung von seinem jeweiligen Decodierer zu jedem potentiellen Sender und Empfänger
haben, die er zu geeigneter Zeit auf 1 legt, wenn ein Sender etwas für einen der mehrere
Empfänger auf den Bus legen möchte.

Dieser Nachteil lässt sich vermeiden, indem man den Bus um ein Adressleitungsbündel
ergänzt. Der Busmaster muss jetzt nur noch die Adressen der Kommunikationspartner
auf den Adressbus legen, und jeder Sender und Empfänger hat einen Decoder, der den
Adressbus liest und im Falle, dass seine Adresse auf dem Bus liegt, eine 1 für sein
Transmissionsgatter bzw. seinen Datenwegschalter generiert.

26
Datenbus mit Adressbus

S1 E2 S3 E1 S2

Decoder
& &

m
Datenbus

Adressbus n
Busmaster trifft die
Adressauswahl

Der Datenbus mit einem Bündel von m Datenleitungen zwischen genau einem Sender S und einem
Empfänger E geschaltet, wobei die Auswahl der Empfänger und Sender durch den Adressbus übertragen
wird. Dabei müssen die Adressen des Sender/Empfängerpaars für die Dauer der Übertragung gespeichert
27
werden, oder es gibt getrennte Adressbusse für Empfänger und Sender.
Zeitmultiplexübertragung

Häufig ist es notwendig, dass über dieselbe Leitung mehrere verschiedene


Kommunikationsvorgänge durchgeführt werden müssen. Ein einfaches Beispiel dafür ist Ihr
Telefonanschluss zu Hause, über den (z.B. bei ISDN) zwei Telefongespräche gleichzeitig und
vielleicht zusätzlich (über DSL) Datenverkehr mit Ihrem Rechner abgewickelt werden. Dies
gelingt, indem man die Leitung immer abwechselnd für sehr kurze Zeitintervalle jedem der
beteiligten Kommunikationspaare zur Verfügung stellt.

Diese Technik nennt man Zeitmultiplex-Technik.Sie kann durch ein Schaltnetz aus einem
Multiplexer und einem Demultiplexer realisiert werden, die beide durch eine gemeinsame
Steuereinheit, die sogenannte Zeitlagenauswahl, gesteuert werden.

28
Zeitmultiplextechnik (Time Division Multiplex Access, TDMA)

0 0
1 1
2 2

N-1 N-1

Zeitlagenauswahl

29
Beispiel für Zeit-Multiplex: GSM-Netz

b l ahb l ah

nus che l

Rahmen
r abe l r ab

bn r z l uaea sb t hceebh l r l e r za l aeh b t

zeterzet

1 Millisekunde
1 Millisekunde
Daten werden mit N-facher Geschwindigkeit für jeden N-ten Zeitslot codiert (hier N=4)
30
Schaltnetze: Codierer und Busse

Jetzt bist Du dran!

Einige Fragen zu Codierern, Multiplexern, und Bussen

31
Computersysteme

4. Standard-Schaltnetze

4.2 Schaltnetzrealisierung
durch Speicher und PLAs
32
4.2 Schaltnetzrealisierung als Speicher und PLA
In der modernen Schaltungstechnik ist es häufig zu teuer, für jedes individuelle Schaltnetz
eine eigene Realisierung zu bauen oder gar einen eigenen Chip. Daher gibt es viele
gebräuchliche Techniken, wie man bestehende universelle Chips verwenden kann, so dass
sie die Funktionalität eines gegebenen Schaltnetzes erfüllen.

Die einfachste davon ist die Realisierung von Schaltnetzen als Speicher: In einen Speicher
wird die Wertetabelle der Boole‘schen Funktion geschrieben. Die Eingänge werden an die
Adressleitungen des Speichers gelegt. Die Ausgänge des Speichers bilden die Ausgänge
des Schaltnetzes.

33
Speicher als Schaltnetzrealisierung

Eingaben
Ausgaben
34
Beispiel: Ein Volladdierer, realisiert mit einem 8x2-Bit ROM

Wertetabelle ROM

x2 x1 x0 c s 000 0 0
0 0 0 0 0
001 0 1
0 0 1 0 1
010 0 1
0 1 0 0 1
011 1 0
0 1 1 1 0
100 0 1
1 0 0 0 1
101 1 0
1 0 1 1 0 110 1 0
1 1 0 1 0
111 1 1
1 1 1 1 1 Eingaben
s
x2,x1,x0 3 Bit Werte der
Adressen der Speicherstellen
c
Speicherstellen
Beispiel: Ein 8x2-Bit ROM (Antifuse-Technik, d.h. nicht
reprogrammierbar) vor dem Brennen zu einem Volladdierer

1 0 1
R=Pull-up
R R
Widerstände
000

001

010

011

100

101

110

111
Eingaben
x2,x1,x0 1
1
Beispiel: Ein 8x2-Bit ROM (Antifuse-Technik, d.h. nicht
reprogrammierbar) nach dem Brennen zu einem Volladdierer

1 0 1
R=Pull-up ROM
Widerstände für n-MOS R R
000
000 0 0
001
001 0 1
010
010 0 1
011
011 1 0
100
100 0 1
101
101 1 0
110
110 1 0
111
Eingaben 111 1 1
x2,x1,x0 1 s s

1 c
c
Schaltnetzrealisierung als PLA (Programmable Logic Array)

Eine andere mögliche Realisierung eines Schaltnetzes ist das PLA. Es basiert auf der Idee,
ein freies Formular für eine Boole‘sche Funktion mit n Eingängen und m Ausgängen
bereitzustellen, das in Abhängigkeit von der individuellen Funktion „ausgefüllt“ (gebrannt)
werden kann.

Die AND-Plane generiert die Produktterme (sinnvollerweise in DMF, also Primterme), die OR-
Plane fasst diese in jeweils einer Disjunktion zusammen. Natürlich werden in der tatsächlichen
Realisierung nicht AND und OR, sondern NAND-Gatter verwendet. Diese Technik kennen wir
bereits.

Eine Schreibweise ist bei solchen Darstellungen sinnvoll: Die AND-Verknüpfung mehrerer
Leitungen, die eine Ausgabeleitung schneiden, wird durch Kreuze, die OR-Verknüpfung durch
Kreise (Eselsbrücke: Buchstabe O für ODER) über dem Schnittpunkt dargestellt.

38
Realisierung eines Schaltnetzes als PLA mit AND- und OR-Plane

OR-Plane
AND-Plane
&

&

&

Primterme ≥1 ≥1 ≥1

n Eingaben m Ausgaben 39
Beispiel: Volladdierer als PLA mit AND- und OR-Plane

Wertetabelle:
x2 x1 x0 c s
AND-Plane OR-plane
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
x2 x1
1 0 1 1 0
x 2 x0
1 1 0 1 0 x1x0
1 1 1 1 1

1 1 1 Primterme

c s
Primterme: x2 x1 x0 c = x2 x0 + x1x0 + x2 x1
c = x2 x0 + x1x0 + x2 x1
s = x2 x1x0 + x2 x1x0 + x2 x1x0 + x2 x1x0 40
Beispiel: Volladdierer als PLA mit AND- und OR-Plane

Wertetabelle:
x2 x1 x0 c s
AND-Plane OR-plane
0 0 0 0 0
0 0 1 0 1 x2 x1x0
0 1 0 0 1
x2 x1x0
0 1 1 1 0 x2 x1x0
1 0 0 0 1 x2 x1x0
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

1 1 1 Primterme

c s
Primterme: x2 x1 x0 c = x2 x0 + x1x0 + x2 x1
c = x2 x0 + x1x0 + x2 x1
s = x2 x1x0 + x2 x1x0 + x2 x1x0 + x2 x1x0 s = x2 x1x0 + x2 x1x0 + x2 x1x0 + x2 x1x0
Beispiel 2-Bit Multiplizierer:
x*y=p
2x2 Eingänge (0-3), 4 Ausgänge (0-9)
p0 = x0 × y0
x y p x1 x0 y1 y0 p3 p2 p1 p0
0 0 0 0 p1 = x0 × y0 × y1 + x0 × x1 × y0
0 0 0
0 0 0 0
0 1 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0 + x1 × y0 × y1 + x0 × x1 × y1
0 2 0
0 3 0 0 0 1 1 0 0 0 0
1 0 0 0 1 0 0 0 0 0 0
1 1 1 0 1 0 1 0 0 0 1
1 2 2 0 1 1 0 0 0 1 0 p2 = x0 × x1 × y1 + x1 × y0 × y1
1 3 3 0 1 1 1 0 0 1 1
2 0 0 1 0 0 0 0 0 0 0
2 1 2 1 0 0 1 0 0 1 0 p3 = x0 × x1 × y0 × y1
2 2 4 1 0 1 0 0 1 0 0
2 3 6 1 0 1 1 0 1 1 0
3 0 0 1 1 0 0 0 0 0 0
3 1 3 1 1 0 1 0 0 1 1
3 2 6 1 1 1 0 0 1 1 0
3 3 9 1 1 1 1 1 0 0 1 42
Schaltnetz eines 2-Bit-Multiplizierers als DMF

y1 y0 x1 x0

1 1 1 1
& p0 p0 = x0 × y0
&
& p1 = x0 × y0 × y1 + x0 × x1 × y0
≥1 p1
& + x1 × y0 × y1 + x0 × x1 × y1
&
&
≥1 p2 p2 = x0 × x1 × y1 + x1 × y0 × y1
&
& p3 p3 = x0 × x1 × y0 × y1 43
2-Bit Multiplizierer als PLA mit AND- und OR-Plane (DMF)

AND-Plane OR-plane
p0 = x0 × y0
p1 = x0 × y0 × y1 + x0 × x1 × y0
+ x1 × y0 × y1 + x0 × x1 × y1

p2 = x0 × x1 × y1 + x1 × y0 × y1
p3 = x0 × x1 × y0 × y1
1 1 1 1

p3 p2 p1 p0
y1 y0 x1 x0
44
Schaltnetz eines 2-Bit-Multiplizierers als NAND

y1 y0 x1 x0

1 1 1 1
& 1 p0 p0 = x0 × y0
&
& p1 = ( x0 × y0 × y1 ) × ( x0 × x1 × y0 )
& p1
& ×( x1 × y0 × y1 ) × ( x0 × x1 × y1 )
&
&
& p2 p2 = ( x0 × x1 × y1 ) × ( x1 × y0 × y1 )
&
& 1 p3 p3 = x0 × x1 × y0 × y1
45
2-Bit-Multiplizierer als PLA: „wired NAND“ (Pull-Down-Widerstand mit p-MOS)

p0 = x0 × y0

p1 = ( x0 × y0 × y1 ) × ( x0 × x1 × y0 )
×( x1 × y0 × y1 ) × ( x0 × x1 × y1 )

p2 = ( x0 × x1 × y1 ) × ( x1 × y0 × y1 )

p3 = x0 × x1 × y0 × y1
46
Schaltnetz-Realisierung mit PLAs

Jetzt bist Du dran!

Einige Fragen zur Realisierung von Schaltnetzen über PLAs.

47

Das könnte Ihnen auch gefallen