首页 > 解决方案 > SystemVerilog 一系列延迟赋值

问题描述

我是 Verilog 语法的新手。有没有办法在 SystemVerilog 中将此分配作为单行?

例如,顺序位分配由下式给出

                out <=1 
                out <= #1 0;
                out <= #2 1; 
                out <= #3 0;

提前致谢。

标签: modelverilogvariable-assignmenttimingbehavior

解决方案


它不是一条线,但您可以使用循环以固定间隔反转信号。例如,我经常使用这样的永久循环生成测试台时钟:

initial begin
    out = 1'b1;
    forever #1 out = ~out;
end

如果您只想生成少量脉冲,则可以用 for 循环替换永远循环:

initial begin
    out = 1'b1;
    for (int i = 0; i < 3; i++) begin
        #1 out = ~out;
    end
end 

推荐阅读