Hardware Reference
In-Depth Information
cAdr
xAdr
0
1
2
+1modM
...
...
...
M−2 M−1
nichtz¨ahlen
+1modM
+1modM
+1modM
xRAM
W(x
n
)
c
M
−
1
R(x
n
−
1
)
R(x
n
−
2
) R(x
n
−
M+2
) R(x
n
−
M+1
)
cDat
c
0
x
n
c
1
c
2
...
c
M
−
2
xDat
x
n
−
M+1
x
n
−
1
x
n
−
2
...
x
n
−
M+2
Prod
c
M
−
2
·x
n
−
M+2
c
M
−
1
·x
n
−
M+1
c
0
·x
n
c
1
·x
n
−
1
c
2
·x
n
−
2
P
2
...
...
Akku
P
M
−
3
...
P
M
−
2
...
y
n
=
P
M
−
1
...
c
0
·x
n
...
a)
cAdr
Koe
zientenadressregister
xDat
Datenregister
x
...
Datenwert
cROM
Koe
zientenspeicher
Datenadressregister
Prod
Produktregister
imStartzyklusoptional
c
...
Koe
zient
Lesen
cDat
Koe
zientenregister
Akku
Akkumulationsregister
W(...)
Schreiben
xAdr
R(...)
xRAM
Datenspeicher
ge¨anderterDatenfluss
M
Filtergrad
procedure
NormalStep(x: tDaten; cROM: tMem;
signal
xRAM:
inout
tMem;
signal
pp:
inout
tPipeline)
is
begin
pp.cAdr <= (pp.cAdr+
1
)
mod
M;
if
pp.cAdr=
0
then
xRAM(pp.xAdr) <= x; pp.xDat <= x;
else
pp.xDat <= xRAM(pp.xAdr);
end if
;
pp.cDat <= cROM(pp.cAdr); pp.Prod <= pp.cDat*pp.xDat;
if
pp.cAdr=
2
then
pp.Akku <= pp.Prod;
else
pp.Akku <= pp.Akku+pp.Prod;
end if
;
if
pp.cAdr/=M-
1
then
pp.xAdr <= (pp.xAdr+
1
)
mod
M;
end if
;
end procedure
;
b)
⇒
Web-Projekt:P5.2/FIR1pack.vhdl
Abb. 5.7. Speicher- und Registerzuweisungen in allen Takten nach der Initialisie-
rung a) tabellarisch b) als Bearbeitungsprozedur
nicht erforderlich. Aber sie stören auch nicht, so dass auf Fallunterscheidun-
gen verzichtet werden kann. Die Unterbindung der Ausgabe im Startzyklus
erfolgt in der Ausgabefunktion.
Bearbeitungsstand: Für die einzelnen Bestandteile und für die gesamte
Blockspeicher-Pipeline-Struktur sind Datentypen definiert und für die
Datentypen sind die benötigten Bearbeitungsmethoden programmiert.
5.2.4 Das erste komplette Simulationsmodell
Die erste simulierbare Beschreibung ist im Beispielprojekt ein Prozess im Test-
rahmen. Innerhalb des Testrahmens werden vereinbart:
• eine initialisierte Konstante für den Koe
zientenspeicher:
constant
cROM: tMem(tAdr):=(
0.5
,
1.0
,
-1.0
,
-0.5
);
• ein Signal für den Datenspeicher