参考実験的なテスト命令のカウントセット-ジェーンの本、いくつかの詳細を追加します。
1. BNE命令を追加します。
ctrl.vを変更
mipstestloopjal_sim.asmを変更した後、火星のダンプがbnetest.datです
sccomp_tbを変更
ModelSimのコンパイル、シミュレーション。> i_bne、NPC、PC - u_ctrl:信号はsccomp_tbを追加します
可視i_bne制御信号は、NPCは44となり、1です。BNE成功を追加します。
2. jr命令を追加します。
フォーマットを見てください。
Rタイプ命令。
次のようにそのため、ctrl.vに変更。
ctrl.vと二つの変更
そして、NPC.v.を変更 パラメータの入力を追加することに注意してください
=理由RD1可視sccpu.v
ctrl_encode_defで定義されたNPC_JR
sccpu.vのパラメータに.RD1を追加
そして、テスト手順を書きます
$ Raが最初のサイクルを継続すべきである。4.これに割り当てられています。
輸出テスト
sccomp_tbを変更することを忘れないでください。
図1c PC 4の波形図から分かるように変化するように設定されています。追加に成功しました
3. JALRを追加します。
ctrl.v
無条件ジャンプレジスタrsで指定された命令、およびレジスタ$ raの次の命令のアドレスを保存
テストコード
ジャンプ4から分かる14、
$ RAレコード18
4.命令を追加NOR
alu.vで
テストコード
波形:
登録:
5. SLL&SRA&SRLの命令を追加します。
この拡張が行われていることに注意してください
入力の幅を変更するにも注意してくださいALUOp
そして、ctrl.vで
書き込みレジスタ
唯一のRegWriteメソッドを変更し、RDは以下を変更していないことに注意してください
出力を追加
sccpu.vで
テストコード:
波形:ALUopはSLL、SRL、SRAの1000,1001,1010対応してご覧ください
値を登録します。
6.sllvとsrlv
ここでは5下RS使っsllv ロジックMIPS命令セット、シフトとスペースコマンド- - yxwkaifa -ブログパークCPUの5段目(3)自分自身を書きます
sllv $t1,$t2,$t3。
则t1值为t2左移t3的低五位
但是这里不太懂,没搞明白是怎么实现的逻辑左右移,位数可变
这里犯了一次错误。复制粘贴后忘了改数字了
测试代码:
波形:
寄存器变化
7.stli指令
小于则置一
测试代码:
波形:
寄存器值:
8.lui指令
取高十六位
测试代码:
波形图:
寄存器值:
9.andi指令
别忘了RT
aluop同and
测试代码:
波形图:
寄存器:
以上。nice!
学号后八位排序
01510029
lui 0x0151
ori 0x0029
记得改sccomp_tb
跑完看result.txt
大概是完成了排序。