Hardware Reference
In-Depth Information
(x
k
- Eingabewert; y
n
- Ausgabewert; n - Nummer des Zeitschritts; c
m
-
Koe
zient; M - Länge der Impulsantwort, Größenordnung 100). Die Filter-
funktion - Hochpass, Tiefpass, Glättungsfilter etc. - legt der Vektor der Koef-
fizienten c
m
fest
1
. Es gibt Anwendungen in der Signalverarbeitung, in denen
viele Millionen Ergebnisse pro Sekunde zu berechnen sind. Jede Ergebnisbe-
rechnung erfordert 2 M Speicherzugriffe mit den zugehörigen Adressrech-
nungen, M Multiplikationen und M 1 Additionen. Für Anwendungen mit
einem kontinuierlichen Rechenleistungsbedarf von 10
8
und mehr Operationen
pro Sekunde ist eine Hardware-Lösung eine interessante Alternative zu einer
Software-Lösung.
5.2.1 Planung der Speicherstruktur und der Pipeline-Abläufe
Abbildung 5.4 a zeigt eine Skizze für den Berechnungsfluss, den Gleichung 5.1
beschreibt. Für jeden Ausgabewert y
n
werden M Eingabewerte mit M Koef-
fizienten multipliziert und die Produkte aufsummiert. Es fehlt der Datenspei-
cher, aus dem die Eingabedaten und Koe
zienten gelesen werden. Wie könnte
der Speicher organisiert sein? Ein M-Port-Blockspeicher scheidet wegen der
Größe von M hier aus. Eine nahe liegende Lösung wäre ein Schieberegister
der Länge M, das die Eingabewerte abtastet und an seinen Ausgängen die
um einen bis M Schritte verzögerten Eingabewerte bereitstellt (Abb. 5.4b).
An jedem Schieberegisterausgang ist ein Multiplizierer anzuschließen, der das
Produkt c
m
x
k
bildet. Der zweite Faktor ist eine Konstante, die fest co-
diert sein oder in einem Konfigurationsregister stehen kann. Die Teilprodukte
werden mit einem Addiererbaum zusammengefasst. Die Umsetzung in eine
VHDL-Beschreibung ist relativ einfach, aber die Schaltung wird sehr groß
2
.
c
0
x
n
c
0
x
n−
1
c
1
x
n
*
*
+
+
c
1
x
n−
1
*
*
+
y
n
+y
n
c
2
x
n−
2
x
n−
2
*
*
c
2
+
+
c
3
x
n−
3
x
n−
3
*
x
+
n
*
c
3
a)
b)
Abb. 5.4. Datenfluss für eine FIR-Operation mit M = 4
a) ohne Operandenspei-
cher b) mit einem Schieberegister als Operandenspeicher
1
Der Koe
zientenvektor wird auch als Impulsantwort bezeichnet. Denn er ist
gleich mit der Ausgabefolge für einen Impuls der Form x
0
= 1;0 und x
n6=0
= 0
als Eingabefolge.
2
Man würde zumindest versuchen, die Multipliziereranzahl durch Einbau von
Pipeline-Stufen in die Multiplizierer drastisch zu verringern. Das erfordert eine
vollkommen andere Schaltungsstruktur.