使用该声明后是否有任何可能的副作用?
答案 0 :(得分:4)
这只是列出always
块所依赖的所有线路的快捷方式。那些电线是“灵敏度列表”。使用它的一个优点是合成代码不太可能关心你在灵敏度列表中放置的内容(posedge
和negedge
除外),因为导线将“物理”连接在一起。模拟器可能依赖于列表来选择应该导致块执行的事件。如果更改块并忘记更新列表,则模拟可能与实际合成行为不同。
答案 1 :(得分:3)
在SystemVerilog中,我们希望你使用always_comb begin ... end而不是always @ *。
总是@ *的一大缺点是,当你的某些组合逻辑涉及常数时,总是@ *可能不会在时间0触发,它需要看到信号变化才能触发。 always_comb保证在时间0至少触发一次。
always_comb的另一个好处是它内联函数调用。如果你调用一个函数,并且该函数的主体引用了一个未作为参数传递的信号,那么@ *将始终对该信号不敏感。
答案 2 :(得分:2)