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 if statement on the page, replace cs2 with ncs2.
Page 91: In the assertion statement near the top of 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 112: In Example 4.5, in the architecture, insert a line containing the reserved word begin immediately after the first line of the architecture.
Page 113: In the entity instantiation near the bottom of the page, insert "work." before the entity name sample_processor.
Page 114: On the line immediately preceeding Example 4.6, change the two occurrences of typographers (curly) quotation marks to straight quotation marks.
Page 118: Change the expressions at the bottom 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 first 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 124: In the case statement at the bottom of the page, insert when before each of the two choice expressions.
Page 144: Add a semicolon to the end of the assignment near the bottom of the page:
q <= (others => '0');
Page 145: In the assignment to req near the top of the page, change next_random_delay(ran_seed) to next_random_delay.
Page 145: In the case statement at the bottom of the page, 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 144 and inserted immediately before the paragraph starting "The waveforms in a conditional signal assignment..." near the bottom 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 146: In the case statement at the bottom of the page, change the two occurrences of "grant =>" to "grant <=".
Page 163: In the last line of the process in Example 5.12, change next_state to next_state_logic.
Page 173: 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 217: In Example 6.14, change the name of the procedure from swap_bv_arrays to swap.