T
tariq786
Guest
Здравейте приятели,
Имам модел RAM в Verilog.Кодът е проста виж по-долу.Мога да чета и пиша то без никакъв проблем.Когато се опитам да го достъп от стенд за изпитване с помощта на нова инстанция, аз добивам xxxxxxxxxxxxxxxxx.Може ли някой да ме упъти към решаване.
Имайте предвид, че аз имам достъп до RAM в различни модула от по-голям проект и аз трябва да създадете RAM случаи за достъп до RAM.
Онзи, който помага се от 50 до 100 точки.срокове 1ns / 1PS
модул REGFILE (
продукция обл [127:0] Rdata,
вход [127:0] Wdata,
въвеждане на CLK,
Прочетете вход,
Напиши вход
);обл [127:0] RAM;
Винаги @ (posedge CLK, четене, писане)
ако (прочети)
започвам
Rdata = RAM;
приключвам
иначе, ако (пиша)
започвам
RAM = Wdata;
приключвамendmodule/*********************************************** Стенд за изпитване ********/
"срок 1ns / 10psмодул за изпитване;обл CLK;
обл четене, писане;
обл Read1, Write2;
обл [127:0] X;
тел [127:0] Y;
тел [127:0] Z;първоначален
започвам
CLK = 0;
X = 128'b0;
приключвамвинаги
започвам
# 5 CLK = ~ CLK;
приключвампървоначален
# 15 Напиши = 1;
първоначален
# 25 Напиши = 0; / / писмено спиране
първоначален
започва # 25 Прочетете = 1; Read1 = 1; края
първоначален
започва # 35 Прочетете = 0; Read1 = 0; краяREGFILE u0 (. Rdata (Y),
. Wdata (Х),
. CLK (CLK),
. Четене (Read),
. Запис (пиша)
);
REGFILE U1 (. Rdata (Z),
. Wdata (Х),
. CLK (CLK),
. Четене (Read1),
. Запис (Write1)
);първоначален
$ монитор ($ време ", Х% H, е Y% H, Z е% з Прочетете е% D, е% Напиши г \ N", X, Y, Z, четене, писане);
endmodule/**************** Симулация Резултат ******************************* *** /# 0, Х е 00000000000000000000000000000000, е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Y, Z е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Прочетете е X, напишете е х
#
# 15, Х е 00000000000000000000000000000000, е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Y, Z е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Прочетете е Х, е 1 Напиши
#
# 25, Х е 00000000000000000000000000000000, е 00000000000000000000000000000000 Y, Z е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Прочетете е 1, е 0 Напиши
#
# 35, Х е 00000000000000000000000000000000, е 00000000000000000000000000000000 Y, Z е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Прочетете е 0, напишете е 0
Имам модел RAM в Verilog.Кодът е проста виж по-долу.Мога да чета и пиша то без никакъв проблем.Когато се опитам да го достъп от стенд за изпитване с помощта на нова инстанция, аз добивам xxxxxxxxxxxxxxxxx.Може ли някой да ме упъти към решаване.
Имайте предвид, че аз имам достъп до RAM в различни модула от по-голям проект и аз трябва да създадете RAM случаи за достъп до RAM.
Онзи, който помага се от 50 до 100 точки.срокове 1ns / 1PS
модул REGFILE (
продукция обл [127:0] Rdata,
вход [127:0] Wdata,
въвеждане на CLK,
Прочетете вход,
Напиши вход
);обл [127:0] RAM;
Винаги @ (posedge CLK, четене, писане)
ако (прочети)
започвам
Rdata = RAM;
приключвам
иначе, ако (пиша)
започвам
RAM = Wdata;
приключвамendmodule/*********************************************** Стенд за изпитване ********/
"срок 1ns / 10psмодул за изпитване;обл CLK;
обл четене, писане;
обл Read1, Write2;
обл [127:0] X;
тел [127:0] Y;
тел [127:0] Z;първоначален
започвам
CLK = 0;
X = 128'b0;
приключвамвинаги
започвам
# 5 CLK = ~ CLK;
приключвампървоначален
# 15 Напиши = 1;
първоначален
# 25 Напиши = 0; / / писмено спиране
първоначален
започва # 25 Прочетете = 1; Read1 = 1; края
първоначален
започва # 35 Прочетете = 0; Read1 = 0; краяREGFILE u0 (. Rdata (Y),
. Wdata (Х),
. CLK (CLK),
. Четене (Read),
. Запис (пиша)
);
REGFILE U1 (. Rdata (Z),
. Wdata (Х),
. CLK (CLK),
. Четене (Read1),
. Запис (Write1)
);първоначален
$ монитор ($ време ", Х% H, е Y% H, Z е% з Прочетете е% D, е% Напиши г \ N", X, Y, Z, четене, писане);
endmodule/**************** Симулация Резултат ******************************* *** /# 0, Х е 00000000000000000000000000000000, е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Y, Z е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Прочетете е X, напишете е х
#
# 15, Х е 00000000000000000000000000000000, е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Y, Z е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Прочетете е Х, е 1 Напиши
#
# 25, Х е 00000000000000000000000000000000, е 00000000000000000000000000000000 Y, Z е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Прочетете е 1, е 0 Напиши
#
# 35, Х е 00000000000000000000000000000000, е 00000000000000000000000000000000 Y, Z е xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Прочетете е 0, напишете е 0