Home Contents Corrections Examples Resources Editions Author

Page 9. The following sentence is incorrect: "Note that in a NAND gate all the PMOS transistors must have a logic 0 at their gates for the output to go high." This is correct: "Note that in a NAND gate one or more PMOS transistors must have a logic 0 at their gates for the output to go high."

Page 100. The process at the foot of the page has a sensitivity list and a wait statement. This is incorrect. The sensitivity list should be removed. Also, the wait statement is missing a semicolon. Both these errors are corrected in the downloadable examples.

VHDL 2002
At the time the book was published, there were no VHDL 2002 compliant compilers available. Therefore it was not possible to fully check the VHDL 2002 code that uses protected types on pages 292-3 and 333-336. ModelSim 6.0 was released in August 2004 and includes VHDL 2002 support. I have now checked these examples using that compiler and, inevitably, have found some errors.

Page 292. The package declaration should include the function declaration for negexp - see page 337. Note also that on pages 293 and 338 the function body for negexp should also be declared as impure.
The function rand is declared twice: in the package header and in the protected type declaration. This second declaration is incorrect and should be removed.
The procedure set_seed should, however, be declared in the protected type
Page 293. The closing line of the protected body definition should read:
end protected body pseed;

Page 335. Line 6. There should be a comma following the second FALSE, i.e.:
FALSE,  FALSE,

These mistakes are corrected in the downloadable examples.

Corrections to the 1st edition (1st and 2nd UK printings) are available here.

Corrections to the Chinese translation of the 2nd edition are here.