Line 1... |
Line 1... |
|
|
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
-- Designer: Paolo Fulgoni <pfulgoni@opencores.org>
|
-- Designer: Paolo Fulgoni <pfulgoni@opencores.org>
|
--
|
--
|
-- Create Date: 02/01/2008
|
-- Create Date: 02/01/2008
|
-- Last Update: 03/06/2008
|
-- Last Update: 03/28/2008
|
-- Project Name: camellia-vhdl
|
-- Project Name: camellia-vhdl
|
-- Description: Looping version of Camellia
|
-- Description: Looping version of Camellia
|
--
|
--
|
-- Copyright (C) 2008 Paolo Fulgoni
|
-- Copyright (C) 2008 Paolo Fulgoni
|
-- This file is part of camellia-vhdl.
|
-- This file is part of camellia-vhdl.
|
Line 29... |
Line 29... |
|
|
entity camellia is
|
entity camellia is
|
port (
|
port (
|
clk : in STD_LOGIC;
|
clk : in STD_LOGIC;
|
reset : in STD_LOGIC;
|
reset : in STD_LOGIC;
|
|
|
data_in : in STD_LOGIC_VECTOR (0 to 127);
|
data_in : in STD_LOGIC_VECTOR (0 to 127);
|
|
enc_dec : in STD_LOGIC;
|
|
data_rdy : in STD_LOGIC;
|
|
data_acq : out STD_LOGIC;
|
|
|
key : in STD_LOGIC_VECTOR (0 to 255);
|
key : in STD_LOGIC_VECTOR (0 to 255);
|
k_len : in STD_LOGIC_VECTOR (0 to 1);
|
k_len : in STD_LOGIC_VECTOR (0 to 1);
|
new_key : in STD_LOGIC;
|
key_rdy : in STD_LOGIC;
|
enc_dec : in STD_LOGIC;
|
key_acq : out STD_LOGIC;
|
input_rdy : in STD_LOGIC;
|
|
data_out : out STD_LOGIC_VECTOR (0 to 127)
|
data_out : out STD_LOGIC_VECTOR (0 to 127);
|
|
output_rdy : out STD_LOGIC
|
);
|
);
|
end camellia;
|
end camellia;
|
|
|
architecture RTL of camellia is
|
architecture RTL of camellia is
|
|
|
signal s_clk : STD_LOGIC;
|
signal s_clk : STD_LOGIC;
|
signal s_reset : STD_LOGIC;
|
signal s_reset : STD_LOGIC;
|
signal s_data_in : STD_LOGIC_VECTOR (0 to 127);
|
signal s_data_in : STD_LOGIC_VECTOR (0 to 127);
|
|
signal s_enc_dec : STD_LOGIC;
|
|
signal s_data_rdy : STD_LOGIC;
|
|
signal s_data_acq : STD_LOGIC;
|
signal s_key_in : STD_LOGIC_VECTOR (0 to 255);
|
signal s_key_in : STD_LOGIC_VECTOR (0 to 255);
|
signal s_k_len : STD_LOGIC_VECTOR (0 to 1);
|
signal s_k_len : STD_LOGIC_VECTOR (0 to 1);
|
signal s_new_key : STD_LOGIC;
|
signal s_key_rdy : STD_LOGIC;
|
signal s_enc_dec : STD_LOGIC;
|
signal s_key_acq : STD_LOGIC;
|
signal s_input_rdy : STD_LOGIC;
|
|
signal s_nxt_input : STD_LOGIC;
|
|
signal s_data_to : STD_LOGIC_VECTOR (0 to 127);
|
signal s_data_to : STD_LOGIC_VECTOR (0 to 127);
|
|
signal s_output_rdy : STD_LOGIC;
|
signal s_k1 : STD_LOGIC_VECTOR (0 to 63);
|
signal s_k1 : STD_LOGIC_VECTOR (0 to 63);
|
signal s_k2 : STD_LOGIC_VECTOR (0 to 63);
|
signal s_k2 : STD_LOGIC_VECTOR (0 to 63);
|
signal s_newdata : STD_LOGIC;
|
signal s_newdata : STD_LOGIC;
|
signal s_sel : STD_LOGIC;
|
signal s_sel : STD_LOGIC;
|
signal s_pre_xor : STD_LOGIC_VECTOR (0 to 127);
|
signal s_pre_xor : STD_LOGIC_VECTOR (0 to 127);
|
Line 79... |
Line 87... |
component control is
|
component control is
|
port (
|
port (
|
clk : in STD_LOGIC;
|
clk : in STD_LOGIC;
|
reset : in STD_LOGIC;
|
reset : in STD_LOGIC;
|
data_in : in STD_LOGIC_VECTOR (0 to 127);
|
data_in : in STD_LOGIC_VECTOR (0 to 127);
|
|
enc_dec : in STD_LOGIC;
|
|
data_rdy : in STD_LOGIC;
|
|
data_acq : out STD_LOGIC;
|
key_in : in STD_LOGIC_VECTOR (0 to 255);
|
key_in : in STD_LOGIC_VECTOR (0 to 255);
|
k_len : in STD_LOGIC_VECTOR (0 to 1);
|
k_len : in STD_LOGIC_VECTOR (0 to 1);
|
new_key : in STD_LOGIC;
|
key_rdy : in STD_LOGIC;
|
enc_dec : in STD_LOGIC;
|
key_acq : out STD_LOGIC;
|
input_rdy : in STD_LOGIC;
|
|
data_to : out STD_LOGIC_VECTOR (0 to 127);
|
data_to : out STD_LOGIC_VECTOR (0 to 127);
|
|
output_rdy : out STD_LOGIC;
|
k1 : out STD_LOGIC_VECTOR (0 to 63);
|
k1 : out STD_LOGIC_VECTOR (0 to 63);
|
k2 : out STD_LOGIC_VECTOR (0 to 63);
|
k2 : out STD_LOGIC_VECTOR (0 to 63);
|
newdata : out STD_LOGIC;
|
newdata : out STD_LOGIC;
|
sel : out STD_LOGIC;
|
sel : out STD_LOGIC;
|
pre_xor : out STD_LOGIC_VECTOR (0 to 127);
|
pre_xor : out STD_LOGIC_VECTOR (0 to 127);
|
Line 116... |
Line 127... |
CTRL : control
|
CTRL : control
|
port map(
|
port map(
|
clk => s_clk,
|
clk => s_clk,
|
reset => s_reset,
|
reset => s_reset,
|
data_in => s_data_in,
|
data_in => s_data_in,
|
|
enc_dec => s_enc_dec,
|
|
data_rdy => s_data_rdy,
|
|
data_acq => s_data_acq,
|
key_in => s_key_in,
|
key_in => s_key_in,
|
k_len => s_k_len,
|
k_len => s_k_len,
|
new_key => s_new_key,
|
key_rdy => s_key_rdy,
|
enc_dec => s_enc_dec,
|
key_acq => s_key_acq,
|
input_rdy => s_input_rdy,
|
|
data_to => s_data_to,
|
data_to => s_data_to,
|
|
output_rdy => s_output_rdy,
|
k1 => s_k1,
|
k1 => s_k1,
|
k2 => s_k2,
|
k2 => s_k2,
|
newdata => s_newdata,
|
newdata => s_newdata,
|
sel => s_sel,
|
sel => s_sel,
|
pre_xor => s_pre_xor,
|
pre_xor => s_pre_xor,
|
Line 134... |
Line 148... |
);
|
);
|
|
|
s_clk <= clk;
|
s_clk <= clk;
|
s_reset <= reset;
|
s_reset <= reset;
|
s_data_in <= data_in;
|
s_data_in <= data_in;
|
|
s_enc_dec <= enc_dec;
|
|
s_data_rdy <= data_rdy;
|
s_key_in <= key;
|
s_key_in <= key;
|
s_k_len <= k_len;
|
s_k_len <= k_len;
|
s_new_key <= new_key;
|
s_key_rdy <= key_rdy;
|
s_enc_dec <= enc_dec;
|
|
s_input_rdy <= input_rdy;
|
data_acq <= s_data_acq;
|
|
key_acq <= s_key_acq;
|
data_out <= s_data_from(64 to 127) & s_data_from(0 to 63);
|
data_out <= s_data_from(64 to 127) & s_data_from(0 to 63);
|
|
output_rdy <= s_output_rdy;
|
|
|
end RTL;
|
end RTL;
|
|
|
No newline at end of file
|
No newline at end of file
|