クロック、リセット、命令語(最下位バイト)からの即値、およびALUからのゼロ出力を入力として受け入れるVerilogモジュールを作成し、出力用のプログラムカウンタ(PC)です。このアーキテクチャでは、分岐があるときに次のPCの値は現在のPCの値に分岐命令から抽出されたオフセットを足したものでなければならないことに注意してください。オフセットは2の補数で表されるので、分岐先の範囲はPC-128からPC + 127です。256の命令メモリがあるため、PCの値は0xFFを超えないようにしてください。ハードウェアでこの状態を確認する必要はありません。分岐付きVerilogプログラムカウンタ
これまで私がこれまで行ってきたことはありますが、これは不完全であるとわかりました。私は即座に何をすべきか、または分岐命令に何かを追加する必要があるかどうかはわかりません。助け/提案?
module pc(input clk,
input rst,
input [7:0] immediate,
input alu_output,
output [7:0] pc)
reg [7:0] pc;
[email protected](posedge clk)
begin
if(rst)
begin
pc <= 0;
end
else
begin
pc <= pc + 1;
end
end
endmodule
彼が何を望んでいることは相対ジャンプであるだけ正しさのために、彼の即値としてではない絶対ジャンプがPCにロードされていない、ジャンプをするために、現在のPCに追加されます。 – Unn
私は両方について書いたのかはっきりしていませんか?私はちょうど先に行って、彼はそれを指定していないが、彼の割り当ては両方が必要であると仮定した。 – Hida