Hardware Reference
In-Depth Information
Kontrollwert für »kein Ergebnis erzeugen« bleibt der Wert des Ergebnisregis-
ters einschließlich der Flags unverändert. Bei einem ungültigen Kontrollwert
wird das Ergebnis ungültig. In allen anderen Fällen übernimmt das Ergeb-
nisregister den Wert der Funktion »ALU(...)«, die diesen aus den Werten der
Operanden-, der Flags- und des Operationscode-Registers bildet (vgl. Ab-
schnitt 5.4.6).
case
pp.Ctrl_EX
is
when
setc => pp.Ergebnis.F.cy <=
'1'
;
when
clrc => pp.Ergebnis.F.cy <=
'0'
;
when
cplc => pp.Ergebnis.F.cy <=
not
pp.Ergebnis.F.cy;
when
non =>
null
;
when
XX => pp.Ergebnis <= (Wert =>(
others
=>
'X'
),
F => (cy=>
'X'
, s=>
'X'
, z=>
'X'
));
when
others =>
pp.Ergebnis<=ALU(pp.OReg_A,pp.OReg_B,pp.Ergebnis.F,pp.Opcode);
end case
;
Datenfluss in der Ergebnisschreibphase (RW)
In der Ergebnisschreibphase (RW) wird das berechnete Ergebnis normaler
Operationen in den Registersatz geschrieben. Für die Lade- und Speicher-
operationen dient der Ergebniswert als Adresse für den Datenspeicherplatz,
mit dem Daten auszutauschen sind. Ein ungültiger Kontrollwert invalidiert
das adressierte Register im Registersatz und den adressierten Datenspeicher-
platz. Für alle anderen Kontrollwerte wird weder der Registersatz noch der
Datenspeicher beschrieben (Null-Anweisung):
case
pp.Ctrl_RW
is
when
wr =>write(RegSet, pp.ARegY2, pp.Ergebnis.Wert);
when
st =>write(DatMem,pp.Ergebnis.Wert, read(RegSet,pp.ARegY2));
when
ldd=>write(RegSet,pp.ARegY2, read(DatMem,pp.Ergebnis.Wert));
when
ldc=>write(RegSet,pp.ARegY2,read(KonstMem,pp.Ergebnis.Wert));
when
XX =>write(RegSet, pp.ARegY2, (
others
=>
'X'
));
write(DatMem, pp.Ergebnis.Wert, (
others
=>
'X'
));
when others
=>
null
;
end case
;
Mit der Beschreibung der RW-Phase endet die Prozedur zur Beschreibung der
Registerzuweisungen für einen einzelnen Pipeline-Schritt:
end procedure
;
Die gesamte Prozedurbeschreibung steht im Package P5.4/RISC_pack.vhdl.
5.4.11 Test der Übergangsfunktion
Ein komplexes Funktionsmodell benötigt einen Testrahmen, der die Ergebnis-
se in einer leicht zu kontrollierenden Weise visualisiert. Der hier zu entwickeln-
de Testrahmen benötigt dafür Hilfsfunktionen zur Erzeugung übersichtlicher