私はメモリモジュール(読み取りと書き込み信号を持つ単純なreg)があるシンプルなシステムを書いています。今では、このメモリには他のいくつかのモジュールがアクセスする必要があります(同時にではありません)。だから私はこのメモリのインスタンスを作成し、それにデータを送ります。しかし、他のモジュールがどのようにしてメモリモジュールの同じインスタンスにアクセスするのか分かりません。どんな助け?他のいくつかのモジュールの内部から1つのモジュールのインスタンスにアクセスしますか? (Verilog)
編集
私はいくつかのコードでビットを明確にしましょう。これは私のメモリモジュール、単純な信号です。
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
[email protected](posedge clk or posedge rst)
begin
if(rst)
pc <= 16'hFFFF;
else
pc <= pc+1;
end
....
ここからメモリモジュールにどのようにアクセスしますか?
「モジュールにアクセスする」という正確な意味は?あなたは他のもののようにそれにワイヤを接続するだけです。階層をもう少し詳しく説明し、ポート/ワイヤでモジュールを接続できない理由を説明できますか? – Tim
@Tim私はワイヤで接続することはできません(私が理解できる限り)。メモリモジュールは1つであり、他のすべてのモジュールはそこからデータにアクセスしたい。したがって、他のモジュールの中にインスタンスを作成すると、別のインスタンスになります。どのように私はそれらをワイヤで接続することを提案しますか? –