12004 mapldreset circuit topologies reference: analysis of por circuit topologies

21
1 2004 MAPLD Reset Circuit Topologies Reset Circuit Topologies ference: Analysis of POR Circuit Topologies tp://klabs.org/richcontent/fpga_content/DesignNotes/por/por.htm

Upload: marquis-irish

Post on 14-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

12004 MAPLD Reset Circuit Topologies

Reset Circuit Topologies

Reference: Analysis of POR Circuit Topologies http://klabs.org/richcontent/fpga_content/DesignNotes/por/por.htm

Page 2: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

22004 MAPLD Reset Circuit Topologies

Introduction

The seemingly simple issue of FPGA and ASIC power-on reset circuits is nevertheless often a frequent cause of problems.  The discussion in this module will cover both the key issues and a variety of circuits, analyzing their strong and weak points.  The discussion will in most cases be general logic design but will deal with some particular issues with Field Programmable Gate Arrays (FPGAs).

Page 3: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

32004 MAPLD Reset Circuit Topologies

System Issues

None of the circuits discussed in this module are intended to deal with issues of logic devices not starting (e.g., following their truth table) instantly after the application of power.  These system-level issues, based on system-level requirements, must be analyzed and, if necessary, dealt with at the system level and not at the logic level internal to the FPGA or ASIC.

Page 4: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

42004 MAPLD Reset Circuit Topologies

Analysis Assumptions1. The external POR circuitry is properly designed.

2. The clock is generated by a crystal clock oscillator, which takes a certain amount of time to start and then become stable.   Additionally, the oscillator may not start clean.

3. The clock is not gated off.  If that is not true, such as when areas of the circuit where the clock is gated off for power savings, then additional issues arise.

4. The POR signal is asynchronous to CLK.

5. The period of CLK is large compared with the metastable state resolution time of the flip-flop being used for synchronization.

6. The POR assertion time exceeds the clock oscillator and FPGA start times.

7. The output of the internal POR circuit drives the asynchronous set/reset of flip-flops.  Since modern FPGAs all have asynchronous flip-flop inputs, this is often used to save logic resources, delay, and power.  This is an important consideration since these inputs, unlike D's and ENABLE's, are sensitive to glitches.  It is further assumed that timing specifications are met for set/reset distribution including the "removal" time.

8. Noise pulses on the input POR  signal is a credible situation.

Page 5: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

52004 MAPLD Reset Circuit Topologies

Fully Asynchronous Application

Unintended operation or lockup of finite state machines or systems may result if the flip-flops come out of reset during different clock periods.

There is a potential for one or more uncontrolled metastable states.

Therefore, only reset circuits that [attempt to] remove power-on reset synchronously (PORS) should be considered in hi-rel applications.

Page 6: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

62004 MAPLD Reset Circuit Topologies

Fully Asynchronous ApplicationTYPE STATE_TYPE IS (s0 , s1 , s2, s3, s4, s5, s6, s7, s8, s9, ………………………………………….. s60, s61, s62, s63, s64, s65, s66, s67);…………………………………………..IF resetn = '0' THEN state <= s0;…………………………………………..CASE state IS

WHEN s0=>IF StartC = '1' THEN state <= s1;END IF;WHEN s1=> state <= s2;WHEN s2=> state <= s3;WHEN s3=> state <= s4;WHEN s4=> state <= s5

…………………………………………….

• A real life example of lack of consideration for POR issues:– Numerous state machine used in

design, some rather complex

– External POR signal applied to all flip-flops with no synchronization

– Local routing resources used for delivering POR throughout the circuit

Page 7: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

72004 MAPLD Reset Circuit Topologies

POR Circuit Selection

Significant issues related to the analysis and selection of a power-on reset circuit for a particular application include:

– Dependence on clock signal being operational

– Noise immunity

– Critical timing path impact

Page 8: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

82004 MAPLD Reset Circuit Topologies

Synchronously Applied, Synchronously Removed Circuits

All circuits of this type need Clock to be operational

Page 9: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

92004 MAPLD Reset Circuit Topologies

Example 1A

Example1AProc:process (Clk)begin if RisingEdge(Clk) then PORA <= POR; PORS <= PORA; end if;end process Example1AProc;

Page 10: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

102004 MAPLD Reset Circuit Topologies

Example 1A

• Fully synchronous

• Needs Clock to be operational (+ two cycles)– Compare with start/load time for FPGA

• Minimized impact on critical timing path

• Rejects noise that is not coincident with clock edge– External analog filters can help; device input transition times must be met,

simple RC circuits may violate timing constraints

– Internal digital FSM can act as a filter, care must be taken for startup conditions, latency, timing, metastable states, etc.

– No general solution since noise can be arbitrarily large in time

Page 11: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

112004 MAPLD Reset Circuit Topologies

Example 1BExample1BProc:process (Clk)begin if RisingEdge(Clk) then PORA <= POR; PORB <= PORA; end if;end process Example1BProc;PORS <= PORA or PORB;

• A flawed attempt to improve Circuit in Example 1 for noise immunity– A static hazard on the output of

OR gate: a POR pulse shorter than one Clock cycle may result in a glitch on PORS

Page 12: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

122004 MAPLD Reset Circuit Topologies

Example 1CExample1CProc:process (Clk)begin if RisingEdge(Clk) then PORA <= POR; PORB <= PORA; PORC <= PORB; end if;end process Example1CProc;PORS <= PORA or PORC;

• Fixes static hazard problem of Example 1B for narrow noise spikes.

• Only one input to the OR gate changes at any time– This technique can be extended

to reject POR pulses of arbitrary width

Page 13: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

132004 MAPLD Reset Circuit Topologies

Asynchronously Applied, Synchronously Removed Circuits

Remember, many programmable logic devices will not allow inputs in or outputs out until the device starts.

Page 14: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

142004 MAPLD Reset Circuit Topologies

Example 2Example2Proc:process (Clk)begin if RisingEdge(Clk) then PORA <= POR; PORB <= PORA; end if;end process Example2Proc;PORS <= POR and PORB;

Page 15: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

152004 MAPLD Reset Circuit Topologies

Example 2

• POR wrapped around the synchronizing flip-flops to asynchronously assert PORS– Assertion of PORS is not affected by oscillator start time or even failure

• Removal is clean; properly synchronized to FFA and FFB

• FPGA start time may make the asynchronous application of POR appear to take action “instantly”.– Schematic or HDL description of a circuit may not be valid during the turn-

on transient.

• Noise immunity is low– Noise or runt pulses will get onto the reset network, resulting in incomplete

resets and metastable states.

• The logic gate slows the signal down relative to Example 1

Page 16: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

162004 MAPLD Reset Circuit Topologies

Example 3Example3ProcA:process (Clk, POR)begin if POR = '0' then PORA <= '0'; elsif RisingEdge(Clk) then PORA <= POR; end if;end process Example3ProcA;

Example3ProcB:process (Clk)begin if RisingEdge(Clk) then PORS <= PORA; end if;end process Example3ProcB;

Page 17: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

172004 MAPLD Reset Circuit Topologies

Example 3

• Fixes some of the problems of Figure 2.– Noise immunity improved

– No gate in the path of PORS helps with timing

• No combinational path for reset; needs an operational clock to propagate.

• Most transients are “caught” by FFA and then cleaned up.– Worst case: a noise glitch on POR just before an active edge of Clk

Page 18: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

182004 MAPLD Reset Circuit Topologies

Example 4A

Example4AProc:process (Clk, POR)begin if POR = '0' then PORA <= '0'; PORS <= '0'; elsif RisingEdge(Clk) then PORA <= POR; PORS <= PORA; end if;end process Example4AProc;

Page 19: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

192004 MAPLD Reset Circuit Topologies

Example 4A

• POR can be distributed prior to the clock starting. Note that the FPGA must be fully operational too, as discussed above.

• FFB will take care of metastability on the PORA signal.

• Noise glitches are reasonably well handled.– FFA and FFB should be hand placed to minimize POR skew.

– Not “bulletproof” against Runt pulses on POR.

• Is FFB reliable with POR removed asynchronously? Note that some hi-rel flip-flops are built with TMR structures. Other flip-flops may internally “glitch” or have a hazard and not be stable.

Page 20: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

202004 MAPLD Reset Circuit Topologies

Example 4BExample4BProc:process (Clk, POR)begin if POR = '0' then PORA <= '0'; PORB <= '0'; PORS <= '0'; elsif RisingEdge(Clk) then PORA <= POR; PORB <= PORA; PORS <= PORB; end if;end process Example4BProc;

• Extension of the circuit shown in 4A.

• Longer reset after detection of a transient.

Page 21: 12004 MAPLDReset Circuit Topologies Reference: Analysis of POR Circuit Topologies

212004 MAPLD Reset Circuit Topologies

Notes and References1. "Some Characteristics of Crystal Clock Oscillators During the Turn-On Transient."  This application

note discusses and shows what the output of an oscillator may be during the turn-on transient.  Examples shows include runt pulses of various sizes and polarities. http://klabs.org/richcontent/General_Application_Notes/oscillator/osc_start_up_note/index.htm

2. "Asynchronous & Synchronous Reset Design Techniques - Part Deux“ http://klabs.org/richcontent/General_Application_Notes/reset_sync_async_v2.pdf

3. "Small Explorer WIRE Failure Investigation Report." This is Appendix F of the WIRE Mishap Investigation Board Report, June 8, 1999. http://klabs.org/richcontent/Reports/WIRE_Report.PDF

4. "Startup Transient," from Advanced Design: Designing for Reliability, 2001 MAPLD International Conference, Laurel, MD, September 10, 2001. http://klabs.org/richcontent/Tutorial/MiniCourses/reliable_design_mapld2001/D_StartupTransient.ppt

5. "Current Radiation Issues for Programmable Elements and Devices," IEEE Transactions on Nuclear Science, December 1998. http://klabs.org/richcontent/Papers/NSREC98_Paper.pdf

6. "RH1020 Single Event Clock Upset Summary Report," Richard B. Katz and J. J. Wang, March 5, 1998 http://klabs.org/richcontent/fpga_content/Act_1/rh1020_clk_upset_White_paper.PDF

7. Thanks to Melanie Berg of Ball for the helpful comments and suggesting to add notes about the extra delay in the reset path when using topologies such as those shown in Figure 2.

8. "Hazard Analysis," from Design Guidelines and Criteria for Space Flight Digital Electronics. http://klabs.org/DEI/References/design_guidelines/nasa_guidelines/hazards/hazards.htm and http://klabs.org/DEI/References/design_guidelines/nasa_guidelines/index.htm

9. Timing Analysis of Asynchronous Signals http://klabs.org/richcontent/General_Application_Notes/parts/removal_time.htm