Thanks.
02 01 00 99 98 5 4 3 2 1indicates the first printing (in 1998).
From: Graham Minchin <gtminch@tartarus.uwa.edu.au>
On page 43, Figure 2-4: the line from "record types" to "constrained array types" should be from "array types" to "constrained array types."
From: Neil Boroky at The University of Adelaide
In Figure 5-10 on page 120: the labelling of the fourth and fifth delta cycles should be "0 + 3 delta" and "0 + 4 delta" respectively.
From: John A. Rupf, Ph.D. <jrupf@spsu.edu>
On page 34: In the EBNF syntax rules for floating_type_definition and physical_type_definition, replace the character "~" with the symbol "<="' (the "is defined to be" symbol).
On page 35: In the type definition for length, the correct number of um per mil is 25.4. However, VHDL requires the multiple in a secondary units definition to be an integer. Thus we cannot change 254 um to 25.4 um in this context. Instead, change the type declaration to the following:
type length is range 0 to 1E9
units
um;
-- primary unit: micron
mm = 1000 um;
-- metric units
m = 1000 mm;
inch = 25400 um;
-- imperial units
foot = 12 inch;
end units length;
Also, in the examples of physical literals at the bottom of page 35, delete "450 mil", and insert "2 foot" at the end of the line.
From: Todd Salter <ra1700@email.sps.mot.com>
In Exercise 11 on page 79: The problem statement requires you to develop a model with an input of an enumeration type. This requires an entity declaration with an input port of the enumeration type. The only way an enumeration type can be made visible at the point of a port declaration is to declare the enumeration type in a package. However, packages are not introduced until a later chapter.
To avoid this difficulty, change the problem statement as follows:
Develop a model for a floating-point arithmetic unit with data inputs x and y, data output z and function code inputs f1 and f0 of type bit. Function codes f1 = '0' and f0 = '0' produce addition; f1 = '0' and f0 = '1' produce subtraction of y from x; f1 = '1' and f0 = '0' produce multiplication; and f1 = '1' and f0 = '1' produce division of x by y.
In the solution to Exercise 3 on page 294: The exit statement should exit from all of the nested loops. Label the outermost loop with the label "search_loop", and change the exit statement to refer to this label. The corrected code is:
...
search_loop : for side in 0 to
1 loop
for track in
0 to 79 loop
for sector in 0 to 17 loop
if ... then
...
exit search_loop;
...