![]() |
synthesis and sensitivity list?
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 |
Re: synthesis and sensitivity list?
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 |
Re: synthesis and sensitivity list?
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. |
Re: synthesis and 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 |
Re: synthesis and sensitivity list?
"Neo" <zingafriend@yahoo.com> wrote in message news:1123758099.515012.33930@z14g2000cwz.googlegro ups.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 |
Re: synthesis and sensitivity list?
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 |
Quote:
Sensitivity list It is a fundamental rule of VHDL that only signals (which includes input and buffer ports) must appear in the sensitivity list. Golden Rule 1: To synthesize combinational logic using a process, all inputs to the design must appear in the sensitivity list. !!! Ahmed Samieh |
| All times are GMT. The time now is 06:12 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.