synthesis and sensitivity list?

E

Elinore

Guest
Hi

In the FSM example below, sensitity list is supposed to be (clk,
reset).

What if (clk, reset, input) ?

How is differently synthesized, for example, in Xilinx FPGA synthesis
tool, XST?

process(clk,reset)
begin
if (reset='1') then
state <= S1;
output <= '1';
elsif(clk='1' and clk'event) then
case state is
when s1 =>
if input ='1' then --- FSM input
state <= s2;
output <= '1';
else
state <= s3;
output <= '0';
when s2 => state <= s4; output <= '0';
end case;
end if;
end process
 
The process is only triggered on clk and reset, so "input" shall not be
in the sensitivity list. That is the normal case for a synchronous
design with asynchronous reset.
Synthesis programs does not care about sensitivity list but gives you a
warning if they are not complete.

/Peter
 
If you put "input" also in the sensitivity list it dosent matter for
the synthesis tool but it will usually give warnings. But you will end
up with simulation synthesis mismatch as simulation will take into
account your sensitivity list.
 
Elinore wrote:

In the FSM example below, sensitity list is supposed to be (clk,
reset).

What if (clk, reset, input) ?

How is differently synthesized, for example, in Xilinx FPGA synthesis
tool, XST?

process(clk,reset)
begin
if (reset='1') then
state <= S1;
output <= '1';
elsif(clk='1' and clk'event) then
....
end process
If you add any signal, the process will be triggered, if an there is an
'event of the added signal, but nothing will happen, as the two
if-clauses are false. -> Just unnessecary overhead for simulation, but
no false behavior for simulation or synthesis.

Note, that this behavior is because of the rising-edge dectection. For
combinational logic or latches you have to take more care with the
sensitivity list.

Ralf
 
"Neo" <zingafriend@yahoo.com> wrote in message news:1123758099.515012.33930@z14g2000cwz.googlegroups.com...
If you put "input" also in the sensitivity list it dosent matter for
the synthesis tool but it will usually give warnings. But you will end
up with simulation synthesis mismatch as simulation will take into
account your sensitivity list.
Actually it is totally benign to put more signals on the sensitivity list than need.
Synthesis tool only warns if there are signals MISSING, because this would
lead to synthesis/simulation mismatches.

Synthesis / simulation results are the same, if there are EXTRA signals on the list.

Rob
 
Rob Dekker wrote

Synthesis / simulation results are the same, if there are EXTRA signals on the list.
The duration of the simulation run
and the clarity of the code
are not the same.


-- Mike Treseler
 

Welcome to EDABoard.com

Sponsor

Back
Top