有什么区别:
forever begin
@posedge(clk) begin // no semi-colon
if(vif.sof == 1) begin
//some code here
end
end
end
forever begin
@posedge(clk); // <- with semi-colon
if(vif.sof == 1) begin
//some code here
end
end
与 @(posege clk) 一起使用的 begin..end 有区别吗?
@
和
#
等event_controls本身并不是语句;它们是后面的语句的前缀。 statement 可以是一个简单的语句,如赋值,也可以是一个块,如 begin/end 或 fork/join。只要允许单个语句,就允许使用块。
当你写下
@(posedge clk);
时,真的是@(posedge clk) null_statement;
我应该给你足够的信息来回答你的问题,但这里有另一种变化:
forever
@posedge(clk)
if(vif.sof == 1) begin
//some code here
end
现在
@(posedge clk)
后面是否有分号有很大的区别。