The (*) means "build the sensitivity list for me". For example, if you had a statement a = b + c; then you'd want a to change every time either b or c changes. In other words, a is "sensitive" to b & c.

Understanding the Context

So to set this up: always @( b or c ) begin a = b + c; end But imagine you had a large always block that was sensitive to loads of signals. Writing the sensitivity list would take ages. In fact ... verilog - What does always block @ (*) means?

Key Insights

- Stack Overflow The always @(*) block is sensitive to change of the values all the variables, that is read by always block or we can say which are at the right side inside the always block. In your example, there are no any variables used inside always block, so this always @(*) block will not work here. As per SV LRM, always_comb is sensitive to changes within the contents of a function, whereas always @* is ... I'm a bit confused about what is considered an input when you use the wildcard @* in an always block sensitivity list. For instance, in the following example, which signals are interpreted as inputs I am totally confused among these 4 terms: always_ff, always_comb, always_latch and always.

Final Thoughts

How and for what purpose can these be used? The always @(*) syntax was added to the IEEE Verilog Std in 2001. All modern Verilog tools (simulators, synthesis, etc.) support this syntax. Here is a quote from the LRM (1800-2009): An incomplete event_expression list of an event control is a common source of bugs in register transfer level (RTL) simulations. The implicit event_expression, @*, is a convenient shorthand that eliminates these ... Is there a difference between an always block, and an always @* block?

The difference between forever and always is that always can exist as a "module item", which is the name that the Verilog spec gives to constructs that may be written directly within a module, not contained within some other construct. initial is also a module item. always blocks are repeated, whereas initial blocks are run once at the start of ...