Hardware Reference
In-Depth Information
a)Ablaufbeschreibung b)synthesef¨ahigeBeschreibung
Init:for...loop
...
Endlosschleife
desProzesses
waitfortP;
endloop;
Startzyklus:for...loop
waitfortP;
ifI='1'then
Anfangswertzuweisungen;
...
elsifaktiveTaktflankethen
BerechnungsschrittemitFall-
unterscheidungennachSchleife
endloop;
loop
undSchleifenz¨ahlerwert
Normalzyklus:for...loop
...
endif;
waitfortP;
waitonT,I;
Warteliste
endloop;
endloop;
Abb. 5.10. Kontrollflussumformung in einen synthesefähigen Abtastprozess
zusätzliche Hardware erforderlich ist. Der Datentyp für den Pipeline-Zustand
erweitert sich zu
-- erweiterter Datentyp für den Pipeline-Zustand
type
tPipeline
is record
cAdr, xAdr: tAdr;
cDat, xDat: tDaten;
Prod, Akku: tAkku;
(1)
Zustand: tZustand;
end record
;
)
WEB-Projekt:P5.2/FIR2_pack.vhdl
(
(1)
- breiterer Bitvektortyp als »tDaten«, um Wertebereichsüberläufe zu ver-
meiden, vgl. Abschnitt 5.2.5).
Die Übergangsfunktion sei durch eine Prozedur beschrieben, die bei jeder
aktiven Taktflanke aufgerufen wird:
-- Übergangsfunktion des gesamten FIR-Filters
procedure
PipeStep(x: tDat; cROM: tMem;
signal
xRAM:
inout
tMem;
signal
pp:
inout
tPipeline)
is
begin
case
pp.Zustand
is
when
XX =>
null
;
when
Init =>
pp.cAdr <= pp.cAdr+
"1"
;
pp.xAdr <= pp.xAdr-
"1"
;
write(xRAM, pp.xAdr, x);
if
pp.cAdr=to_tUnsigned(M-1, tAdr'length)
then
pp.Zustand <= Startzyklus;
end if
;
when
others =>
-- Operationen im Start- und Nomalzyklus
...
end case
;
end procedure
;
cAdr
1 ...M
−
1
xAdr
M
−
1M
−
2... 1
W(x
0
)W(x
1
)...W(x
M−2
)
xRAM
)
WEB-Projekt:P5.2/FIR2_pack.vhdl