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. ................