diff options
| author | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2019-03-26 15:04:31 +0100 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2019-03-26 15:44:53 +0100 |
| commit | ec7e5a5fca16bc8e16ca6ba4734f4ba1f1612cff (patch) | |
| tree | 7a7485852756a76085c54bb7d863d5c726a480c9 /implementations/vhdl/add_vhdltbc/encryptdecrypt/store_rtk.vhd | |
| parent | 13fd77798b2b4a564335bf35198c037983749480 (diff) | |
| download | lilliput-ae-implem-ec7e5a5fca16bc8e16ca6ba4734f4ba1f1612cff.tar.xz | |
[implem-vhdl] Factorisation du code
Diffstat (limited to 'implementations/vhdl/add_vhdltbc/encryptdecrypt/store_rtk.vhd')
| -rw-r--r-- | implementations/vhdl/add_vhdltbc/encryptdecrypt/store_rtk.vhd | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/implementations/vhdl/add_vhdltbc/encryptdecrypt/store_rtk.vhd b/implementations/vhdl/add_vhdltbc/encryptdecrypt/store_rtk.vhd new file mode 100644 index 0000000..0edf110 --- /dev/null +++ b/implementations/vhdl/add_vhdltbc/encryptdecrypt/store_rtk.vhd @@ -0,0 +1,37 @@ +library IEEE; +library work; +use IEEE.numeric_std.ALL; +use IEEE.STD_LOGIC_1164.ALL; +use work.crypt_pack.ALL; + + +entity store_rtk is + Port ( + key_i : in type_key; -- Etat d'entrée + key_o : out type_key; -- Etat de sortie + round_number_i : in integer; + initroundkey_i : in std_logic; + clock_i : in std_logic; -- Permet de gérer la clock + reset_i : in std_logic); +end store_rtk; + +architecture store_rtk_arch of store_rtk is + +signal store_rtk : type_stored_key; + +begin + +process(reset_i, clock_i) -- On définit ici un process car les fonctions ne doivent pas se faire en même temps +begin + if(reset_i = '0') then + key_o <= (others => (others => (others => '0'))); --si rest_i est nul c'est que les valeurs de state_o sont nuls ; + elsif(clock_i'event and clock_i = '1') then -- Dans le cas d'un front descendant d'horloge state_o prend la valeur de state_i. On utilise un front descendant d'horloge pour un soucis de synchronisation avec sbox + store_rtk <=store_rtk;
+ if initroundkey_i='1' then + store_rtk(round_number_i) <= key_i; + end if; + key_o<= store_rtk(round_number_i); + end if; +end process; + +end store_rtk_arch;
\ No newline at end of file |
