вызов $dumpvars() из задачи

Есть ли способ вызвать $dumpvars, $dumpon $dumpoff из body() последовательности? Можно из задачи модуля. Мне нужно контролировать $dumpon $dumpoff, чтобы дамп не был слишком большим. Альтернативным способом было бы включить бит top.dump_on в последовательности и ждать этого бита в тестовом стенде.

РЕДАКТИРОВАТЬ:

Я добавил модуль верхнего уровня:

  module dump ();

   bit stop=1'b0;

   task do_dump(string id);

     fork begin
        $display("DUMP START %s", id);
        $dumpfile($psprintf("dump_%s.vcd", id));  
        $dumpvars(1, hmr_top.i_hmr.REF_CLK_IN, 
                     hmr_top.i_hmr.RST_N, 
                     hmr_top.i_hmr.SER_CLK, 
                     hmr_top.i_hmr.VMKMODE, 
                     hmr_top.i_hmr.SERIN, 
                     hmr_top.i_hmr.SEROUT, 
                     hmr_top.i_hmr.REF_CLK_OUT);
        $dumpon;
        wait(stop);
        stop = 1'b0;
        $dumpoff;
        $display("DUMP END %s", id);
     end join_none
   endtask

  function stop_dump();
      stop = 1'b1;
  endfunction

endmodule // dump

Но когда я пытаюсь вызвать второй дамп, я получаю эту ошибку:

Warning-[TFX-DUMPVARCA] DumpVar called previously   As $dumpvars was called in previous time step, ignoring this call.$dumpfile    at time
#11551000   Please refer to section 18.1.2 in the IEEE Verilog Standard 1364-2001 for    details on $dumpvars.

Любые идеи ? Спасибо


person Meir    schedule 18.12.2013    source источник
comment
второй раз dump.do_dump(снова); вызывается из файла seq dump_again.vcd не создается. Суть проблемы в том, можно ли создать несколько файлов дампа во время моделирования @toolic   -  person Meir    schedule 25.12.2013
comment
Это совершенно другой вопрос. Прочтите IEEE Std. Я не могу найти упоминания о сбросе нескольких файлов во время моделирования. См. также $fopen. search.cpan.org/perldoc?Verilog%3A%3AVCD   -  person toolic    schedule 25.12.2013


Ответы (2)


Конечно, вы можете вызвать $dumpon или $dumpoff из тела последовательности, но если последовательность определена в package (как и должно быть), вы не сможете указать конкретный иерархический путь для дампа.

person dave_59    schedule 18.12.2013
comment
Мне также нужно изменить имя файла дампа. отредактированный исходный пост, см. - person Meir; 25.12.2013

Да, вы можете вызывать эти системные задачи из задачи body в последовательности UVM. Однако, если задача body вызывается более одного раза в моделировании, вы можете получить предупреждения для $dumpvar. Согласно IEEE Std 1800-2012, раздел 21.7.1.2. «Указание переменных для дампа ($dumpvars)»:

Задачу $dumpvars можно вызывать сколь угодно часто по всей модели (например, в различных блоках), но выполнение всех задач $dumpvars должно происходить в одно и то же время моделирования.

person toolic    schedule 18.12.2013