Hardware Reference
In-Depth Information
Der unbedingte Sprung mit der Aufbewahrung der Rückkehradresse über-
schreibt die Zuweisung an den Befehlszähler mit dem aus dem Registersatz
gelesenen Wert, übernimmt in das Operandenregister »OReg_A« den inkre-
mentierten Befehlszählerstand und schreibt in das Operationscoderegister den
Spezialoperationscode »für unverändert weiterleiten und Flags nicht verän-
dern« (vgl. Abschnitt 5.4.3):
elsif pp.Instr(cInstr_jmp'range)=cInstr_jmp then
pp.PCount <= read(RegSet, pp.Instr(tInstrRB'range));
pp.OReg_A <= pp.PCount+ '1' ;
pp.OpCode <= sopc_mov;
Ein bedingter Sprung überschreibt die Standardzuweisung an den Befehlszäh-
ler nur bei erfüllter Bedingung. Wenn die Sprungbedingung ungültig ist, wird
auch der Wert des Befehlszählers ungültig. Über die Kontrollregister wird an
die RW-Phase der Code »non« für kein Ergebnis schreiben weitergegeben:
elsif pp.Instr(cInstr_jb'range)=cInstr_jb then
if SprungX(pp.Instr(tInstrBed'range), pp.Ergebnis.F) then
pp.PCount <= ( others => 'X' );
elsif Sprung(pp.Instr(tInstrBed'range), pp.Ergebnis.F) then
pp.PCount <= read(RegSet, pp.Instr(tInstrRB'range));
end if ;
pp.Ctrl_EX <= non;
Die parameterfreien Befehle für »keine Operation« sowie für das Setzen, Lö-
schen und Invertieren des Übertragsbits schicken nur ihre Kontrollworte an
die EX- und die RW-Phase weiter. Als Nop-Befehle werden außer dem re-
servierten Befehlswort x"000" auch alle ungenutzten gültigen Befehlscodes
interpretiert:
elsif pp.Instr=cInstr_set_cy then pp.Ctrl_EX <= setc;
elsif pp.Instr=cInstr_clr_cy then pp.Ctrl_EX <= clrc;
elsif pp.Instr=cInstr_cpl_cy then pp.Ctrl_EX <= cplc;
elsif not is_x(pp.Instr);
then pp.Ctrl_EX <= non;
Bei einem ungültigen Befehlswort werden alle Registerinhalte, die aus diesem
gebildet werden, ungültig:
else
pp.OReg_A <= ( others => 'X' ); pp.OReg_B <= ( others => 'X' );
pp.Opcode <= ( others => 'X' ); pp.ARegY1 <= ( others =>'X');
pp.Ctrl_EX <= XX;
end if ;
Datenfluss in der Ausführungsphase (EX)
In der Ausführungsphase (EX) wird die Zuweisung an das Ergebnisregister
vom Kontrollwert im Register »Ctrl_EX« gesteuert. Für die Kontrollwer-
te zur Manipulation des Übertrags-Flags wird nur dieses verändert. Für den
Search WWH ::




Custom Search