P
pop
Guest
Hi <br><br>I have inherited a design containing both asyncrous and syncronous FF. I started to rewrite the code but started to doubt the strategy. Does anybody know which is better. The FPGA is very large.
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
I think you forgot logic that drives external cirquits (which might beThe previously mentioned article was an interesting read. I have always
been a strong
advocate of synchronous design, and this includes the application of resets.
My rule of thumb is use synchronous resets in all areas, unless
exceptional
conditions arise. There are at least two good exceptions :
[1] Block of logic may have a clock which after power-up disappears, example
clock derived from a DDS which might be reset operationally. In order to
restore outputs
to inactive states in absence of clock, asynchronous reset needs to be used.
[2] Sequential logic drives tristate enable control - During powerup or
during
in-circuit test mode, clock may not be present, and multiple drivers causing
contention
can cause device failure.
My rule of thumb is use synchronous resets in all areas,
unless exceptional conditions arise.
There are at least two good exceptions :
(snip of exceptions)
I believe that all FPGAs have power on resets that keep the IO in aHi,
"John Retta" <jretta@rtc-inc.com> wrote:
The previously mentioned article was an interesting read. I have always
been a strong
advocate of synchronous design, and this includes the application of resets.
My rule of thumb is use synchronous resets in all areas, unless
exceptional
conditions arise. There are at least two good exceptions :
[1] Block of logic may have a clock which after power-up disappears, example
clock derived from a DDS which might be reset operationally. In order to
restore outputs
to inactive states in absence of clock, asynchronous reset needs to be used.
[2] Sequential logic drives tristate enable control - During powerup or
during
in-circuit test mode, clock may not be present, and multiple drivers causing
contention
can cause device failure.
I think you forgot logic that drives external cirquits (which might be
true for most designs). Normaly you start your fpga while powerup of
the pcb. There exists cirquits that wil be destroyed if the fpga
drives its outputs in a state which generates unacceptable currents or
voltages on external parts over a longer periode (beside tristate
busses).
I prefer a asynchronous reset and an internal logic, that will recover
out of every failure mode. In some cases it might be clever to use a
synchron deassert of the asynchronous reset.
I was puzzled by your saying this. It seems clear that neither the system(snip)
To me, a global asynchronous reset driven from an external
pin, or by the FPGA itself, is fine. The user of the system
is then responsible for any required timing. (I believe most
My two cents,FPGA will do asynchronous reset on all FF at initialization time.)
Otherwise, I would agree that asynchronous reset driven by other
parts of the design results in an asynchronous design.
-- glen
know which is better. The FPGA is very large.Hi
I have inherited a design containing both asyncrous and syncronous FF. I
started to rewrite the code but started to doubt the strategy. Does >anybody
Yes, that is the type of device I was considering.glen herrmannsfeldt <gah@ugcs.caltech.edu> wrote in message news:<Oxmxc.15640$HG.9409@attbi_s53>...
(snip)
To me, a global asynchronous reset driven from an external
pin, or by the FPGA itself, is fine. The user of the system
is then responsible for any required timing. (I believe most
I was puzzled by your saying this. It seems clear that neither the system
nor user (ie external to the chip) has any control over the reset skew
internal to the device, and that they cannot fix a startup problem caused
by this. Perhaps the answer is application-dependent:
I can see global external async reset being fine for the class of
designs which reset into an idle state, ie they don't do anything until
they receive an external trigger.