2013-12-18 1 views
0

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

EDIT:

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

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. 

любые идеи? Thx

+1

Вы попробовали? Вы получили ошибки? – toolic

+0

Это не ошибка. Это предупреждение, и он довольно четко описывает, в чем проблема. Пожалуйста, уточните свой вопрос. – toolic

+0

второй раз dump.do_dump ("again"); вызывается из файла seq dump_again.vcd. В сущности проблема заключается в создании нескольких файлов дампа во время моделирования @toolic – Meir

ответ

1

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

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

+0

Я пробовал, он не работает. $ dumpvars можно вызывать из задачи модуля, но, похоже, это не из задачи класса (возможно, только из статической задачи?) @ dave_59 – Meir

+0

@ dave_59: Это работает для меня с VCS и Incisive. Какой симулятор вы используете? – toolic

+0

VCS: G-2012.09-SP1-1_Full64. Я отредактировал исходное сообщение, см. @toolic – Meir

1

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

+0

Мне также нужно изменить имя файла дампа. отредактированный оригинальный пост, см. – Meir