entity ch_09_01 is

end entity ch_09_01;


----------------------------------------------------------------


architecture test of ch_09_01 is
begin


  process_09_1_a : process is

    -- code from book:

    type register_array is array (0 to 15) of bit_vector(31 downto 0);

    type register_set is record
        general_purpose_registers : register_array;
        program_counter : bit_vector(31 downto 0);
        program_status : bit_vector(31 downto 0);
      end record;

    variable CPU_registers : register_set;

    -- code revised to work around MTI bugs mt015 and mt016
    -- alias PSW is CPU_registers.program_status;
    -- alias PC is CPU_registers.program_counter;
    -- alias GPR is CPU_registers.general_purpose_registers;

    alias PSW : bit_vector(31 downto 0) is CPU_registers.program_status;
    alias PC : bit_vector(31 downto 0) is CPU_registers.program_counter;
    alias GPR : register_array is CPU_registers.general_purpose_registers;

    -- alias SP is CPU_registers.general_purpose_registers(15);

    alias SP : bit_vector(31 downto 0) is CPU_registers.general_purpose_registers(15);

    -- alias interrupt_level is PSW(30 downto 26);

    alias interrupt_level : bit_vector(30 downto 26) is PSW(30 downto 26);

    -- end revision

    -- end of code from book

    procedure procedure_09_1_b is

      -- code from book:

      -- code revised to work around MTI bug mt016
      -- alias SP is GPR(15);

      alias SP : bit_vector(31 downto 0) is GPR(15);

      -- end revision

      alias interrupt_level : bit_vector(4 downto 0) is PSW(30 downto 26);

      -- end of code from book

    begin
    end procedure procedure_09_1_b;

  begin
    wait;
  end process process_09_1_a;


end architecture test;

<div align="center"><br /><script type="text/javascript"><!--
google_ad_client = "pub-7293844627074885";
//468x60, Created at 07. 11. 25
google_ad_slot = "8619794253";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />&nbsp;</div>