Asynchronous Circuit Design: Errata

  • In Figure 1.4, req-wine should read req_wine.
  • Page 14, in Fig 1.12, outputs in the AFSM between states 0 and 1 should be 00.
  • Page 15, in Fig 1.13, bottom of third K-map should be a capital X.
  • Page 16, first line should end in a period.
  • Page 33, winery7 process, actually it loops until the last bottle of wine is merlot, and send the next one to the new shop.
  • Page 37, table 2.2, the opcode for jump, should be 2.
  • Page 41, the j M instruction should be X”08000005″.
  • Page 43, the case for jump should be ‘when “000010” => — j’.
  • Page 52, +13 lines, “write_back process”, change to, “writeback process”.
  • Page 56, problem 2.8, Change “They shift {\em rs} by the amount in {\em rt} and store the result in {\em rd}.” to “They shift {\em rt} by the amount specified in the 5-bit {\em shamt} field and store the result in {\em rd}.”
  • Page 60, assert ((s1 /= v1) or (s2 /= v2)) should be an “and” not “or”.
  • Page 64, minus 4 lines in text, change 5 ns to 5 minutes.
  • Page 67, minus 2 lines in first paragraph of 3.6, change 8 wires to 9 wires.
  • Page 72, comment call winery should be call shop, twice on page.
  • Page 79, in Fig 3.15, acq should be ack.
  • Page 80, minus 2 lines, “tolerent”, change to, “tolerant”.
  • Page 84, problem 3.13, there should not be end if after end loop. And, the “!=” should be “/=”.
  • Page 93, Ex4.2.6, +8 lines, “ack_wine = ‘0’” should be “ack_wine,’0′”
  • Page 94, Figure 4.7, in flow table row s3, all entries with next state of s3 should have output of 00.
  • Page 97, in states s4 and s5, outputs that are 010 should be 001 and in state s3, outputs in columns 0000 and 0001 should be 000. Also, s5 entries in s4 row should be moved above s5 entries in s5 row.
  • Page 98, change b to b+ in “…b is not a compulsory transition…”
  • Page 98, minus 2 lines, “the conditional” change to “the l conditional”.
  • Page 105 (and 114), if Te is empty, algoritms should report a deadlock.
  • Page 108, Ex. 4.3.8, +4 lines, “…pair of wine bottles until both …” should be “…bottle of wine until a…”.
  • Page 108, minus 9 lines, Figure 4.20(a) should be 4.20(b).
  • Page 113, minus 2 lines, change unique state assignment to unique state code.
  • Page 114, the line \delta = \delta \cup \{(M,t,M’)\} should come before the if statement just above it.
  • Page 118, minus 14 lines, insert after “… u time units” the following “A rule can {\em fire} at any time after it becomes satisfied, and it must fire before it becomes expired. Excluding conflicts, an event occurs after every rule enabling it has fired. In other words, an event cannot occur …”
  • Page 133, note that w_i should be greater than or equal to 1.
  • Page 137, “…any row with complemented variable is dependent on any other clause, so we must ignore these rows.” -> “…any row with complemented variable is likely dependent on any other clause, so we may ignore these rows.”
  • Page 143, plus 5 lines, double are.
  • Page 143, last line should change to finding -> to find.
  • Page 144, minus 4 lines, subset -> superset
  • Page 146, minus 12 lines, p is set equal to {abde} -> p is set equal to abde
  • Page 147, minus 7 lines, dh is also skipped
  • Page 157, Ex. 5.3.3, less than -> greater than
  • Page 158, “A row Ri covers another row Rj if Ri includes Rj or the complement of Rj” should read “if Rj includes Ri or the complement of Ri”
  • Page 158, minus 6 lines, “row 5 and and row 6”, change to “row 5 and row6”.
  • Page 162, Fig 5.20, row 111, column x4, entry should be 101,1
  • Page 165, Fig 5.23, row 11, column x4, entry should e 10,1
  • Page 170, Fig. 5.26(b), second AND gate should be xz not xy.
  • Page 171, Ex. 5.4.6, constraint matrix should have two more lines:
    • xy’z’ – 1 1 – –
    • xyz 1 – – – –
  • Page 173, Section 5.5.3, input(s) -> input
  • Page 175, end point of 0->1 transition may actually give a set of required cubes
  • Page 177, Ex. 5.5.6, required cubes for Y should be b’x’y and a’x’y.
  • Page 177, Ex. 5.5.6, “priveledged” -> “priveleged”.
  • Page 179, Ex. 5.5.11, “priveledged” -> “priveleged”.
  • Page 179, Ex. 5.5.11, required cube for c and X should be a not ab.
  • Page 180, Ex. 5.5.12 and Fig 5.33, swap X and x and also swap Y and y
  • Page 182, the two item 1’s on this page have an m_4 which should be c_4.
  • Page 182, two times, “another transition” -> “for each transition”
  • Page 185, Ex. 5.5.18, fifth line, cs(f(a,b,c,0)) -> cs(f(a,b,0,d))
  • Page 193, Fig. 5.45(a), r_00, r_01, r_10, and r_11 should not have an overline.
  • Page 190, Ex. 5.7.1, third equation should end with c(a’ + bd)
  • Page 202, Fig 5.52, in column 00, change 4,1 to 4,0 and 1,1 to 1,0.
  • Page 202, Prob 5.9.8, prime implicants should be dhf-prime implicants.
  • Page 203, Prob 5.10.8, prime implicants should be dhf-prime implicants.
  • Page 206, probs 5.17, 18, 19, and 20, Figure 5.41 should be 5.42.
  • Page 218, 2^|T|^4 should be 2^4|T|.
  • Page 227, minus 3 and 10 lines, “(ES(u” => “ES(u”.
  • Page 228, minus 2 lines, first terminal -> second terminal AND remove “an inverter,”
  • Page 232, +3 and +8 lines, “(ER(u” => “ER(u”.
  • Page 232, defn of IS(c), s_i should not be in ER(u*,k) either.
  • Page 233, Ex. 6.3.6, minus 2 lines, change 0F10 to 0110
  • Page 234, Ex. 6.3.6, 1-10 and -110 should also be candidate implicants.
  • Page 235, Ex. 6.3.8, the implied state for c1 should be F110.
  • Page 236, fig 6.16, removing the inverter and bubble on C-element from the b input is okay.
  • Page 236, Ex. 6.3.9, add two columns labeled 1-10 and -110 and two rows labeled 6 and 7, row 6 is (-,-,1,-,1,-,-,1,0,-), row 7 is (-,-,1,-,1,-,-,1,-,0), column 1-10 is (-,1,-,-,-,0,-), column -110 is (-,1,-,-,-,-,0). After removing rows 3, 4, and 5, rows 6 and 7 become essential. Therefore, rows 6 and 7 are removed with columns 1-10 and -110.
  • Page 237, s’ in the entrance condition should be s_j.
  • Page 240-1, in examples 6.3.12, 13, and 14, could use EC instead of ER.
  • Page 241, definitions for EV(u+,k) and EV(u-,k) should each end with a “}”.
  • Page 243, Section 6.3.4 -> Section 6.3
  • Page 245, middle of page, [1000] should be [1R00].
  • Page 245, minus 4 lines, remove sentence, “If, instead, we use c-…” and replace with “We can use c- as an end set. In this case, however, the signal e must now be an input to the reset logic for c. This fork in the e wire is known as an {\em acknowledgment wire fork}.”
  • Page 246, plus 23 lines, “any transitions” should be “any transition”.
  • Page 248, note that using the transition point ({req_wine-},{CSC0+}) requires a more sophisticated coloring procedure than the one presented in this chapter.
  • Page 251, problem 6.2, all signals are outputs.
  • Page 261, last line, 2.78 should be 1.78.
  • Page 265, “…fractional components are not necessary.” Note this may not be true when doing CTL model checking though for synthesis and trace theoretic verification, this is true.
  • Page 269, change recanonicalization to recanonicalize.
  • Page 270, line 16, t0 – tj > -lj should be t0 – tj <= -lj.
  • Page 272, minus 7 lines, change “eliminate the columns” to “eliminate the row and column”.
  • Page 276, minus 10 lines, “t2 is no more than 3” should be t1.
  • Page 282, “directly precedes e_j” should be “f_j”. To minimize confusion, p_ji should be changed to P(f_j,e_i) and set equal to -l_i (or infinity) and p_ij to P(e_i,f_j) and set equal to u_i or infinity.
  • Page 290, Fig. 7.34, arc between ack_patron+ and ack_patron- should be labeled with [~req_patron].
  • Page 297, “f W g = (f U g V” -> “f W g = (f U g) V”.
  • Page 298, “Second, we mark each predecessor of a state marked as satisfying fUg that also satisfies f as satisfying fUg.” should be “Second, we mark each state satisfying f as satisfying fUg if all successors of this state satisfy fUg.” Note also that this algorithm is simplified and does not work correctly for all LTL formulas. It is only guaranteed to be exact for those LTL formulas that are equivalent to CTL formulas.
  • Page 304, A is the set of possible signals (not events), i.e. I union O.
  • Page 305, “It is considered a failure when it is a failure in either of the original circuits” add “and a possible trace in both.”.
  • Page 333, minus 2 lines, there is a missing reference to Roncken’s 1999 Proceedings of the IEEE article.
  • Page 335, note that in the equations, we assume all errors as failures.
  • Page 336, Eqn. 9.9, should read t_a’ = t_a + n(T – t_pd).
  • Page 338, GALS paragraph, change “asynchronous module” to “another module” and “asynchronous modules” to “other modules”.
  • Page 361, “(A-B)U(B-1)” => “(X-Y)U(Y-X)”.
  • Page 363, Ex. B.2.3., rho should include <5,3> also.

    Report an error in the book.