Могут ли тестовые стенды Verilog работать с реальными часами? - PullRequest
0 голосов
/ 30 июня 2010

Я написал счетчик в Verilog, а затем тестовый стенд для его проверки.Мой тестовый стенд дает правильные результаты, поэтому мой код в порядке.Но разве это дает результат давно, мгновенно.

Можно ли получить результат в режиме реального времени.Я имею в виду, что через каждую секунду мой тестовый стенд будет выдавать новую строку результатов ??(а если можно как?)

1 Ответ

3 голосов
/ 30 июня 2010

Мне не совсем понятно, что вы пытаетесь выполнить, но в симуляторе Synopsys VCS есть системная задача с именем $system, которую можно использовать для выполнения команды оболочки во время симуляции. Если вы выполните sleep 1 следующим образом, симуляция будет приостановлена ​​на 1 секунду времени настенного времени для каждого временного шага. Это заставит вашу симуляцию отображать сообщение один раз в секунду. Конечно, ваша симуляция будет очень медленной. Обратите внимание, что $system не является частью стандарта IEEE для Verilog.

Обновление: я первоначально заявил, что $system относится к VCS. Но Марти сообщил нам, что Каденс также поддерживает это.

`timescale 1ns/1ns

module tb;

initial begin
    $timeformat(-9, 1, "ns");
    #5 $finish;
end

integer sec = 0;
always begin
    #1;
    $system("sleep 1");
    sec = sec + 1;
    $display("seconds = %0d, time = %0t", sec, $time);
end

endmodule

Это печатает следующее:

seconds = 1, time = 1.0ns
seconds = 2, time = 2.0ns
seconds = 3, time = 3.0ns
seconds = 4, time = 4.0ns
$finish called from file "tb.v", line 8.
$finish at simulation time                5.0ns
...