OpenCores
URL https://opencores.org/ocsvn/mini_aes/mini_aes/trunk

Subversion Repositories mini_aes

[/] [mini_aes/] [trunk/] [bench/] [output.vhdl] - Diff between revs 2 and 7

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 7
Line 1... Line 1...
-- $Id: output.vhdl,v 1.1.1.1 2005-12-06 02:47:47 arif_endro Exp $
-- $Id: output.vhdl,v 1.2 2005-12-23 04:27:00 arif_endro Exp $
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Title       : Output
-- Title       : Output
-- Project     : Mini AES 128 
-- Project     : Mini AES 128 
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- File        : output.vhdl
-- File        : output.vhdl
Line 46... Line 46...
use std.textio.all;
use std.textio.all;
 
 
entity output is
entity output is
  port (
  port (
    clock          : in std_logic;
    clock          : in std_logic;
 
    clear          : in std_logic;
 
    load           : in std_logic;
    enc            : in std_logic;
    enc            : in std_logic;
    done           : in std_logic;
    done           : in std_logic;
    test_iteration : in integer;
    test_iteration : in integer;
    verifier       : in std_logic_vector (127 downto 000);
    verifier       : in std_logic_vector (007 downto 000);
    data_o         : in std_logic_vector (127 downto 000)
    data_o         : in std_logic_vector (007 downto 000)
    );
    );
end output;
end output;
 
 
architecture test_bench of output is
architecture test_bench of output is
 
 
  file out_enc_file_ptr : text open write_mode is "ecb_tbl_result_enc.txt";
  file out_enc_file_ptr : text open write_mode is "ecb_tbl_result_enc.txt";
  file out_dec_file_ptr : text open write_mode is "ecb_tbl_result_dec.txt";
  file out_dec_file_ptr : text open write_mode is "ecb_tbl_result_dec.txt";
  signal failed         : integer := 0;
  signal failed         : integer := 0;
  signal passed         : integer := 0;
  signal passed         : integer := 0;
 
 
 
  type fifo16x8 is array (0 to 15) of std_logic_vector (7 downto 0);
 
 
 
  signal fifo_verifier : fifo16x8 :=
 
  (
 
   B"0000_0000", B"0000_0000", B"0000_0000", B"0000_0000",
 
   B"0000_0000", B"0000_0000", B"0000_0000", B"0000_0000",
 
   B"0000_0000", B"0000_0000", B"0000_0000", B"0000_0000",
 
   B"0000_0000", B"0000_0000", B"0000_0000", B"0000_0000"
 
  );
 
 
 
  signal counter : integer range 0 to 15 := 0;
 
  signal current_verifier : std_logic_vector (7 downto 0);
 
 
 
begin
 
 
 
  process(clock, clear)
 
  begin
 
  if (clear = '1') then
 
     counter <= 0;
 
  elsif (clock = '1' and clock'event) then
 
     if (done = '0') then
 
        counter <= 0;
 
     elsif (counter < 15 ) then
 
        counter <= counter + 1;
 
     else
 
        counter <= 0;
 
     end if;
 
  end if;
 
  end process;
 
 
 
  current_verifier <= fifo_verifier(counter);
 
 
 
  process(clock, clear)
begin
begin
 
  if (clear = '1') then
 
  fifo_verifier <= (others => ( others => '0'));
 
  elsif(clock = '1' and clock'event) then
 
     if (load = '1') then
 
     fifo_verifier <= (fifo_verifier (1 to 15) & verifier);
 
     end if;
 
  end if;
 
  end process;
 
 
  process (clock)
  process (clock)
    variable out_line                     : line;
    variable out_line                     : line;
  begin
  begin
    if (clock = '1' and clock'event) then
    if (clock = '1' and clock'event) then
      if (done = '1') then
      if (done = '1') then
        write(out_line, string'("Test ====> "));
        write(out_line, string'("Test ====> "));
        write(out_line, test_iteration);
        write(out_line, test_iteration);
 
        write(out_line, string'(" byte "));
 
        write(out_line, counter);
        if ( enc = '0') then
        if ( enc = '0') then
          writeline(out_enc_file_ptr, out_line);
          writeline(out_enc_file_ptr, out_line);
        else
        else
          writeline(out_dec_file_ptr, out_line);
          writeline(out_dec_file_ptr, out_line);
        end if;
        end if;
        write(out_line, string'("Expected : "));
        write(out_line, string'("Expected : "));
        write(out_line, verifier);
        write(out_line, current_verifier);
        if ( enc = '0') then
        if ( enc = '0') then
          writeline(out_enc_file_ptr, out_line);
          writeline(out_enc_file_ptr, out_line);
        else
        else
          writeline(out_dec_file_ptr, out_line);
          writeline(out_dec_file_ptr, out_line);
        end if;
        end if;
Line 90... Line 135...
          writeline(out_enc_file_ptr, out_line);
          writeline(out_enc_file_ptr, out_line);
        else
        else
          writeline(out_dec_file_ptr, out_line);
          writeline(out_dec_file_ptr, out_line);
        end if;
        end if;
        write(out_line, string'("Status   : "));
        write(out_line, string'("Status   : "));
        if (verifier = data_o ) then
        if (current_verifier = data_o ) then
          write (out_line, string'("OK"));
          write (out_line, string'("OK"));
          passed <= passed + 1;
          passed <= passed + 1;
        else
        else
          write (out_line, string'("FAILED"));
          write (out_line, string'("FAILED"));
          failed <= failed + 1;
          failed <= failed + 1;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.