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

Subversion Repositories mini_aes

[/] [mini_aes/] [trunk/] [bench/] [modelsim_bench.vhdl] - Blame information for rev 22

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 21 arif_endro
-- ------------------------------------------------------------------------
2 16 arif_endro
-- Copyright (C) 2005 Arif Endro Nugroho
3 21 arif_endro
-- All rights reserved.
4 2 arif_endro
-- 
5 21 arif_endro
-- Redistribution and use in source and binary forms, with or without
6
-- modification, are permitted provided that the following conditions
7
-- are met:
8 2 arif_endro
-- 
9 21 arif_endro
-- 1. Redistributions of source code must retain the above copyright
10
--    notice, this list of conditions and the following disclaimer.
11
-- 2. Redistributions in binary form must reproduce the above copyright
12
--    notice, this list of conditions and the following disclaimer in the
13
--    documentation and/or other materials provided with the distribution.
14 2 arif_endro
-- 
15 21 arif_endro
-- THIS SOFTWARE IS PROVIDED BY ARIF ENDRO NUGROHO "AS IS" AND ANY EXPRESS
16
-- OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
-- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
-- DISCLAIMED. IN NO EVENT SHALL ARIF ENDRO NUGROHO BE LIABLE FOR ANY
19
-- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21
-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22
-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23
-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
24
-- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
-- POSSIBILITY OF SUCH DAMAGE.
26 2 arif_endro
-- 
27 21 arif_endro
-- End Of License.
28
-- ------------------------------------------------------------------------
29 2 arif_endro
 
30
library ieee;
31
use ieee.std_logic_1164.all;
32
 
33
entity modelsim_bench is
34
end modelsim_bench;
35
 
36
architecture structural of modelsim_bench is
37
 
38
  component mini_aes
39
    port (
40
      clock          : in  std_logic;
41
      clear          : in  std_logic;
42 7 arif_endro
      load_i         : in  std_logic;
43 2 arif_endro
      enc            : in  std_logic;
44 7 arif_endro
      key_i          : in  std_logic_vector (007 downto 000);
45
      data_i         : in  std_logic_vector (007 downto 000);
46
      data_o         : out std_logic_vector (007 downto 000);
47 2 arif_endro
      done_o         : out std_logic
48
      );
49
  end component;
50
--
51
  component input
52
    port (
53
      clock          : out std_logic;
54 7 arif_endro
      load           : out std_logic;
55 2 arif_endro
      done           : in  std_logic;
56
      test_iteration : out integer;
57 7 arif_endro
      key_i_byte     : out std_logic_vector (007 downto 000);
58
      data_i_byte    : out std_logic_vector (007 downto 000);
59
      cipher_o_byte  : out std_logic_vector (007 downto 000)
60 2 arif_endro
      );
61
  end component;
62
--
63
  component output
64
    port (
65
      clock          : in  std_logic;
66 7 arif_endro
      clear          : in  std_logic;
67
      load           : in  std_logic;
68 2 arif_endro
      enc            : in  std_logic;
69
      done           : in  std_logic;
70
      test_iteration : in  integer;
71 7 arif_endro
      verifier       : in  std_logic_vector (007 downto 000);
72
      data_o         : in  std_logic_vector (007 downto 000)
73 2 arif_endro
      );
74
  end component;
75
 
76 7 arif_endro
  signal load_enc           : std_logic;
77
  signal load_dec           : std_logic;
78 2 arif_endro
  signal clock_enc          : std_logic;
79
  signal clock_dec          : std_logic;
80
  signal done_dec           : std_logic;
81
  signal done_enc           : std_logic;
82
  signal test_iteration_enc : integer;
83
  signal test_iteration_dec : integer;
84 7 arif_endro
  signal cipher_o_enc       : std_logic_vector (007 downto 000);
85
  signal cipher_o_dec       : std_logic_vector (007 downto 000);
86
  signal data_i_enc         : std_logic_vector (007 downto 000);
87
  signal data_i_dec         : std_logic_vector (007 downto 000);
88
  signal data_o_enc         : std_logic_vector (007 downto 000);
89
  signal data_o_dec         : std_logic_vector (007 downto 000);
90
  signal key_i_enc          : std_logic_vector (007 downto 000);
91
  signal key_i_dec          : std_logic_vector (007 downto 000);
92 2 arif_endro
 
93
begin
94
 
95
  my_aes_enc    : mini_aes
96
    port map (
97
      clock          => clock_enc,
98 7 arif_endro
      clear          => '0',
99
      load_i         => load_enc,
100 2 arif_endro
      enc            => '0',
101
      key_i          => key_i_enc,
102
      data_i         => data_i_enc,
103
      data_o         => data_o_enc,
104
      done_o         => done_enc
105
      );
106
--
107
  my_aes_dec    : mini_aes
108
    port map (
109
      clock          => clock_dec,
110 7 arif_endro
      clear          => '0',
111
      load_i         => load_dec,
112 2 arif_endro
      enc            => '1',
113
      key_i          => key_i_dec,
114
      data_i         => cipher_o_dec,
115
      data_o         => data_o_dec,
116
      done_o         => done_dec
117
      );
118
--
119
  my_input_enc  : input
120
    port map (
121
      clock          => clock_enc,
122 7 arif_endro
      load           => load_enc,
123 2 arif_endro
      done           => done_enc,
124
      test_iteration => test_iteration_enc,
125 7 arif_endro
      key_i_byte     => key_i_enc,
126
      data_i_byte    => data_i_enc,
127
      cipher_o_byte  => cipher_o_enc
128 2 arif_endro
      );
129
  my_input_dec  : input
130
    port map (
131
      clock          => clock_dec,
132 7 arif_endro
      load           => load_dec,
133 2 arif_endro
      done           => done_dec,
134
      test_iteration => test_iteration_dec,
135 7 arif_endro
      data_i_byte    => data_i_dec,
136
      cipher_o_byte  => cipher_o_dec,
137
      key_i_byte     => key_i_dec
138 2 arif_endro
      );
139
--
140
  my_output_enc : output
141
    port map (
142
      clock          => clock_enc,
143 7 arif_endro
      clear          => '0',
144
      load           => load_enc,
145 2 arif_endro
      enc            => '0',
146
      done           => done_enc,
147
      test_iteration => test_iteration_enc,
148
      verifier       => cipher_o_enc,
149
      data_o         => data_o_enc
150
      );
151
--
152
  my_output_dec : output
153
    port map (
154
      clock          => clock_dec,
155 7 arif_endro
      clear          => '0',
156
      load           => load_dec,
157 2 arif_endro
      enc            => '1',
158
      done           => done_dec,
159
      test_iteration => test_iteration_dec,
160
      verifier       => data_i_dec,
161
      data_o         => data_o_dec
162
      );
163
 
164
end structural;

powered by: WebSVN 2.1.0

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