У меня возникли проблемы с запуском проекта Verilog с ModelSim Student Edition 10.2c. Все компилируется без ошибок, однако я получаю следующее сообщение об ошибке во время выполнения:Ошибка времени выполнения Verilog и ModelSim
# vsim -gui work.testbench
# Loading work.testbench
# Loading work.circuit1_assign
# ** Error: (vsim-3033) C:/Modeltech_pe_edu_10.2c/examples/circuit1_assign.v(14): Instantiation of 'OR' failed. The design unit was not found.
#
# Region: /testbench/c
# Searched libraries:
# C:/Modeltech_pe_edu_10.2c/examples/hw4
# ** Error: (vsim-3033) C:/Modeltech_pe_edu_10.2c/examples/circuit1_assign.v(16): Instantiation of 'NOT' failed. The design unit was not found.
#
# Region: /testbench/c
# Searched libraries:
# C:/Modeltech_pe_edu_10.2c/examples/hw4
# ** Error: (vsim-3033) C:/Modeltech_pe_edu_10.2c/examples/circuit1_assign.v(18): Instantiation of 'AND' failed. The design unit was not found.
#
# Region: /testbench/c
# Searched libraries:
# C:/Modeltech_pe_edu_10.2c/examples/hw4
# Loading work.t1
# Error loading design
Как я новичок в Verilog, я понятия не имею, что это значит. Я думаю, что это простая ошибка, которую я делаю, но я не могу ее решить, и не нашел решения через Google. Кто-нибудь знает, что я могу сделать, чтобы мой проект работал?
EDIT: Я считаю, что это связано с невозможностью включить файл, где AND
, OR
и NOT
определены. После googling я обнаружил, что файл modelsim.ini
должен быть помещен в каталог проекта. Тем не менее, я разместил modelsim.ini
в правильном каталоге, но он все равно не работает.
EDIT: Теперь я отправил все три исходные файлы для моего проекта (который просто тестирование комбинационной схемы ...) Вот мой код circuit1_assign.v:
module circuit1_assign
(
input x,
input y,
input z,
output f
);
wire w1, w2;
OR o1 (.i0(x), .i1(y), .o(w1));
NOT n1 (.i2(z), .o(w2));
AND a1 (.i3(w1), .i4(w2), .o(f));
endmodule
Вот код для теста:
`Временные рамки 1ns/1ps
модуль t1 ( выходной рег а, выход р б, выход reg c );
initial
begin
a = 0; //Do all combinations of possible input values
b = 0;
c = 0;
#10 a = 0;
#10 b = 0;
#10 c = 1;
#10 a = 0;
#10 b = 1;
#10 c = 0;
#10 a = 0;
#10 b = 1;
#10 c = 1;
#10 a = 1;
#10 b = 0;
#10 c = 0;
#10 a = 1;
#10 b = 0;
#10 c = 1;
#10 a = 1;
#10 b = 1;
#10 c = 0;
#10 a = 1;
#10 b = 1;
#10 c = 1;
#10 $finish;
end
endmodule
Вот мой код тестбенча:
`timescale 1ns/1ps
module testbench();
wire l, m, n, o;
circuit1_assign c
(
.x (l),
.y (m),
.z (n),
.f (o)
);
t1 t
(
.a (l),
.b (m),
.c (n)
);
initial
begin
$monitor ($time,,"l=%b, m=%b, n=%b, o=%b",
l, m, n, o);
end
endmodule
Спасибо заранее.
Post код, который вы пытаетесь скомпилировать. – Russell
Спасибо за предложение, я просто добавил весь исходный код. – CodeKingPlusPlus
Вы можете попробовать установить файл как файл верхнего уровня –