Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20704 Discussions

always@(*) statement

Altera_Forum
Honored Contributor II
995 Views

Hi, 

 

I've seen always@(*) in a few tutorials but i'm unsure on where this is a valid sensitive list or whether they're refering the * to be any input you want? And whether it should be used, if it is a valid sensitive list? 

 

Unfortunately, I can't find much information on it.  

 

 

Help is much appreciated
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
291 Views

Don't use it for a clocked process, but for a combinatorial process, as you don't have to list the inputs that the outputs are based on. This task always caused problems whereby if you forget to add something to the sensitivity list, a latch can get inferred when you don't want it.  

On a similar note, I'm a fan of the system verilog commands always_comb, which doesn't require a sensitivity list, and always_ff. Minimally, I think it keeps things clear. (I think there's supposed to be an error or warning if code the wrong thing, like a latch in an always_comb block, but I haven't really tested it out.
0 Kudos
Altera_Forum
Honored Contributor II
291 Views

Is there a general name for the always commands always_comb and always_ff? It might make it easier to Google. :) 

 

What's the general name for the * in the sensitive list?
0 Kudos
Reply