6831 HOMEWORK SOLUTIONS

HW #1

HW #2

HW #3

HW #4

HW #5

HW #6

HW #7

HW #8

HW #9

HW #10

HW #11

HW #12

Return to CS6831 Web Page

HW #1 1/30/02

6.47a
P > DDCQM +DLM + S + 2TL = 2 + 16 + 3 + 2(2) = 25  Let P = 25.

DLmB = 2TL + H -DCQm = 2(2) - 1 - 0.5 = 2.5

(Note that, as in this example, there are latch designs where the hold
time, H, is negative.)

W > CWm + TL + TT = 2 + 2 + 3 = 7  Choose W = 12.5 (Half of P is
advantageous), but any value at least equal to 7 is OK.

6.48. (1) P > DDQM + DLM = 2.5 + 16 = 18.5 (2) P > TL + DCQM + DLM + S + TT - W = 2 + 2 + 16 + 3 + 3 - W = 26 - W First try to meet the bound of (1) by setting P = 18.5. Substitute this value in (2) and solve for W. This gives us W > 26 - 18.5 = 7.5. The short-path constraint is: (3) DLmB = W + TL + TT + H - DCWm = 7.5 + 2 + 3 - 1 - 0.5 = 11. For part (a) this is too big (the limit is 6). So, we must reduce W by 5, to 2.5. This means that, in order to satisfy (2) we must increase P by 5, to 23.5. But we also have the constraint: (4) W > Wmin = CWm + TL + TT = 2 + 2 + 3 = 7. So now it is (4) which is critical and so we set W = 7. This raises DLmB to 10.5, too big. So we need to add delays to each path guaranteed to raise the minimum delay from the achievable 6 to 10.5. So the added delays must have minimum value 10.5 -6 = 4.5. Since we are told that the ration of Max delay to min delay is 3 (Specs for 6.47b), the MAXIMUM value of the added delays is 3x4.5 = 13.5. This raises DLM to 16 + 13.5 = 29.5, and with W = 7, (2) gives us P = 39.5 - 7 = 32.5. For case (b), where DLmB can be as high as 12, we can set W = 7.5, which makes DLmB = 11, well within bounds, and we can achieve a value of P governed by (1), which is 18.5. So being able to INCREASE the minimum value of DL (i.e., to control the path delays more precisely) allows us to operate the clock at a much faster rate.

6.51. It is clear from the quantitative discussion that the clock-pulse edge tolerances are critical in determining clock-pulse rates. Note that they appear BOTH in the long-path and short-path constraints, so that they carry more weight than any other factor in determining the clock rate. Adding logic elements in the clock-pulse path adds additional sources of variation in the delay between the clock-pulse source and the latch (or FF) C-inputs, so it is very likely to increase the edge tolerances. This does not mean that one should NEVER gate the clock, but the price of doing so should be borne in mind.

HW #2 text 6(49, 50, 1)

6.1.

X:  0   0   1   1   1   0   1   0   0 
S:1   1   1   3   1   3   2   1   1   1
Z:  0   0   0   1   0   0   0   0   0 


6.49.  We have the long-path constraints:
(1) P>D1DQM+D2DQM+DLM, and
(2) P>T2L+D2CQM+DLM+S1+T1T-V.  

The first constraint means that P>2+2.5+16 = 20.5.
The second means: P>1.5+2.5+16+2.5+2-V = 24.5-V.
We can achieve the lower value if we set V = 24.5-20.5 = 4.
But we must also satisfy the short-path constraint:
D2CQm+DLm>T2L+V+T1T+H1,
which, in this case translates into:
DLm>1.5+4+2+1.5-1.5 = 7.5.
For case-a, this is satisfactory, and so we can set V = 4 and P =
20.5, requiring that none of the short-path  delays be less than 7.5.

For case-b we cannot ensure that the short-path delays all exceed
7.5.  The best we can do is guarantee that they all exceed 4.  With
this value of DLm, we must decrease V from 4 by the amount 7.5-4 =
3.5, i.e. we cannot make V larger than 4-3.5 = 0.5. With this value, P
is determined by the second of the long-path constraints to be
24.5-0.5 = 24.

6.50.  If the D1-signal arrives early, then the delay through the
       L1-latch is D1CQM.  In the worst case, the leading edge of C1
       is late by T1L.  The C2-trailing edge may be early by T2T, and
       the D2-input must be setup S2 prior to the actual trailing
       edge.  Hence, relative to the nominal leading edge of C1, the
       arrival time at the D2-input must occur no later than
       T1L+D1CQM+T2T+S2.  The time available for this is the distance
       between the nominal leading edge of C1 and the nominal trailing
       edge of C2, which, as can be seen from Fig. 6.55b, is W1+W2-V.

       Thus we have the constraint: W1+W2-V>T1L+D1CQM+T2T+S2 or:
       W1+W2>V+T1L+D1CQM+T2T+S2.

NT1.
INPUT:   A   A   B   B   C   B   B   B   A   D
STATE: 1   2   3   4   1   3   4   1   -   1
OUTPUT:  0   0   1   1   -   1   1   1   -   1

NT2.  0 1 - - 1 1 0 1 -
      0 - 1 - 1 1 - 1 1
      - 1 1 0 - - - 1 -
      -----------------
Cover:0 1 1 0 1 1 0 1 1   (Cover has a 0 where at least one of the
      sequences has a 0 and a 1 where at least one of them has a 1.
      In any position where all had dashes--none in this example--
      then there would be a dash in the covering sequence)
...........................
HW #3 1/30/02 Async 2/(2-5, 7, 11, 12)
2.2.
As shown below, neither of the two tables resulting when the don't
care is set at 0 and at 1, respectively, are reducible.
                     X                       X
                  0    1                  0    1
                ----------              ----------
            1  | 1,0   2,0          1  | 1,1   2,0
            2  | 3,0   1,0          2  | 3,0   1,0
            3  | 2,1   1,0          3  | 2,1   1,0

But, applying the methods discussed in class, it is easy to see that,
in the original table, 1 ~ 2, and 1 ~ 3, and that the pairs 12 and 13
imply only one another, so that {12, 13} constitutes a closed
covering, which corresponds to the reduced table shown below.

               X
            0     1
         -----------
(12)  1 |  2,0   1,0
(13)  2 |  1,1   1,0
 
Note that, if we start the reduced table in state 1 (which covers
row-1 of the original table), the output generated by the input
sequence, 0 0 0 0 0 0 ... is 0 1 0 1 0 1...    For the original table,
starting in row-1, the same sequence yields, - - - - - - ...  So this
is an example of a case where the same don't care entry in the
original table is, in the reduced table, specified sometimes as a 0
and sometimes as a 1.
 
2.3. Starting in column-6 and moving leftward, the evolving (vertical)
     list of compatibles is as follows, the rightmost list being the
     maximum compatibles (MC's).

67    56    56    56    56    56
      67    67    67    67    167
            45    45    45    45
            47    347   347   347
                        234   234
                        26    124
                              126
                              147

2.4. For this fully specified table, the MC's are found, using a pair
     chart, to be, {156, 27, 3, 4}.  Note that, as is the case for any
     fully specified table, the MC's are disjoint, and together they
     constitute a minimal closed covering of the given table.  The
     reduced table which not only COVERS but IS EQUIVALENT TO the
     given table is:

                     X1X2
            00     01    11    10
          -----------------------
(156)  1  | 2,0   3,0   1,0   2,0
(27)   2  | 2,0   1,0   4,0   1,0
(3)    3  | 3,0   2,0   3,0   1,0
(4)    4  | 3,0   2,0   1,0   1,1
 
2.5.  The final pair chart is:

     1
------------   
23, 45     |    2
           |
----------------------
   XX      |      12   |  3
           |           |
-----------------------------
   XX      |      12   |  XX |  4
           |           |     |
-------------------------------------
   23, 34  |   35      | XX  |12    |   5   The MC's are {45,23, 24, 12}
    XX     |  XX       |     |      |
--------------------------------------
 
The pairwise implication graph is:  24-->12<-->23
                                          ^
                                          |
                                          v
                                          45

It is easy to see that the minimal closed covering is {12, 23, 45},
since all these are implied if we use any pairwise compatible, they
constitute a closed covering, and they don't imply anything not
included in a member of the set.  The resulting minimal covering table
is:

                   X
               0      1
             ------------
   (12)  1  | 2,00   3,--
   (23)  2  | 1,01   3,10
   (45)  2  | 1,11   2,11
 
2.7.  The MC's for this problem are (0 is used for row-10) are: 
{89, 3580, 780, 470, 169, 560, 340, 258, 156}
 
The pairwise implication graph is:

                   40-->38
          58   19        ^
          ^     |        |
          |     v        v
69-->16-->47-->60-->34-->28-->70-->35    89-->80-->30    15    25
          |
          v        
          78-->50  

We might use the pair chart to guide us as follows: At the end of a
chain of implications involving most of the pairs, are (from the end)
35, 70, 28, 38.  We can combine 35 and 38 without introducing
additional implications requiring more pairs.  Doing this and adding
singleton compatibles to cover the rows not covered by any of these
pairs, gives us the 7-member closed covering: {358, 70, 28, 1, 4, 6,
9}.  Looking at the graph again, we can see that, while 169 is an MC,
combining 1, 6, and 9, the 69 pair would require us to add useless
pairs, 47, 78, 50, which would result in a net INCREASE in the number
of compatibles needed.  On the other hand, we could combine 1 and 9,
provided we enlarge 6 to 60, and 4 to 34.  This gives us the 6-member
closed set, {358, 70, 28, 19, 34, 60}.  Examining the set of MC's
makes it clear that none of the members can be combined.  (Enlarging
358 to 3580 is possible, but this would not reduce the number of
members in the covering set.)  Exploring other possibilities does not
seem to lead to any promising alternative approaches.
 
The resulting reduced flow table is  (entries a/b mean that either a
or b is acceptable; a type of restricted don't care, that can
sometimes be exploited to simplify logic):

                    X1X2
             00   01    11   10
          -----------------------
(19)   1 |  5,-   1,-   3,-   6,-
(28)   2 |  4,-   2,1   -,1   6,0
(34)   3 |  2,-   6,-   3,0   2/4,0
(358)  4 |  2,-   6,1   1,1   5/6,-
(60)   5 |  -,0   5,0   -,-   3/4,1
(70)   6 |  6,0   5,1   3,-   4,-
 
2.11.
(a) This problem can be solved by using a process analogous to
determining if a state p is COMPATIBLE with a state q, replacing the
relation of compatibility with that of coverage.  The ideas of output
incompatibility and of implication have analogies with respect to
coverage.

If table a covers table b, then at least one row of a must
cover row 1 of b (call row 1 of b, 1b, etc.).  Suppose 1a covers 1b
(we will write this as 1a > 1b).  Then, for any input sequence S
applied to 1b, the resulting output sequence must be covered by the
output sequence resulting from S being applied to 1a.  But, if we
apply the sequence consisting of just B, the output from 1b is 0, and
that from 1a is -, so there is no coverage, and we see at once that 1a
does NOT cover 1b.  Looking at the output patterns, --0 for 1a and -00
from 1b, we can say that the coverage failure is evident from the fact
that the output pattern for 1a does not cover that from 1b (analogous
to output incompatibility).  Similarly, we can see that 3a does not
cover 1b (because of the output entries for input B).  The output
pattern for 2a DOES cover that for 1b.  Inspection of the flow tables
indicate that 2a and 1b being compatible implies (under input C) that
1a is compatible with 1b.  It is ALSO true that 2a COVERING row 1b
implies that 1a COVERS row 1b.  Since we have already seen that 1a
does NOT cover 1b, it follows that 2a does not cover 1b.  Therefore,
since NO row of table a covers 1b, it follows that table a does NOT
cover table b.

(b) Using the same process, we now try to find a row of b that covers
1a.  None of the rows of b can be eliminated immediately on the basis
of output patterns, since the output pattern of every row of b covers
that of 1a.  We must determine, for each row of b whether its coverage
of 1a implies (perhaps indirectly) some other coverage relation that
is false because of outputs.  Note that under input B, 1b > 1a implies
2b > 2a.  Since under input B, the outputs for 2a and 2b are specified
differently, clearly 2b does not cover 2a and so 1b does not cover
1a.  Now note that 2b > 1a implies (under A) that 3b > 3a.  This too
is not true on the basis of the output patterns, so it follows that 2b
does not cover 1a.  Finally, we can see that 3b > 1a implies (under
input B) 3b > 2a.  Since the output pattern of 3b does not cover that
of 2a, it follows that 3b does not cover 1a.  So we can conclude that
table b does NOT cover table a.
 
2.12.  To find a minimal table covering BOTH a and b, we can treat
       them both as a single flow table (NOT connected) and then find
       a minimal table covering this united table.  In order to do
       this we must rename the rows of one of the tables.  We will do
       this by adding 3 to the number of each row of table b.  This
       gives us the united table below (where the bottom 3 rows
       correspond to table b), which we then proceed to reduce:
 
         A    B     C
       ---------------
   1  | 2,-   -,-   1,0
   2  | 1,1   3,1   2,0
   3  | 2,-   1,0   1,0
   4  | 5,1   5,1   4,0
   5  | 4,-   5,-   6,0
   6  | 4,-   4,0   6,0
 
The MC's are {135, 24, 12, 16} and the implication graph is shown
below.  Notice that certain arcs are omitted from the graph.  For
example, 15 implies 24, but we do delete the arc from 15 to 34 because
it is sufficient that there is a path from 15 to 24 thru 16.  That is,
since 15 -> 16 and 16 ->24, 15 -> 24 follows from transitivity so it
need not be shown explicitly.
 
        15-->16-->24-->13
         ^              |
         |              v     12
         ---------------35
 
In order to do better than 5 rows, we must choose all the pairs in the
closed loop, plus 13.   This gives us {15, 16, 24, 35, 13}.  We can
combine three of these to obtain the minimal closed cover, {135, 16,
24} which gives us the table below.  Note that 4 = 1b, 5 = 2b, and 6 =
3b.
 
                     A      B     C
                  ------------------
(1a, 3a, 2b)    1 |  3,-   1,0   2,0
(1a, 3b)        2 |  3,-   3,0   2,0
(2a, 1b)        3 |  1,1   1,1   3,0
 
You might wish to apply the method used to solve problem 2.11 to
verify that this table does indeed cover tables a and b.

................

Return to CS6831 Web Page