为什么是verilog;始终“U梳块仅包含一个事件控件”;始终程序块上标记有多个“错误”@&引用;
以下代码生成此错误消息: “verilog always_comb施加了一个限制,即它只包含一个事件控件,不包含阻塞定时控件” 为什么组合逻辑程序块会产生此错误为什么是verilog;始终“U梳块仅包含一个事件控件”;始终程序块上标记有多个“错误”@&引用;,verilog,system-verilog,hdl,Verilog,System Verilog,Hdl,以下代码生成此错误消息: “verilog always_comb施加了一个限制,即它只包含一个事件控件,不包含阻塞定时控件” 为什么组合逻辑程序块会产生此错误 带有@事件等待的always块是否可以合成 始终\u comb仅用于组合逻辑。您使用的@语句与组合无关 来自lrm 9.2.2.2.2 always_comb中的语句不应包括阻塞、具有阻塞定时或事件控件或fork-join语句的语句 在您的情况下,您需要始终使用通用always@*可能就可以了。always\u comb仅用于组合逻辑。
带有
@
事件等待的always块是否可以合成 始终\u comb
仅用于组合逻辑。您使用的@
语句与组合无关
来自lrm 9.2.2.2.2
always_comb中的语句不应包括阻塞、具有阻塞定时或事件控件或fork-join语句的语句
在您的情况下,您需要始终使用通用
always@*
可能就可以了。always\u comb仅用于组合逻辑。您使用的@
语句与组合无关
来自lrm 9.2.2.2.2
always_comb中的语句不应包括阻塞、具有阻塞定时或事件控件或fork-join语句的语句
在您的情况下,您需要始终使用通用
always@*
可能会这样做。该错误报告的消息具有误导性。不允许在始终\u comb
块中使用任何事件控件。它会自动为您创建事件敏感度列表。可能是将隐式事件控件与添加到其中的控件相结合,然后生成错误
除非使用高级合成工具,否则在基本
始终块的开头只能有一个事件控件。该错误报告的消息具有误导性。不允许在始终\u comb
块中使用任何事件控件。它会自动为您创建事件敏感度列表。可能是将隐式事件控件与添加到其中的控件相结合,然后生成错误
除非您使用的是高级合成工具,否则您只能在基本的始终块的开头使用一个事件控件。我使用的是VCS,它可能允许多个@
事件触发器在一个始终块中起等待作用(不太确定,如何检查此情况?)。不管怎样,如果我在代码中用始终
替换始终
,那么后面的语法会被允许吗?正如在模拟器中所示的一个always块中的多个事件控件@(posedge sig_b)
和@(negedge sig_b)
中,允许比可合成的语法更多的语法。我使用的是VCS,它可能允许多个@
事件触发器在一个always块中充当等待(不太确定,如何检查这一点?)。不管怎样,如果我在代码中用始终
替换始终
,那么后面的语法会被允许吗?正如在模拟器中所示的一个始终块中的多个事件控件@(posedge sig_b)
和@(negedge sig_b)
允许比可合成的语法更多的语法。
always_comb begin
if (sig_a)begin
@(posedge sig_b); // wait for a sig_b posedge event
@(negedge sig_b); // then wait for a sig_b negedge event
event_true=1;
end
if (event_true)begin
@((sig_c==1)&&(sig_a==0)); //wait for sig_a to deassert and sig_c assert event to be true
yes =1;
end
else yes =0;
end