stimuli_proc : process
file F : text; variable L: line; variable status : file_open_status; variable data : integer; variable nb_samples : natural := 0; begin report "n (window size) = " & integer'image(n); report "sample_width = " & integer'image(sample_width); report "output_width = " & integer'image(output_width); FILE_OPEN(status,F,"samples.txt",read_mode); if status/=open_ok then report "problem to open stimulus file samples.text" severity error; else sample <= to_signed(0,sample_width); sample_valid <= '0'; wait until reset_n='1'; report "size of moving average : " & integer'image(n); report "starting samples..."; while not(ENDFILE(f)) loop nb_samples:=nb_samples+1; wait until rising_edge(clk); readline(F,l); read(l,data); sample <= to_signed(data,sample_width); sample_valid <= '1'; end loop; sample_valid <= '0'; report "end of simulation"; report integer'image(nb_samples) & " samples processed."; end if; running <= false; wait; end process;