Монитор

$monitor выводит в консоль текст каждый раз, когда изменяется один из аргументов. Новая строка автоматически добавляется к тексту.

Важным отличием от $display является то, что тот выводит данные только 1 раз, а $monitor – в конце каждого цикла симуляции.

$monitoron и $monitoroff управляют флагом, который включает и отключает мониторинг соответственно.

Пример monitor

Пример monitor on/off

`timescale 10 ns / 1 ns
module monitor_tb;
  logic set;
  parameter p = 1.55;
  initial begin
    $monitor("[%3t]:[%4g]: set=%b", $time, $realtime, set);
  end



  initial begin
    repeat (3) begin
      #p set = 0;
      #p set = 1;
    end
  end
endmodule
`timescale 10 ns / 1 ns
module monitor_on_off_tb;
  logic set;
  parameter p = 1.55;
  initial begin
    $monitor("[%3t]:[%4g]: set=%b", $time, $realtime, set);
    #3 $monitoroff();
    #3 $monitoron();
  end

  initial begin
    repeat (3) begin
      #p set = 0;
      #p set = 1;
    end
  end
endmodule

Результат исполнения

Результат исполнения

[  0]:[   0]: set=x
[ 20]:[ 1.6]: set=0
[ 30]:[ 3.2]: set=1
[ 50]:[ 4.8]: set=0
[ 60]:[ 6.4]: set=1
[ 80]:[   8]: set=0
[100]:[ 9.6]: set=1
[  0]:[   0]: set=x
[ 20]:[ 1.6]: set=0
[ 60]:[   6]: set=0
[ 60]:[ 6.4]: set=1
[ 80]:[   8]: set=0
[100]:[ 9.6]: set=1

Last updated