Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16606 Discussions

Records in sensitivity lists

Altera_Forum
Honored Contributor II
2,005 Views

Consider a process that is triggered by some, but not necessarily all, elements of a record. How about its sensitivity list? Is it best practice to include only the required record elements, the ones that really trigger the process? Or is it sufficient to include the record as a whole?  

 

Until now, I always felt more comfortable including each required record element in the list, because the irrelevant record elements should not trigger the process. Now I have a process though with lots of record elements and it's becoming a burden to type them all out. And I have noticed that Quartus II 6.0 issues a warning like "Sensitivity list already contains record X" when you list multiple elements of the same record. So Quartus doesn't seem to make an issue out of it, when listing only the record as a whole. But maybe other tools do?
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
1,040 Views

As frequently mentioned in the forum, sensitivity lists are basically ignored in synthesis, although Quartus warns about missing entries. Simply, combinational processes are translated to combinational logic and clocked processes to FF based logic. They neither need a trigger to do their work. 

 

But it's different in simulation with full-featured simulators as ModelSim. They interpret the VHDL text and usually ignore events at signals, that aren't included in the sensitivity list. The Quartus warnings should e understood to keep the integrity of simulation and synthesis. 

 

Also in simulation, it doesn't harm to have unnecessary sensivity list entries, except possibly increasing simulation time.
0 Kudos
Altera_Forum
Honored Contributor II
1,040 Views

the VHDL-2008 process(all) statement will take care of the burden of typing out all elements into the process statement and is supported by Quartus II 9.1 (and "current" ModelSim, I think).

0 Kudos
Reply