There is no need to reset every flip-flop in a design. A reset signal that
breaks any feedback loops so that the design is in a known state after some
number of clock cycles with the feedback loop and inputs forced is sufficient.
For example, a DSP design typically has a pipelined data path with little or no
feedback, and some sort of sequencer. It is sufficient to reset the sequencer,
and hold the inputs at a known state (typically zero) long enough for any data
in the pipeline to propagate out. If you also hold the outputs at zero while
the reset sequence is in progress, it becomes impossible to tell the difference
from outside the chip between a reset that clears every last flip-flop and one
that holds the input, output and a few key points at reset for some
predetermined length of time. The latter doesn't chew up routing and LUT
resources the way the reset everything approach does.
jakab tanko wrote:
> On the "can of worms"...since it is allready opened:
> If you don't have a reset how you bring the FPGA logic into a known
> state without power cycle?
> ---
> jakab
> "Steve Merritt" <[email protected]> wrote in message
> news:Keefc.123$[email protected]..
> > Hi Valentin,
> >
> > The first one is the better way to do it. The second will only work if
> your
> > enable is high.
> >
> > Let me open another can of worms by saying 'why do you want a reset at
> > all?'. Resets in *most* cases simply use up logic and routing resources
> > unnecessarily as all the fpga elements are initialised on powerup. You
> can
> > even control the initialisation states of individual registers if
> necessary.
> > In *most* cases resets are mainly there to make simulations look good by
> > removing unknown signal conditions.
> >
> > You may even miss out on some very useful resources if you automatically
> > apply resets to all your code... for example if you are using a Xilinx
> > Virtex device and you infer a shift register (i.e. 16 bits) in your HDL,
> you
> > will not be using a single SRL (Shift Register LUT) element, you will be
> > using 16 registers.
> >
> > Food for thought 
> >
> > Regards,
> >
> >
> > --
> > Steve Merritt BEng (Hons) CEng MIEE
> > XILINX Gold Certified Field Applications Engineer
> > Insight MEMEC
> >
> > Click link below for more information on :
> > XILINX Free Training
> > <http://www.xilinx.com/support/training/europe-home-page.htm>
> > XILINX Design Services
> >
> <http://www.xilinx.com/xlnx/xil_prodc...Design+Service
> > s>
> > 10 Gbps Serial IO on FPGA <http://www.xilinx.com/systemio/10gig/index.htm>
> >
> > Or Tel - 08707 356532 for more information
> >
> > "valentin tihomirov" <[email protected]> wrote in
> > message news:c5j6rg$2bkqr$[email protected]..
> > > if Rising_Edge(Clk) then
> > > if RESET = '1' then
> > > ERROR_CODE <= (others => '0');
> > > elsif ENABLE = '1' then
> > > ...
> > > or
> > >
> > > if Rising_Edge(Clk) then
> > > if ENABLE = '1' then
> > > if RESET = '1' then
> > > ERROR_CODE <= (others => '0');
> > > else
> > > ...
> > >
> > >
> >
> >
--
--Ray Andraka, P.E.
President, the Andraka Consulting Group, Inc.
401/884-7930 Fax 401/884-7950
email
[email protected]
http://www.andraka.com
"They that give up essential liberty to obtain a little
temporary safety deserve neither liberty nor safety."
-Benjamin Franklin, 1759