The Student's Guide to VHDL, 2nd Edition

Peter J. Ashenden


Errata

If you detect an error that is not on the list below, I would be pleased to hear about it. You can send email to me at vhdl-book@ashenden.com.au. Thanks.

Corrections to the first printing

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.