Execution of a process without an event occurring in its sen

R

Raja Harsha

Guest
Hi,

Is it possible that a process gets executed even when there is no change in the inputs given in the sensitivity list?
For example,

Process (x,y,z)
begin

if a='1' then
c<=d+f;
p=r-q;
end if;

end process;

In the above program, if i change a or d or any other input except x or y or z, does the process get executed?

I have read in some literature that a process gets executed only once by default and then only when there is a change in signals mentioned in the sensitivity list.
 
On Monday, March 3, 2014 6:54:31 AM UTC-5, Raja Harsha wrote:
I have read in some literature that a process gets executed only once by
default and then only when there is a change in signals mentioned in the
sensitivity list.

That is correct.

Kevin Jennings
 
KJ wrote:
On Monday, March 3, 2014 6:54:31 AM UTC-5, Raja Harsha wrote:
I have read in some literature that a process gets executed only once by
default and then only when there is a change in signals mentioned in the
sensitivity list.

That is correct.

Kevin Jennings

You should qualify this by saying it's correct for simulation. For
synthesis the tool will normally assume that there is complete
coverage in the sensitivity list, and it will generate logic that
depends on all inputs regardless of whether there is a change on
x, y, z or not. On the other hand the way the question was worded,
I assume means we're talking about simulation, because there's
no concept of a process being executed in the synthesized hardware.

--
Gabor
 
GaborSzakacs wrote:
KJ wrote:
On Monday, March 3, 2014 6:54:31 AM UTC-5, Raja Harsha wrote:
I have read in some literature that a process gets executed only once
by default and then only when there is a change in signals mentioned
in the sensitivity list.

That is correct.

Kevin Jennings


You should qualify this by saying it's correct for simulation. For
synthesis the tool will normally assume that there is complete
coverage in the sensitivity list, and it will generate logic that
depends on all inputs regardless of whether there is a change on
x, y, z or not. On the other hand the way the question was worded,
I assume means we're talking about simulation, because there's
no concept of a process being executed in the synthesized hardware.

I forgot to add that the synthesis tool will also generate a warning
when it completes the sensitivity list for you, indicating that your
hardware implementation may not match the behavioral simulation.

--
Gabor
 
You should qualify this by saying it's correct for simulation. For

synthesis the tool will normally assume that there is complete

coverage in the sensitivity list, and it will generate logic that

depends on all inputs regardless of whether there is a change on

x, y, z or not. On the other hand the way the question was worded,

I assume means we're talking about simulation, because there's

no concept of a process being executed in the synthesized hardware.





I forgot to add that the synthesis tool will also generate a warning

when it completes the sensitivity list for you, indicating that your

hardware implementation may not match the behavioral simulation.



--

Gabor

Yes, what Gabor said is correct. Synthesis tools usually trigger processes by inferring all inputs instead of looking at the sensitivity list. This is one of the few things that synthesis tools tend to behave differently from simulation tools. I still prefer that synthesis tools infer no logic when none of the signals in the sensitivity list changes. Simulation tools follow the standard more strictly than synthesis tools in this respect.
 

Welcome to EDABoard.com

Sponsor

Back
Top