Синтаксис был верным, я перепутал два цикла, не выдавая ничего правильного, когда ожидал подтверждения моего утверждения.
Я пытаюсь написать тестовый стенд для планирования памяти и проверить, что я получаю доступправильные адреса и запись правильных значений в нужное время. Я хочу сравнить происходящее с сигналами внутри моего верхнего модуля с моим расписанием, которое я разработал.
Я пробовалпоиск "точечной нотации" и использование моего симулятора (ModelSim) для доступа к сигналу (что я могу сделать с точной осциллограммой), но я хочу иметь возможность использовать SVA для проверки правильности значений.
module top(input d, output q)
//wires
wire sub1_output
// Instantiate submodule
sub_module1 sub1(.sub1_output(sub1_output));
always begin
// logic
end
endmodule
module tb_top();
reg d;
wire q;
DUT top(.*);
initial begin
// This is where I want to access something within my DUT
assert(DUT.sub1_output == 1'b1)
end
endmodule
Когда я пытаюсь это сделать, мой код компилируется и запускается, но если я напишу утверждение так, что оно должно завершиться сбоем и остановить мой код, ничего не произойдет.