RAM Modeling in Verilog [50 a 100 punti sulla soluzione]

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:per 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?

 
Hi tariq786,

I `m nuovi in Verilog, non so se funzionerà, può provare questo codice nel modulo di memoria, se si prega dont dispiace.

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)
iniziare
if (Scrivere == 1) begin

RAM <= Wdata; end
fine

assegnare rdata = RAM;

endmodule

Con i migliori saluti,
Karper

 
Hi tariq786,

Ecco il codice corretto per il vostro design del modulo RAM.Saluti
Kanimozhi.M
Ci dispiace, ma è necessario il login per visitare questo allegato

 

Welcome to EDABoard.com

Sponsor

Back
Top