OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [doc/] [src/] [guides/] [reset_sys_design.html] - Diff between revs 119 and 128

Show entire file | Details | Blame | View Log

Rev 119 Rev 128
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&nbsp; will do.&nbsp; This is
sums up what the thing you are designing&nbsp; will do.&nbsp; 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.&nbsp; The statement will&nbsp; tell you&nbsp;
to this statement.&nbsp; The statement will&nbsp; tell you&nbsp;
what&nbsp; steps you must follow. Anything that you cannot trace back
what&nbsp; 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&nbsp; 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&nbsp; has a metastable filter to sync it
        <LI><P>The reset signal&nbsp; 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&nbsp; now look at every storage element in the design and
<P>We&nbsp; now look at every storage element in the design and
define a safe state for each&nbsp; element of either 1 or 0. Don't
define a safe state for each&nbsp; 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.&nbsp;
board designers have defined the known good state for the PCA.&nbsp;
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.&nbsp; Once this step is complete it will provide a map for the
timer.&nbsp; 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
&quot;synchronous reset tree&quot;.<BR><BR><BR><BR><BR><BR>
&quot;synchronous reset tree&quot;.<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.&nbsp; The async one will enter reset one&nbsp;
asynchronous one.&nbsp; The async one will enter reset one&nbsp;
cycle&nbsp; before the sync one but they will both exit on&nbsp; at
cycle&nbsp; before the sync one but they will both exit on&nbsp; at
the same&nbsp; time. <BR><BR><BR><BR>
the same&nbsp; 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 &quot;Style&quot; for each flip/flop
<P>We now need to select a reset &quot;Style&quot; 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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.