Verilog 使用always@*|的含义和缺点

Verilog 使用always@*|的含义和缺点,verilog,hdl,system-verilog,Verilog,Hdl,System Verilog,你能说出那是什么意思吗 始终@* 使用该语句后是否有任何可能的副作用?这只是列出始终依赖的所有导线的快捷方式。这些电线是“敏感度列表”。使用它的一个优点是,合成代码不太可能关心您在灵敏度列表中输入的内容(除了posedge和negedge),因为导线将“物理”连接在一起。模拟器可能依赖于列表来选择哪些事件应该导致块执行。如果您更改块而忘记更新列表,您的模拟可能与实际的合成行为不同。@Ben Jackson回答正确。第二部分的答案是没有可能的副作用;我认为这是组合逻辑的推荐实践。 < P>在S

你能说出那是什么意思吗

  • 始终@*

使用该语句后是否有任何可能的副作用?

这只是列出
始终依赖的所有导线的快捷方式。这些电线是“敏感度列表”。使用它的一个优点是,合成代码不太可能关心您在灵敏度列表中输入的内容(除了
posedge
negedge
),因为导线将“物理”连接在一起。模拟器可能依赖于列表来选择哪些事件应该导致块执行。如果您更改块而忘记更新列表,您的模拟可能与实际的合成行为不同。

@Ben Jackson回答正确。第二部分的答案是没有可能的副作用;我认为这是组合逻辑的推荐实践。

< P>在SystemVerilog,我们更倾向于使用AlWysSoCKEY开始……而不是总是@ */< always@*最大的缺点是,当一些组合逻辑涉及常数时,always@*可能不会在时间0触发,它需要看到一个信号变化才能触发。始终确保至少在时间0触发一次

always_comb的另一个好处是,它可以在函数调用行中使用。如果您调用一个函数,并且函数体引用了一个未作为参数传递的信号,那么@*始终不会对该信号敏感