における32x64レジスタファイルを実装レジスタファイルの仕様は次のとおりここVerilogの
バスA、B、及びWは64ビット幅です。
RegWrを1に設定すると、負の(立ち下がり)クロックエッジでバスWのデータがRwで指定された レジスタに格納されます。
レジスタ31は常にゼロを読み取る必要があります。
レジスタからのデータ(RaおよびRbによって指定される)は、2チックの遅延の後、それぞれバスAおよびバス バスBに送信されます。
レジスタファイルへの書き込みには、3ティックの遅延が必要です。
ここmodule RegisterFile(BusA, BusB, BusW, RA, RB, RW, RegWr, Clk);
が私の現在のプログラムIがゼロにRAとRBを初期化する方法を疑問に思って
module RegisterFile(BusA, BusB, BusW, RA, RB, RW, RegWr, Clk); output [63:0] BusA; output [63:0] BusB; output [63:0] BusW; input RA; input RB; input RW; input RegWr; input Clk; reg [31:0] registers [31:0]; assign #2 BusA = registers [0]; assign #2 BusB = registers [1]; always @ (negedge Clk) begin if(RegWr & RW !=0) registers[RW] <= #3 BusW; end endmodule
あり、そして:
は
レジスタファイルモジュールには、以下のインタフェースを持っている必要がありますRAとRBのデータをBusAとBusBに正しく送信する方法が不思議です