waljit
Junior Member level 2
- Joined
- Feb 13, 2013
- Messages
- 21
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- Activity points
- 1,494
Hi all,
I am just coding up (VHDL) a design and am pondering the best strategy for creating a clean, synchronous reset signal from noisy asynchronous reset inputs.
My circuit is this: I have an FPGA, with its own dedicated clock input (on a global clock pin) from a local oscillator. The FPGA has 2 reset inputs; one comes from a power-on-reset IC (voltage detector) which is monitoring the 3.3V supply - I expect this should be pretty clean. The other reset input is from a reset pushbutton, which definitely will not be clean!
I want my logic to provide a clean, debounced reset to the reset of the system, which is asserted asynchronously but de-asserted synchronously (i.e. a reset synchronizer).
Before I code it up, I thought I'd draw the circuit to check I am happy with it. The attached is what I came up with. Does it look like a sensible scheme to you?
From left to right:
The first 2 flops synchronise the 2 reset inputs to the local clock domain.
This then feeds a debouncer, which consists of 3 further flops and a counter.
Finally, there is a reset synchroniser.
Any comments most welcome!
thanks
Waljit
I am just coding up (VHDL) a design and am pondering the best strategy for creating a clean, synchronous reset signal from noisy asynchronous reset inputs.
My circuit is this: I have an FPGA, with its own dedicated clock input (on a global clock pin) from a local oscillator. The FPGA has 2 reset inputs; one comes from a power-on-reset IC (voltage detector) which is monitoring the 3.3V supply - I expect this should be pretty clean. The other reset input is from a reset pushbutton, which definitely will not be clean!
I want my logic to provide a clean, debounced reset to the reset of the system, which is asserted asynchronously but de-asserted synchronously (i.e. a reset synchronizer).
Before I code it up, I thought I'd draw the circuit to check I am happy with it. The attached is what I came up with. Does it look like a sensible scheme to you?
From left to right:
The first 2 flops synchronise the 2 reset inputs to the local clock domain.
This then feeds a debouncer, which consists of 3 further flops and a counter.
Finally, there is a reset synchroniser.
Any comments most welcome!
thanks
Waljit