T
tariq786
Guest
Ciao amici,
Ho modellato RAM in Verilog.Il codice è semplice vedere di seguito.Riesco a leggere e scrivere senza alcun problema.Quando provo ad accedere dal banco di prova con una nuova istanza, i get xxxxxxxxxxxxxxxxx.Qualcuno può mi guida verso la soluzione.
Si noti che ho per l'accesso alla RAM di diverso modulo di un progetto più ampio e devo creare istanze di RAM di RAM accesso.
Colui che aiuta a far 50 a 100 punti.lasso di tempo 1ns / 1PS
Modulo regfile (
reg output [127] rdata,
input [127] Wdata,
input clk,
Per saperne di input,
Ingresso Scrivere
);reg [127] RAM;
sempre @ (clk posedge, lettura, scrittura)
if (Leggi)
iniziare
Rdata = RAM;
fine
else if (scrittura)
iniziare
RAM = Wdata;
fineendmodule/*********************************************** Test Bench ********/
`1ns tempi / 10psModulo di prova;reg clk;
reg lettura, scrittura;
reg Read1, Write2;
reg [127] X;
wire [127] Y;
wire [127] Z;iniziale
iniziare
clk = 0;
X = 128'b0;
finesempre
iniziare
# 5 ~ clk = clk;
fineiniziale
# 15 Write = 1;
iniziale
# 25 Scrivere = 0; / / scrittura stop
iniziale
begin # 25 Leggi = 1; Read1 = 1; end
iniziale
begin # 35 Leggi = 0; Read1 = 0; endRegfile U0 (. Rdata (Y),
. Wdata (X),
. clk (clk),
. Read (lettura),
. Write (scrittura)
);
Regfile u1 (. Rdata (Z),
. Wdata (X),
. clk (clk),
. Read (Read1),
. Write (Write1)
);iniziale
monitor $ ($ time, "X è h%, Y% h, Z è h% di lettura è% d, Scrivere è% d \ n", X, Y, Z, Lettura e Scrittura);
endmodule/**************** Risultati della simulazione ******************************* *** /# 0, X è 00000000000000000000000000000000, è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Y, Z è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Leggere è x, Scrivere è x
#
# 15, X è 00000000000000000000000000000000, è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Y, Z è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Leggere è x, Scrivere è pari a 1
#
# 25, X è 00000000000000000000000000000000, è 00000000000000000000000000000000 Y, Z è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx di lettura è 1, Scrivere è 0
#
# 35, X è 00000000000000000000000000000000, è 00000000000000000000000000000000 Y, Z è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Leggere è 0, Scrivere è 0Aggiunto dopo 1 ore e 10 minuti
er rendere le cose più chiare, come dovrei leggere e scrivere RAM in diversi moduli del mio progetto di far sì che ho una RAM unico che io di lettura o la scrittura in diversi moduli del mio progetto?
Ho modellato RAM in Verilog.Il codice è semplice vedere di seguito.Riesco a leggere e scrivere senza alcun problema.Quando provo ad accedere dal banco di prova con una nuova istanza, i get xxxxxxxxxxxxxxxxx.Qualcuno può mi guida verso la soluzione.
Si noti che ho per l'accesso alla RAM di diverso modulo di un progetto più ampio e devo creare istanze di RAM di RAM accesso.
Colui che aiuta a far 50 a 100 punti.lasso di tempo 1ns / 1PS
Modulo regfile (
reg output [127] rdata,
input [127] Wdata,
input clk,
Per saperne di input,
Ingresso Scrivere
);reg [127] RAM;
sempre @ (clk posedge, lettura, scrittura)
if (Leggi)
iniziare
Rdata = RAM;
fine
else if (scrittura)
iniziare
RAM = Wdata;
fineendmodule/*********************************************** Test Bench ********/
`1ns tempi / 10psModulo di prova;reg clk;
reg lettura, scrittura;
reg Read1, Write2;
reg [127] X;
wire [127] Y;
wire [127] Z;iniziale
iniziare
clk = 0;
X = 128'b0;
finesempre
iniziare
# 5 ~ clk = clk;
fineiniziale
# 15 Write = 1;
iniziale
# 25 Scrivere = 0; / / scrittura stop
iniziale
begin # 25 Leggi = 1; Read1 = 1; end
iniziale
begin # 35 Leggi = 0; Read1 = 0; endRegfile U0 (. Rdata (Y),
. Wdata (X),
. clk (clk),
. Read (lettura),
. Write (scrittura)
);
Regfile u1 (. Rdata (Z),
. Wdata (X),
. clk (clk),
. Read (Read1),
. Write (Write1)
);iniziale
monitor $ ($ time, "X è h%, Y% h, Z è h% di lettura è% d, Scrivere è% d \ n", X, Y, Z, Lettura e Scrittura);
endmodule/**************** Risultati della simulazione ******************************* *** /# 0, X è 00000000000000000000000000000000, è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Y, Z è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Leggere è x, Scrivere è x
#
# 15, X è 00000000000000000000000000000000, è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Y, Z è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Leggere è x, Scrivere è pari a 1
#
# 25, X è 00000000000000000000000000000000, è 00000000000000000000000000000000 Y, Z è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx di lettura è 1, Scrivere è 0
#
# 35, X è 00000000000000000000000000000000, è 00000000000000000000000000000000 Y, Z è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Leggere è 0, Scrivere è 0Aggiunto dopo 1 ore e 10 minuti