use*_*047 0 verilog system-verilog uvm
SystemVerilog 是否支持以下代码?
int cnt = 0;
wait( cnt == (cnt+1) )
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出LRM中的部分吗?
这是支持的。但主要的问题是,你会通过这样的等待语句得到什么,因为这个语句永远不会被评估为 "true"。
如果您通过此等待语句提供有关您到底想要做什么的更多详细信息,也许我可以帮助您。
同时,根据您的等待语句,这是带有输出的代码。这将帮助您了解此等待语句的作用:
// Sample code, as per your wait statement
module top();
int cnt;
bit clk;
always #5 clk = ~clk;
always @ (posedge clk)
cnt <= cnt + 1;
initial
begin
$display("***** Before wait *****");
wait(cnt == (cnt + 1))
$display("***** After wait *****");
end
initial #100 $finish;
initial $monitor("cnt - %0d", cnt);
endmodule
// Output of this sample code
***** Before wait *****
cnt - 0
cnt - 1
cnt - 2
cnt - 3
cnt - 4
cnt - 5
cnt - 6
cnt - 7
cnt - 8
cnt - 9
cnt - 10
$finish called from file "testbench.sv", line 20.
$finish at simulation time 100
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33355 次 |
最近记录: |