メモリモジュール(読み取りおよび書き込み信号を備えた単純なreg)がある単純なシステムを作成しています。現在、このメモリは他のいくつかのモジュールからアクセスする必要があります (同時にではありません)。そこで、このメモリのインスタンスを作成し、それにデータをフィードします。しかし、他のモジュールがメモリ モジュールの同じインスタンスにどのようにアクセスするのかわかりません。何か助けはありますか?
編集
いくつかのコードで少し明確にしましょう。これは私のメモリモジュール、単純な信号です。
module rom(
input [15:0] addr,
input [15:0] data_in,
input rd,
input wr,
input cs,
output reg [15:0] data_out
);
reg [15:0] mem[255:0];
integer k;
initial begin
for(k = 0;k<256;k=k+2)
mem[k] = 16'h0011;
for(k = 1;k<256;k=k+2)
mem[k] = 16'h0101;
end
always @(cs)begin
if(wr)
mem[addr] <= data_in;
if(rd)
data_out <= mem[addr];
end
endmodule
これは私の最上位モジュールでインスタンス化されます。
module Top;
// Inputs
reg [15:0] addr;
reg [15:0] data_in;
reg rd;
reg wr;
reg cs;
// Outputs
wire [15:0] data_out;
// Instantiate the Unit Under Test (UUT)
rom uut (
.addr(addr),
.data_in(data_in),
.rd(rd),
.wr(wr),
.cs(cs),
.data_out(data_out)
);
....
....
....
endmodule
この最上位モジュールには、メモリに接続する他のモジュールも含まれます。それらをどのように接続するのか、私にはよくわかりません。このようなモジュールが1つあるとします
module IF_stage(
input clk,
input rst,
output reg [15:0] pc,
output [15:0] instruction
);
//pc control
always@(posedge clk or posedge rst)
begin
if(rst)
pc <= 16'hFFFF;
else
pc <= pc+1;
end
....
ここからメモリモジュールにアクセスするにはどうすればよいですか?