entity fg_18_02_a is end entity fg_18_02_a; architecture writer of fg_18_02_a is begin process is type packet_file is file of bit_vector; file stimulus_file : packet_file open write_mode is "test packets"; begin write(stimulus_file, X"6C"); write(stimulus_file, X"05"); write(stimulus_file, X"3"); wait; end process; end architecture writer; entity fg_18_02 is end entity fg_18_02; architecture test of fg_18_02 is signal stimulus_network, stimulus_clock : bit; begin clock_gen : stimulus_clock <= not stimulus_clock after 10 ns; -- code from book stimulate_network : process is type packet_file is file of bit_vector; file stimulus_file : packet_file open read_mode is "test packets"; -- variable packet : bit_vector(1 to 2048); -- not in book (for testing only) variable packet : bit_vector(1 to 8); -- end not in book variable packet_length : natural; begin while not endfile(stimulus_file) loop read(stimulus_file, packet, packet_length); if packet_length > packet'length then report "stimulus packet too long - ignored" severity warning; else for bit_index in 1 to packet_length loop wait until stimulus_clock = '1'; stimulus_network <= not stimulus_network; wait until stimulus_clock = '0'; stimulus_network <= stimulus_network xor packet(bit_index); end loop; end if; end loop; wait; -- end of stimulation: wait forever end process stimulate_network; -- code from book 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 /> </div>