HDL & Verification
What does writing "always @(*)" mean in Verilog?
- AIt describes a flip-flop that runs on every rising clock edge
- BIt runs only once at the start of simulation
- CIt runs whenever any signal read inside the block changes, describing combinational logic
Show answer and explanation
Answer: C. It runs whenever any signal read inside the block changes, describing combinational logic
The list inside @( ) after always is called the sensitivity list and specifies which signal changes trigger the block. Writing "*" automatically includes every signal read in the block, correctly describing combinational logic. Listing signals by hand invites omissions, so "@(*)" or SystemVerilog's always_comb is the safe choice for combinational logic.
- A. Clock edges are specified with posedge and similar.
- B. Running once is what initial does.
- C. Correct. It is like listing every signal read automatically.