首页 > 解决方案 > 这个 Verilog 代码是如何工作的?它在同一个 always 块语句中有两个独立但相同的否定条件

问题描述

我想知道这段代码完美无缺。我想了解这两个否定状态如何在 always 块中工作。

#5 clk = ~clk;

always
begin
@(negedge clk) din = 1;
@(negedge clk) din = 0;
end ```


标签: verilog

解决方案


模拟将执行以下操作:

  1. 开始总是块执行
  2. 等待clk的negedge
  3. 将 1 分配给 din
  4. 等待clk的negedge(下一个)
  5. 将 0 分配给 din
  6. 重新开始执行 always 块,转到步骤 1。

因此,din 的值将在 clk 的 needges 之间交替。


推荐阅读