Ich versuche, jr (Sprungregister) Befehlsunterstützung zu einem Single-Cycle-MIPS-Prozessor zu implementieren. In der folgenden Abbildung habe ich einen einfachen Mux gezeichnet, der die Auswahl zwischen dem normalen Ketten-PC oder der Anweisungsadresse (jr) ermöglicht.Implementieren Sprungregistrierungssteuerung zu Single-Cycle-MIPS
Wie kann ich wissen, dass die Anweisung JR die Mux-Auswahl auf ‚1‘ gesetzt ist? Ich habe bereits jump und jump_and_link gemacht (obwohl das Bild es nicht zeigt, da ich mein Projekt gerade nicht in Händen halte), und um sie zu kontrollieren, überprüfe ich einfach, ob der OP-Code 10 (Sprung) oder ist 11 (jal) in der Hauptsteuerung und dann den Mux Sel auf "1". Aber ich denke, dass ich mit jr nicht dasselbe machen kann, da das Anweisungslayout eindeutig ist.
Ich weiß nicht, wie viel Ihnen das weiterhilft, aber: 'jr $ ra 'springt zu der Stelle, die zuletzt im Rückkehradressenregister gespeichert wurde. – wazy
Ja, und ich hole den "gespeicherten Ort" aus dem Befehlsregister. Aber das Problem ist, wie zu steuern, wann PC zu diesem letzten Ort oder Standard-PC + 4 .. – user2509740
Also wo zu springen? – wazy