ch14.9.htm

来自「介绍asci设计的一本书」· HTM 代码 · 共 211 行

HTM
211
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML EXPERIMENTAL 970324//EN">

<HTML>

<HEAD>

<META NAME="GENERATOR" CONTENT="Adobe FrameMaker 5.5/HTML Export Filter">



<TITLE> 14.9&nbsp;The Viterbi Decoder Example</TITLE></HEAD><!--#include file="top.html"--><!--#include file="header.html"-->



<DIV>

<P>[&nbsp;<A HREF="CH14.htm">Chapter&nbsp;start</A>&nbsp;]&nbsp;[&nbsp;<A HREF="CH14.8.htm">Previous&nbsp;page</A>&nbsp;]&nbsp;[&nbsp;<A HREF="CH14.a.htm">Next&nbsp;page</A>&nbsp;]</P><!--#include file="AmazonAsic.html"--><HR></DIV>

<H1 CLASS="Heading1">

<A NAME="pgfId=57270">

 </A>

14.9&nbsp;<A NAME="36939">

 </A>

The Viterbi Decoder Example</H1>

<P CLASS="BodyAfterHead">

<A NAME="pgfId=67772">

 </A>

<A HREF="CH14.8.htm#11776" CLASS="XRef">

Table&nbsp;14.22</A>

 shows the timing analysis for the Viterbi decoder before and after test insertion. The Compass test software inserts internal scan and boundary scan exactly as in the Threegates example. The timing analysis is in the form of histograms showing the distributions of the timing delays for all paths. In this analysis we set an aggressive constraint of 20 ns (50 MHz) for the clock. The critical path before test insertion is 21.75 ns (the slack is thus negative at &#8211;1.75 ns). The path starts at <SPAN CLASS="BodyComputer">

u1.subout6.Q_ff_b0</SPAN>

 and ends at <SPAN CLASS="BodyComputer">

u2.metric0.Q_ff_b4</SPAN>

, both flip-flops inside the flattened block, <SPAN CLASS="BodyComputer">

v_1.u100</SPAN>

, that we created during synthesis in an attempt to improve speed. The first flip-flop in the path is a <SPAN CLASS="BodyComputer">

dfctnb</SPAN>

; the last flip-flop is a <SPAN CLASS="BodyComputer">

dfctnh</SPAN>

. The suffix <SPAN CLASS="BodyComputer">

'b'</SPAN>

 denotes 1X drive and suffix <SPAN CLASS="BodyComputer">

'h'</SPAN>

 denotes 2X drive.</P>

<P CLASS="Body">

<A NAME="pgfId=126425">

 </A>

After test insertion the critical path is 21.98 ns. The end point is identical, but the start point is now <SPAN CLASS="BodyComputer">

subout7.Q_ff_b1</SPAN>

. This is not too surprising. What is happening is that there are a set of paths of nearly equal length. Changing the flip-flops to their scan versions (<SPAN CLASS="BodyComputer">

mfctnb</SPAN>

 and <SPAN CLASS="BodyComputer">

mfctnh</SPAN>

) increases the delay slightly. The exact delay depends on the capacitive load at the output, the path (clock-to-Q, clock-to-QN, or setup), and the input signal rise time.</P>

<P CLASS="Body">

<A NAME="pgfId=96684">

 </A>

<SPAN CLASS="BodyComputer">

</SPAN>

Adding test logic has not increased the critical path delay substantially. Almost as important is that the distribution of delays has not changed substantially. Also very important is the fact that the distributions show that there are only approximately 20 paths with delays close to the critical path delay. This means that we should be able to constrain these paths during physical design and achieve a performance after routing that is close to our preroute predictions.</P>

<TABLE>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableTitle">

<A NAME="pgfId=125650">

 </A>

TABLE&nbsp;14.23&nbsp;<A NAME="24557">

 </A>

Fault coverage for the Viterbi decoder.</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableFirst">

<A NAME="pgfId=125652">

 </A>

&nbsp;</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Computer">

<A NAME="pgfId=125654">

 </A>

Fault list generation/collapsing</P>

<P CLASS="Computer">

<A NAME="pgfId=125655">

 </A>

Total number of faults: 8846</P>

<P CLASS="Computer">

<A NAME="pgfId=125656">

 </A>

Number of faults in collapsed fault list: 3869</P>

<P CLASS="Computer">

<A NAME="pgfId=125657">

 </A>

Vector generation</P>

<P CLASS="Computer">

<A NAME="pgfId=125658">

 </A>

#</P>

<P CLASS="Computer">

<A NAME="pgfId=125659">

 </A>

# VECTORS  FAULTS   FAULT COVER</P>

<P CLASS="Computer">

<A NAME="pgfId=125660">

 </A>

#         processed</P>

<P CLASS="Computer">

<A NAME="pgfId=125661">

 </A>

#</P>

<P CLASS="Computer">

<A NAME="pgfId=125662">

 </A>

#     20     7515     82.92%</P>

<P CLASS="Computer">

<A NAME="pgfId=125663">

 </A>

#     40     8087     89.39%</P>

<P CLASS="Computer">

<A NAME="pgfId=125664">

 </A>

#     60     8313     91.74%</P>

<P CLASS="Computer">

<A NAME="pgfId=125665">

 </A>

#     80     8632     95.29%</P>

<P CLASS="Computer">

<A NAME="pgfId=125666">

 </A>

#     87     8846     96.06%</P>

<P CLASS="Computer">

<A NAME="pgfId=125667">

 </A>

&nbsp;</P>

<P CLASS="Computer">

<A NAME="pgfId=125668">

 </A>

# Total number of backtracks: 3000</P>

<P CLASS="Computer">

<A NAME="pgfId=125669">

 </A>

# Highest backtrack         : 30</P>

<P CLASS="Computer">

<A NAME="pgfId=125670">

 </A>

# Total number of vectors   : 87</P>

<P CLASS="Computer">

<A NAME="pgfId=125671">

 </A>

&nbsp;</P>

<P CLASS="Computer">

<A NAME="pgfId=125672">

 </A>

# STAR RESULTS summary</P>

<P CLASS="Computer">

<A NAME="pgfId=125673">

 </A>

#                           &nbsp;Noncollapsed       Collapsed</P>

<P CLASS="Computer">

<A NAME="pgfId=125674">

 </A>

# Fault counts:</P>

<P CLASS="Computer">

<A NAME="pgfId=125675">

 </A>

#   Aborted                     178               85</P>

<P CLASS="Computer">

<A NAME="pgfId=125676">

 </A>

#   Detected                    8427              3680</P>

<P CLASS="Computer">

<A NAME="pgfId=125677">

 </A>

#   Untested                    168               60</P>

<P CLASS="Computer">

<A NAME="pgfId=125678">

 </A>

#                              ------            ------</P>

<P CLASS="Computer">

<A NAME="pgfId=125679">

 </A>

#   Total of detectable         8773              3825</P>

<P CLASS="Computer">

<A NAME="pgfId=125680">

 </A>

#</P>

<P CLASS="Computer">

<A NAME="pgfId=125681">

 </A>

#   Redundant                   10                6</P>

<P CLASS="Computer">

<A NAME="pgfId=125682">

 </A>

#   Tied                        63                38</P>

<P CLASS="Computer">

<A NAME="pgfId=125683">

 </A>

#</P>

<P CLASS="Computer">

<A NAME="pgfId=125684">

 </A>

# FAULT COVERAGE               96.06 %           96.21 %</P>

</TD>

</TR>

</TABLE>

<P CLASS="Body">

<A NAME="pgfId=96837">

 </A>

Next we check the logic for fault coverage. <A HREF="CH14.9.htm#24557" CLASS="XRef">

Table&nbsp;14.23</A>

 shows that the ATPG software has inserted nearly 9000 faults, which is reasonable for the size of our design. Fault coverage is 96 percent. Most of the untested and tied faults arise from the BST logic exactly as we have already described in the Threegates example. If we had not completed this small test case first, we might not have noticed this. The aborted faults are almost all within the large flattened block, <SPAN CLASS="BodyComputer">

v_1.u100</SPAN>

. If we assume the approximately 60 faults due to the BST logic are covered by a flush test, our fault coverage increases to 3740/3825 or 98 percent. To improve upon this figure, some, but not all, of the aborted faults can be detected by substantially increasing the backtrack limit from the default value of 30. To discover the reasons for the remaining aborted faults, we could use a controllability/observability program. If we wish to increase the fault coverage even further, we either need to change our test approach or change the design architecture. In our case we believe that we can probably obtain close to 99 percent stuck-at fault coverage with the existing architecture and thus we are ready to move on to physical design.</P>

<HR><P>[&nbsp;<A HREF="CH14.htm">Chapter&nbsp;start</A>&nbsp;]&nbsp;[&nbsp;<A HREF="CH14.8.htm">Previous&nbsp;page</A>&nbsp;]&nbsp;[&nbsp;<A HREF="CH14.a.htm">Next&nbsp;page</A>&nbsp;]</P></BODY>



<!--#include file="Copyright.html"--><!--#include file="footer.html"-->

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?