Verilog で 10 個のスペースを持つ 32 ビット配列を作成しようとしています。コードは次のとおりです。
reg [31:0] internalMemory [0:9];
次に、そのレジスタ内のさまざまな場所に 32 ビット値を割り当てようとします。コードサンプルは次のとおりです。
internalMemory[0] = 32'b00000000001000100001100000100000;
internalMemory[1] = 32'b00000000001000100001100000100001;
コンパイルすると、次のエラーが発生します。
IR.v:21: syntax error
IR.v:21: error: Invalid module instantiation
その 21 行目は、アクセスしようとしている私を表していますinternalMemory[1]
。
なぜこれが起こっているのか、それを修正する方法について何かアドバイスはありますか?
ありがとう!
更新 1:
ここで要求されているように、実装しようとしている命令レジスタのコードがあります。
`include "IRTester.v"
module instruction_register(IREnable, programCounter, controlUnit, RS, RT, RD, immediate);
parameter dataWidth = 32; //input size
input wire IREnable;
input wire [31:0] programCounter; //instruction to be read
output wire [5:0] controlUnit;
output wire [4:0] RS;
output wire [4:0] RT;
output wire [4:0] RD;
output wire [15:0] immediate;
wire [31:0] temp;
reg [31:0] internalMemory [0:9];
always @ (posedge IREnable)
internalMemory[0] = 32'b00000000001000100001100000100000;
internalMemory[1] = 32'b00000000001000100001100000100001;
assign temp = internalMemory[programCounter];
assign controlUnit = temp[31:26];
assign RS = temp[25:21];
assign RT = temp[20:16];
assign RD = temp[15:11];
assign immediate = temp[15:0];
endmodule