Сохранение состояния симуляции
$dumpfile
используется для сохранения изменений в значениях переменных и проводов в файл, имя которого указано в качестве аргумента. $dumpvars
отвечает за то, какие именно значения будут записаны в файл. $dumpon
и $dumpof
f включает и выключает флаг сохранения, аналогично флагу мониторинга в командах $monitoron
и $monitoroff
.
Без указания аргументов в $dumpvars
будут записываться все значения в моделируемой системе. Если первым аргументом указан 0, за которым следует перечисление названий модулей, то будут записываться все значения этого модуля и всех модулей нижестоящих уровней, инстанцированных в текущем модуле. Если какой-либо модуль не создан этим модулем, то его переменные не будут учитываться. Помимо модуля верхнего уровня можно указать модули, которые не инстанцированы в этом модуле.
Чтобы записывать только сигналы в определённом модуле, указывается первым аргументом 1 и вторым – название модуля.
Если указать первым аргументом 2, а затем имя модуля, то будут записываться все переменные указанного модуля и модулей, инстанцированных в том на один уровень ниже.
Синтаксис
$dumpfile (filename);
$dumpvars;
$dumpvars (level, scope);
Пример
module dumpfile_tb;
reg a, b, c, d;
initial begin
repeat (5) begin
#1; c = b & a;
d = a | b;
end
end
initial begin
#2 a = 0; b = 1;
#2 a = 1'bz; b = 1'bz;
end
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, dumpfile_tb);
#10 $finish;
end
endmodule
Временная диаграмма

На рисунках ниже стрелками обозначено, что модуль инстанцирован в другом. Выделение жёлтым показывает, значения из каких модулей будут записываться в файл.
$dumpvars; $dumpvars(0, module2);
$dumpvars(0, top_level_module, module0);
$dumpvars(0, top_level_module);
$dumpvars(0, module2);
$dumpvars(1, module2);
$dumpvars(2, top_level_module);
Last updated