T
tariq786
Guest
Hola amics,
Tinc el model de RAM a Verilog.El codi és senzill veure a continuació.Sóc capaç de llegir i escriure sense cap problema.Quan intento accedir-hi des del banc d'assaig utilitzant una nova instància, em xxxxxxxxxxxxxxxxx.Pot algú em guiï cap a la solució.
Tingueu en compte que he d'accedir a la RAM en el mòdul diferent d'un projecte més gran i he de crear instàncies de RAM a la memòria RAM d'accés.
El que ajuda a obtenir 50 a 100 punts.1NS calendari / 1JRV
Regfile mòdul (
sortida reg [127:0] rdata,
d'entrada [127:0] Wdata,
CLK d'entrada,
d'entrada de lectura,
Escriure entrada
);reg [127:0] de RAM;
sempre @ (clk posedge, llegir, escriure)
si (Llegir)
començar
Rdata = RAM;
final
else if (Escriure)
començar
RAM = Wdata;
finalendmodule/*********************************************** Banc de Proves ********/
»1NS calendari / 10psMòdul de proves;reg clk;
reg llegir, escriure;
reg Read1, Write2;
reg [127:0] X;
de cable [127:0] I;
de cable [127:0] Z;inicial
començar
clk = 0;
X = 128'b0;
finalsempre
començar
# 5 clk = ~ clk;
finalinicial
# 15 Escriu = 1;
inicial
# 25 Escriu = 0; / / deixar d'escriure
inicial
Begin # 25 read = 1; Read1 = 1; final
inicial
Begin # 35 read = 0; Read1 = 0; finalRegfile u0 (. Rdata (I),
. Wdata (X),
. CLK (CLK),
. Read (Llegir),
. Write (Escriure)
);
Regfile U1 (. Rdata (Z),
. Wdata (X),
. CLK (CLK),
. Llegir (Read1),
. Escrigui (Write1)
);inicial
monitor $ ($ temps ", X és% h, I és% h, Z és% h és% d Llegir, Escriure és% d \ n", X, Y, Z, llegir, escriure);
endmoduleResultats de la simulació /**************** ******************************* *** /# 0, X és 00000000000000000000000000000000, I és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, Z és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx és x Llegir, Escriure és x
#
# 15, X és 00000000000000000000000000000000, I és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, Z és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx és x Llegir, Escriure és d'1
#
# 25, X és 00000000000000000000000000000000, I és 00000000000000000000000000000000, Z és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Llegir és 1, Escriure és 0
#
# 35, X és 00000000000000000000000000000000, I és 00000000000000000000000000000000, Z és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Llegir és 0, Escriure és 0
Tinc el model de RAM a Verilog.El codi és senzill veure a continuació.Sóc capaç de llegir i escriure sense cap problema.Quan intento accedir-hi des del banc d'assaig utilitzant una nova instància, em xxxxxxxxxxxxxxxxx.Pot algú em guiï cap a la solució.
Tingueu en compte que he d'accedir a la RAM en el mòdul diferent d'un projecte més gran i he de crear instàncies de RAM a la memòria RAM d'accés.
El que ajuda a obtenir 50 a 100 punts.1NS calendari / 1JRV
Regfile mòdul (
sortida reg [127:0] rdata,
d'entrada [127:0] Wdata,
CLK d'entrada,
d'entrada de lectura,
Escriure entrada
);reg [127:0] de RAM;
sempre @ (clk posedge, llegir, escriure)
si (Llegir)
començar
Rdata = RAM;
final
else if (Escriure)
començar
RAM = Wdata;
finalendmodule/*********************************************** Banc de Proves ********/
»1NS calendari / 10psMòdul de proves;reg clk;
reg llegir, escriure;
reg Read1, Write2;
reg [127:0] X;
de cable [127:0] I;
de cable [127:0] Z;inicial
començar
clk = 0;
X = 128'b0;
finalsempre
començar
# 5 clk = ~ clk;
finalinicial
# 15 Escriu = 1;
inicial
# 25 Escriu = 0; / / deixar d'escriure
inicial
Begin # 25 read = 1; Read1 = 1; final
inicial
Begin # 35 read = 0; Read1 = 0; finalRegfile u0 (. Rdata (I),
. Wdata (X),
. CLK (CLK),
. Read (Llegir),
. Write (Escriure)
);
Regfile U1 (. Rdata (Z),
. Wdata (X),
. CLK (CLK),
. Llegir (Read1),
. Escrigui (Write1)
);inicial
monitor $ ($ temps ", X és% h, I és% h, Z és% h és% d Llegir, Escriure és% d \ n", X, Y, Z, llegir, escriure);
endmoduleResultats de la simulació /**************** ******************************* *** /# 0, X és 00000000000000000000000000000000, I és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, Z és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx és x Llegir, Escriure és x
#
# 15, X és 00000000000000000000000000000000, I és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, Z és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx és x Llegir, Escriure és d'1
#
# 25, X és 00000000000000000000000000000000, I és 00000000000000000000000000000000, Z és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Llegir és 1, Escriure és 0
#
# 35, X és 00000000000000000000000000000000, I és 00000000000000000000000000000000, Z és xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Llegir és 0, Escriure és 0