Line 1... |
Line 1... |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
<HTML>
|
<HTML>
|
<HEAD>
|
<HEAD>
|
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
|
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
|
<TITLE>Reset System Design</TITLE>
|
<TITLE>Reset System Design</TITLE>
|
<META NAME="GENERATOR" CONTENT="LibreOffice 3.5 (Linux)">
|
<META NAME="GENERATOR" CONTENT="LibreOffice 3.6 (Linux)">
|
<META NAME="CREATED" CONTENT="0;0">
|
<META NAME="CREATED" CONTENT="0;0">
|
<META NAME="CHANGED" CONTENT="20120817;10052500">
|
<META NAME="CHANGEDBY" CONTENT="Ouabache Designworks">
|
|
<META NAME="CHANGED" CONTENT="20130725;19592200">
|
<META NAME="KEYWORDS" CONTENT="start">
|
<META NAME="KEYWORDS" CONTENT="start">
|
<META NAME="Info 3" CONTENT="">
|
<META NAME="Info 3" CONTENT="">
|
<META NAME="Info 4" CONTENT="">
|
<META NAME="Info 4" CONTENT="">
|
<META NAME="date" CONTENT="2008-01-08T12:01:41-0500">
|
<META NAME="date" CONTENT="2008-01-08T12:01:41-0500">
|
<META NAME="robots" CONTENT="index,follow">
|
<META NAME="robots" CONTENT="index,follow">
|
Line 245... |
Line 246... |
sums up what the thing you are designing will do. This is
|
sums up what the thing you are designing will do. This is
|
important because everything after this point must be traceable back
|
important because everything after this point must be traceable back
|
to this statement. The statement will tell you
|
to this statement. The statement will tell you
|
what steps you must follow. Anything that you cannot trace back
|
what steps you must follow. Anything that you cannot trace back
|
to something in the mission statement is not part of the design<BR><BR><BR>The
|
to something in the mission statement is not part of the design<BR><BR><BR>The
|
mission statement for the reset system is:<BR><BR><BR><BR>The reset
|
mission statement for the reset system is:<BR><BR><BR><BR>The mission
|
system will force all the nodes in a system or subsystem into a known
|
of the reset system is to NOT do anything while reset triggers are
|
good state while a reset trigger is active.<BR><BR><BR><BR>
|
inactive and then to force all the nodes in a system or subsystem
|
|
into a known good state while a reset trigger is active.</P>
|
|
<P><BR><BR>
|
|
</P>
|
|
<P>The main reason we have so much trouble with resets is that most
|
|
designers don't realize that their first duty is to ensure that
|
|
nothing happens when you aren't doing a reset. They do everything
|
|
they can to ensure that any reset is quickly and forcefully delivered
|
|
throughout the entire design and then are surprised when their
|
|
product fails ESD testing.
|
|
</P>
|
|
<P><BR><BR>
|
</P>
|
</P>
|
<H3 CLASS="western">2) Define the reset triggers</H3>
|
<H3 CLASS="western">2) Define the reset triggers</H3>
|
<P>We must now make a list of all the events that will cause us to
|
<P>We must now make a list of all the events that will cause us to
|
reset all or part of the system. Our list is:</P>
|
reset all or part of the system. Our list is:</P>
|
<UL>
|
<UL>
|
Line 278... |
Line 290... |
<UL>
|
<UL>
|
<LI><P>The reset signal has a metastable filter to sync it
|
<LI><P>The reset signal has a metastable filter to sync it
|
with the clock.</P>
|
with the clock.</P>
|
</UL>
|
</UL>
|
<P>The last is important because some designers will forget that the
|
<P>The last is important because some designers will forget that the
|
filtered output is actually it's own separate reset domain<BR><BR><BR><BR><BR>
|
filtered output is actually it's own separate reset domain.</P>
|
|
<P><BR><BR><BR>
|
|
</P>
|
|
<P><BR><BR>
|
|
</P>
|
|
<P><BR><BR>
|
|
</P>
|
|
<P><BR><BR>
|
|
</P>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H3 CLASS="western">3) Design a filter</H3>
|
|
<P>Any Signal from the PCA into a chip might also contain an ESD
|
|
glitch. If this appears on the reset signal then it could disrupt the
|
|
products operation and result in a failure. A low pass filter must be
|
|
used to block these transitiates</P>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H3 CLASS="western"><BR><BR>
|
|
</H3>
|
|
<P><BR><BR>
|
|
</P>
|
|
<P><BR><BR>
|
</P>
|
</P>
|
<H3 CLASS="western">3) Define a known good state</H3>
|
<H3 CLASS="western">4) Define a known good state</H3>
|
<P>We now look at every storage element in the design and
|
<P>We now look at every storage element in the design and
|
define a safe state for each element of either 1 or 0. Don't
|
define a safe state for each element of either 1 or 0. Don't
|
cares are not allowed. If you cannot pick a value then one will be
|
cares are not allowed. If you cannot pick a value then one will be
|
assigned for you. This task is best performed after the system and
|
assigned for you. This task is best performed after the system and
|
board designers have defined the known good state for the PCA.
|
board designers have defined the known good state for the PCA.
|
They will define the state for all of the pads, the ic design team
|
They will define the state for all of the pads, the ic design team
|
must define the states for all internal nodes.</P>
|
must define the states for all internal nodes.</P>
|
<H3 CLASS="western">4) Assign storage elements to triggers</H3>
|
<H3 CLASS="western">5) Assign storage elements to triggers</H3>
|
<P>Once we have a list of all storage element we list any and all
|
<P>Once we have a list of all storage element we list any and all
|
triggers that will force them into a safe mode.<BR>A typical list
|
triggers that will force them into a safe mode.<BR>A typical list
|
would list all the flipflops in timer module u12.r567 would be reset
|
would list all the flipflops in timer module u12.r567 would be reset
|
by:</P>
|
by:</P>
|
<UL>
|
<UL>
|
Line 315... |
Line 349... |
timer. Once this step is complete it will provide a map for the
|
timer. Once this step is complete it will provide a map for the
|
reset distribution tree that you will need. The best way to
|
reset distribution tree that you will need. The best way to
|
distribute the reset over a large design is to use what is called a
|
distribute the reset over a large design is to use what is called a
|
"synchronous reset tree".<BR><BR><BR><BR><BR><BR>
|
"synchronous reset tree".<BR><BR><BR><BR><BR><BR>
|
</P>
|
</P>
|
<H3 CLASS="western">5) Select between synchronous or asynchronous
|
<H3 CLASS="western">6) Select between synchronous or asynchronous
|
reset system</H3>
|
reset system</H3>
|
<P>At this point it is easy to see if we need a synchronous or
|
<P>At this point it is easy to see if we need a synchronous or
|
asynchronous reset system. If your trigger is asynchronous then you
|
asynchronous reset system. If your trigger is asynchronous then you
|
must design a asynchronous reset system. If the trigger can occur
|
must design a asynchronous reset system. If the trigger can occur
|
without a clock then you must be able to reset the system without a
|
without a clock then you must be able to reset the system without a
|
Line 327... |
Line 361... |
synchronous reset system or you may also choose to design a
|
synchronous reset system or you may also choose to design a
|
asynchronous one. The async one will enter reset one
|
asynchronous one. The async one will enter reset one
|
cycle before the sync one but they will both exit on at
|
cycle before the sync one but they will both exit on at
|
the same time. <BR><BR><BR><BR>
|
the same time. <BR><BR><BR><BR>
|
</P>
|
</P>
|
<H3 CLASS="western">6) Select reset style for each flip/flop</H3>
|
<H3 CLASS="western">7) Select reset style for each flip/flop</H3>
|
<P>We now need to select a reset "Style" for each flip/flop
|
<P>We now need to select a reset "Style" for each flip/flop
|
from the four possible reset styles.<BR><BR><BR>
|
from the four possible reset styles.<BR><BR><BR>
|
</P>
|
</P>
|
<UL>
|
<UL>
|
<LI><P STYLE="margin-bottom: 0in">Synchronous
|
<LI><P STYLE="margin-bottom: 0in">Synchronous
|