library IEEE; use IEEE.std_logic_1164.all; Use IEEE.std_logic_unsigned.all; Use ieee.std_logic_textio.all; Use std.textio.all; use work.MULT; entity TEST is end TEST; architecture RTL of TEST is component MULT port( A,B : in std_logic_vector(63 downto 0); C : out std_logic_vector(63 downto 0) ); end component; signal A,B,C : std_logic_vector(63 downto 0); begin la1: MULT port map (A,B,C); process file input_file : text open read_mode is "testdata.txt"; file output_file : text open write_mode is "result.txt" ; variable input_line : line; variable output_line : line; variable temp_int : integer; variable var : std_logic_vector(63 downto 0); begin while ( not ENDFILE(input_file) ) loop readline(input_file,input_line); hread(input_line,var); A <= var; readline(input_file,input_line); hread(input_line,var); B <= var; wait for 10 ns; var := A; write(output_line,"A =",right,3); write(output_line,var(63),right,2); temp_int := CONV_INTEGER(var(62 downto 52)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(51 downto 50)); write(output_line,temp_int,right,2); temp_int := CONV_INTEGER(var(49 downto 40)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(39 downto 30)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(29 downto 20)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(19 downto 10)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var( 9 downto 0)); write(output_line,temp_int,right,5); writeline(output_file,output_line); var := B; write(output_line,"B =",right,3); write(output_line,var(63),right,2); temp_int := CONV_INTEGER(var(62 downto 52)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(51 downto 50)); write(output_line,temp_int,right,2); temp_int := CONV_INTEGER(var(49 downto 40)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(39 downto 30)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(29 downto 20)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(19 downto 10)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var( 9 downto 0)); write(output_line,temp_int,right,5); writeline(output_file,output_line); var := C; write(output_line,"C =",right,3); write(output_line,var(63),right,2); temp_int := CONV_INTEGER(var(62 downto 52)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(51 downto 50)); write(output_line,temp_int,right,2); temp_int := CONV_INTEGER(var(49 downto 40)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(39 downto 30)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(29 downto 20)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var(19 downto 10)); write(output_line,temp_int,right,5); temp_int := CONV_INTEGER(var( 9 downto 0)); write(output_line,temp_int,right,5); writeline(output_file,output_line); end loop; wait; end process; end RTL;