Всегда блокировать - Будут ли сигналы RHS в назначении, внутри всегда блока будут добавлены в список чувствительности? - PullRequest
0 голосов
/ 02 июля 2018

Будут ли сигналы RHS в назначении внутри блока всегда добавляться в список чувствительности? если это правда, могу ли я знать, почему следующий код не работает?

 `timescale 1ns/1ps

  module tb();

    reg clk=0;

    initial begin
      #10 clk = 1;
      #1000;
      $finish();
  end

  always@(*)begin
    #10 clk=!clk;
  end

  initial begin
    $recordfile("wave.trn");
    $recordvars();
  end

 endmodule

1 Ответ

0 голосов
/ 02 июля 2018

Ваш код не работает по другой причине:
Блок Always не чувствителен к изменениям сигнала, пока все действия не завершены.

Таким образом, после того, как ваши часы переключились, блок Always ожидает нового события синхронизации, которое не ожидается.

Чтобы сгенерировать часы, вы должны использовать что-то вроде:

initial
begin
   clk = 1'b0;
   forever
      #(CLK_PERIOD/2) clk = ~clk;
end
...