我正在寫一個簡單的系統,其中有一個內存模塊(帶有讀寫信號的簡單寄存器)。現在這個內存必須被其他幾個模塊訪問(不是同時)。所以我創建了這個內存的一個實例並向它提供數據。但我不知道我的其他模塊將如何訪問內存模塊的相同實例。任何幫助?從其他幾個模塊內部訪問一個模塊的實例? (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
現在這個頂層模塊也將包含將要連接到存儲一些其他模塊。我真的不明白我將如何連接它們。假設有一個這樣的模塊
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 2012-04-11 19:14:41
@Tim我無法通過電線連接它們(據我所知)。內存模塊是一個,所有其他模塊都希望從中訪問數據。所以如果我在任何其他模塊中創建一個實例,它將是一個不同的實例。你如何建議我通過電線連接它們? – 2012-04-11 19:24:41