Hardware Reference
In-Depth Information
Der Eingabevektor
und der Koe zientenspeicher »cROM« sind Eingabe-
werte, der Datenspeicher »xRAM« und das Pipeline-Objekt les- und veränder-
bare Signale. In den Initialisierungsschritten wird die Koe zientenadresse, die
als Zustandszähler dient, hochgezählt. Die Datenadresse wird abwärts gezählt
und der Eingabewert auf den adressierten Datenspeicherplatz geschrieben. Die
Speicherzugriffe erfolgen hier mit der Read-Funktion und der Write-Prozedur
aus Abschnitt 3.4.3, die im Gegensatz zu einem indizierten Feldzugriff auch
den Fall, dass die Zugriffsadresse ungültig oder unzulässig ist, mit berücksich-
tigen. Für die Synthese sind diese Unterprogramme entsprechend zu vereinfa-
chen oder wieder durch indizierte Zugriffe zu ersetzen. Im letzten Initialisie-
rungsschritt wird der Zustand von »Init« auf »Startzyklus« geändert.
In allen anderen Fällen, d.h. im Zustand »Startzyklus« oder »Normalzy-
klus«, sind die Fallunterscheidungen aus Abb. 5.7 zu übernehmen:
x
• Schritt 0: Datenwert in den Datenspeicher schreiben statt lesen (FU1),
• Schritt 2: Produkt in den Akkumulator kopieren statt zum Akkumulator-
inhalt zu addieren und Ergebnis ausgeben (FU2) und
• letzter Schritt: Datenadresse nicht weiterzählen (FU3).
Im Startzyklus entfällt die Ergebnisausgabe. Statt dessen wird der Zustand
weitergeschaltet:
-- Operationen im Start- und Nomalzyklus
pp.cAdr <= pp.cAdr+ "1" ;
(1)
if pp.cAdr= "00" then
-- Fallunterscheidung FU1
(2)
write(xRAM, pp.xAdr, x);
pp.xDat <= x;
else
pp.xDat <= read(xRAM, pp.xAdr); (2)
end if ;
pp.cDat <= read(cROM, pp.cAdr); (2)
pp.Prod <= mult(pp.cDat, pp.xDat); (3)
if pp.cAdr= "10" then
-- Fallunterscheidung FU2
pp.Akku <= pp.Prod;
if pp.Zustand=Startzyklus then pp.Zustand <= Normalzyklus; end if ;
else
pp.Akku <= pp.Akku+pp.Prod;
end if ;
if pp.cAdr/= "11" then
-- Fallunterscheidung FU3
pp.xAdr <= pp.xAdr+ "1" ;
end if ;
)WEB-Projekt:P5.2/FIR2_pack.vhdl
( (1) - für 2-Bit-Vektoren automatisch mod 4; (2) - Lesefunktion und Schreib-
prozedur aus Abschnitt 3.4.3; (3) - Spezialmultiplikation für Faktoren vom
Typ »tDaten« und dem Ergebnistyp »tAkku« aus Abschnitt 5.2.5).
Die Schaltungsschnittstelle des FIR-Filters in Abb. 5.9 a besitzt drei
Ausgabesignale: das Lesebestätigungssignal, das Schreibbestätigungssignal
 
Search WWH ::




Custom Search