RAM Modellering i Verilog [50 til 100 point på opløsning]

T

tariq786

Guest
Hej venner,
Jeg har modelleret RAM i verilog.Koden er enkel se nedenfor.Jeg kan læse og skrive det uden problemer.Når jeg forsøger at få adgang til det fra prøvebænk ved hjælp af en ny instans, jeg får xxxxxxxxxxxxxxxxx.Kan nogen guide mig i retning af en løsning.
Bemærk, at jeg har adgang til RAM i andet modul i et større projekt, og jeg har til at skabe RAM tilfælde at få adgang til RAM.

Den, der hjælper dig med 50 til 100 point.tidshorisont 1ns / 1ps

modul REGFILE (
output reg [127] Rdata,
input [127] Wdata,
input CLK,
input Read,
input Skriv
);reg [127] RAM;

altid @ (posedge CLK, læse, skrive)
if (Læs)
begynd
Rdata = RAM;
ende
else if (Skriv)
begynd
RAM = Wdata;
endeendmodule/*********************************************** Test Bench ********/
`tidshorisont 1ns / 10PSmodul test;reg CLK;
reg læse, skrive;
reg Read1, Write2;
reg [127] X;

wire [127] Y;
wire [127] Z;indledende
begynd

CLK = 0;
X = 128'b0;

endealtid
begynd
# 5 CLK = ~ clk;
endeindledende
# 15 Skriv = 1;
indledende
# 25 Skriv = 0; / / stop skrivning

indledende
begynde # 25 Læs = 1; Read1 = 1; ende

indledende
begynde # 35 Læs = 0; Read1 = 0; endeREGFILE U0 (. Rdata (Y),
. Wdata (X),
. CLK (CLK),
. Read (Læs),
. Write (Write)
);

REGFILE U1 (. Rdata (Z),
. Wdata (X),
. CLK (CLK),
. Læs (Read1),
. Write (Write1)
);indledende
$ skærm ($ tid, "er X% t, Y% H, Z er% h Læs er% d, Skrivning er% d \ n", X, Y, Z, læse, skrive);

endmodule/**************** Simulation Resultat ******************************* *** /# 0, X er 00000000000000000000000000000000, Y er xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, Z er xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Read er x, Skrivning er x
#
# 15, X er 00000000000000000000000000000000, Y er xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, Z er xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Read er x, Skrivning er 1
#
# 25, X er 00000000000000000000000000000000, Y er 00000000000000000000000000000000, Z er xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Read er 1, Skrivning er 0
#
# 35, X er 00000000000000000000000000000000, Y er 00000000000000000000000000000000, Z er xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Read er 0, Skriv er 0Tilføjes efter 1 timer 10 minutter:For at gøre tingene mere klart, hvordan ville jeg læse og skrive RAM i forskellige moduler af mit projekt at sikre, at jeg har en enkelt RAM som jeg læser eller skriver i forskellige moduler af mit projekt?

 
Hi tariq786,

I `m nyt i verilog, dont know, hvis det vil arbejde, kan du prøve denne kode på din mem modul, hvis dont du ked af det.

tidshorisont 1ns / 1ps

modul REGFILE (
output reg [127] Rdata,
input [127] Wdata,
input CLK,
input Read,
input Skriv
);reg [127] RAM;

altid @ (posedge clk)
begynd
if (Skriv == 1) begynde

RAM <= Wdata; ende
ende

tildele Rdata = RAM;

endmodule

Venlig hilsen,
Karper

 
Hi tariq786,

Her er den korrigerede koden til din RAM-modul design.Hilsen
Kanimozhi.M
Beklager, men du skal logge ind for at se denne vedhæftede fil

 

Welcome to EDABoard.com

Sponsor

Back
Top