Peter J. Ashenden
Page 20: In the VHDL-2002 call-out at the bottom of the page, delete assert from the list of identifiers that are not used as reserved words in VHDL-2002.
Page 50: In the first and second if statements on the page, replace cs2 with ncs2.
Page 92: In the assertion statement two-thirds down the page, replace expdata with expected_data. Also, delete the spurious closing parenthesis at the end of the assertion statement.
Page 103: In the assignment statement, change int_en to int_enable.
Page 113: In Example 4.5, in the architecture, insert a line containing the reserved word begin immediately after the first line of the architecture.
Page 114: In the entity instantiation at the top of the page, insert "work." before the entity name sample_processor.
Page 114: On the last line, change the two occurrences of typographers (curly) quotation marks to straight quotation marks.
Page 119: Change the expressions near the top of the page to
minimum(string'(B"0001"), string'(B"0110")) = B"0001" maximum(string'(B"001000"), string'(B"10")) = B"10"
Page 120: In the declaration of signal x, change the reserved word signal to boldface.
Page 123: In the sixth line of the second paragraph, insert the following immediately before the sentence starting "On the other hand":
In this case, for each dimension at that level of the hierarchy, the array being converted must a matching element for each target index value.
Page 125: In the case statement near the top of the page, insert when before each of the two choice expressions.
Page 146: Add a semicolon to the end of the next-to-last line on the page:
q <= (others => '0');
Page 147: In the assignment to req near the top of the page, change next_random_delay(ran_seed) to next_random_delay.
Pages 147-148: In the case statement that crosses the page turn, add arrows (=>) after the second, third, and fourth choices:
case d_sel is when "00" => q <= source0; when "01" => q <= source1; when "10" => q <= source2; when "11" => q <= source3; end case;
Page 148: The paragraph starting "This form of signal assignment ..." and the process next_state_logic that follows should be moved to page 147 and inserted immediately before the paragraph starting "The waveforms in a conditional signal assignment..." near the top of the page. Also, in the process next_state_logic, change "with current_state select" to "case current_state is" and insert when before each of the two choice expressions.
Page 149: In the case statement running over from the previous page, change the two occurrences of "grant =>" to "grant <=".
Page 165: In the last line of the process in Example 5.12, change next_state to next_state_logic.
Page 175: In the code in Example 5.20, add the concatenation operator (&) to the end of the line containing the reserved word report, as follows:
report "Incorrect use of S_R_flip_flop: " &
Page 223: In Example 6.14, change the name of the procedure from swap_bv_arrays to swap.
Page 384: In Example 12.9, change the parameter in the call to procedure push from pending_stacks to pending_vertices.