Hardware Reference
In-Depth Information
...
elsif
rising_edge(T)
then
if
W=
'1'
and not
voll
then
write(x, fifo);
end if
;
if
R=
'1'
and not
leer
then
read(y, fifo);
end if
;
end if
;
muss die Synthese einen synchronen 2-Port-Speicher einsetzen.
4.4.3 Assoziativspeicher
Ein Assoziativspeicher ist ein normal beschreibbarer und lesbarer Speicher
mit einer Zusatzfunktion für den parallelen Vergleich. Bei der Vergleichsope-
ration werden die Eingabedaten in einem Schritt mit den gespeicherten Bit-
mustern aller Speicherzeilen verglichen. Abbildung 4.70 zeigt die Schaltung
einer Zelle. Die Transistoren T1 bis T6 bilden eine normale RAM-Zelle und
die Transistoren T7 bis T10 bilden die Schaltung für den bitweisen Vergleich.
Bei der Vergleichsoperation werden die Spaltenleitungen wie beim Schreiben
angesteuert:
d
j
r
j
= d
j
; s
j
=
(4.37)
(d
j
- Bitwert für Spalte j). Die Zeilenauswahlsignale bleiben jedoch alle in-
aktiv, so dass der Zelleninhalt nicht verändert wird. Das Netzwerk aus den
Transistoren T7 bis T10 hat die Funktion
f
ij
= (r
j
^ x
ij
) _ (s
j
^x
ij
)
= (d
j
^ x
ij
) _
d
j
^x
ij
(4.38)
Die Parallelschaltung der beiden Transistorpaare sperrt genau dann, wenn der
Zellenwert mit dem Eingabewert übereinstimmt. Die Vergleichsschaltungen al-
ler Spalten j einer Zeile i sind parallel geschaltet und damit ODER-verknüpft:
d
j
¯
d
j
d
j+1
¯
d
j+1
¯r
j
¯s
j
¯s
j+1
¯r
j+1
U
V
H
v
i
T8 T10
x
i,j+1
T2
T4
T6
T7
¯x
i,j+1
T5
¯x
ij
x
ij
T1
T3
T9
z
i
=0
H
v
i+1
x
i+1,j
x
i+1,j+1
¯x
i+1,j
¯x
i+1,j+1
Abb. 4.70. Aufbau der Speichermatrix eines Assoziativspeichers