The following statements describe modeling combinatorial logic with the event control time control statement [@ (at)].
- A combinatorial always block has a sensitivity list appearing within parentheses
after
always@. - An event (value change or edge) activates an always block if it appears on one of the sensitivity list signals.
- The sensitivity list can contain:
- Any signal that appears in conditions, such as if or case.
- Any signal appearing on the right-hand side of an assignment.
- If you substitute an asterisk (*) in the parentheses for a list of signals,
you activate the
alwaysblock on events on any of its signals as described. - In combinational processes, explicitly assign every signal in all branches of if or case statements. If you fail to do so, Vivado synthesis generates a latch to hold the last value.
- The following statements are used in a process:
- variable and signal assignments
- if-else statements
- case statements
- for-while loop statements
- function and task calls