Page B-21 3 lines from the bottom, "specifies a variable register file that ..." should be "specifies a variable registerfile that ..." and registerfile should be in the monospaced font.
Page B-22 second bullet item from the top of the page, "z, representing unkown, ..." should be "x, representing unknown, ..."
The top part of Fig. B.6.2 on page B-42 has an extra wrench handle in the middle.
Figure B.9.3 page B-61 The caption has a Yen sign where there should be an x, as in "4 x 2 SRAM"
Figure B.9.4 on the page following Figure B.9.3 also has a Yen sign instead of a x in the caption (should be "4M x 8 SRAM"). And the page number at the bottom of the page, "(page 62)" should be "(page B-62)".
Test Yourself on the bottom of Page B-22. Item 4 is "{{4{1'b1}},{4{1'b1}}}" but should be "{{4{1'b1}},{4{1'b0}}}"
Figure 5.26 is missing the line connecting the Memory Data Register to the Mux controlled by MemtoReg.
Figure 5.24 the output of the AND gate should go to the Mux to the left of the one shown.
Page 351 "as we saw earlier in the Fallacies and Pitfalls (see page 350)" is a self-reference.
Figure B.5.1.3 The caption says "three ALU control lines" but there are 4, and they are not labeled.
Page 302 The last line refers to the 3-bit ALU control instead of 4-bit.
Page 318 Check Yourself. "Look at the control signal ..." should be "Look at the control signals ..." or "Look at the truth table ..."
Page 290 "sequential because their outputs depend on both their inputs and the contents of the internal state." This doesn't say anything about why they are called 'sequential,' even though the statement about sequential circuits is correct. Two fixes are (1) just to use the phrase about outputs depending on both inputs and state as the definition of sequential without saying why or (2) to explain that they are called sequential because the present state depends on the sequence of inputs instead of the current combination of input values ... which would also explain why combinational circuits are called "combinational."
Page 166, last two lines above "Negative Shortcut:" There should be a bar over the second X in the first two equations, and over the first X in the last one.
Page 168: Refers to material "on the back end papers of this book" instead of "on the green card in the front of this book."
Page 168 Check Yourself: Choice 2 should be "ASCII string in C" with "string" in normal text font. Explanation: There is no string type in C, and wide strings can use 2 bytes per character. And choice 3 should use a capital S in the name of Java's "String" type.
Page 172 Figure 3.3: The >= symbols in the first two columns should all be > because you can't get overflow if one operand is zero.
Page 182 Fig 3.9 and its descripton on page 181, "Faster multiplier." You need 31 adders, not 32, and Product0 is the rightmost bit of Mplier0.Mcand. What is labeled Product0 is actually Product1. And the leftmost input to the 31st (bottom) adder is Multiplier31.Mcand, not Multiplier3.Mcand.
Page 197 line 7: "... as noted in section ." is missing the section number, possibly because the reference is to the current section, Section 3.6.
Page 197: Current IBM mainframes support both hex and IEEE-754 floating-point formats.
Page 209: Period missing at the end of the last sentence of the second paragraph.
Page 217: Section 3.7, missing information: The IEEE-754 standard was developed by Intel and the Intel 8087 "numeric co-processor," introduced in 1980, was its first implementation in hardware.