From be5b8afaa43b69e7d0fd16f6e312f9c3745cd8c2 Mon Sep 17 00:00:00 2001 From: Torsten Meissner Date: Tue, 2 Apr 2019 17:19:57 +0200 Subject: [PATCH] Add subword() function --- aes/rtl/vhdl/aes_pkg.vhd | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/aes/rtl/vhdl/aes_pkg.vhd b/aes/rtl/vhdl/aes_pkg.vhd index 60dca15..a65b365 100644 --- a/aes/rtl/vhdl/aes_pkg.vhd +++ b/aes/rtl/vhdl/aes_pkg.vhd @@ -146,6 +146,8 @@ package aes_pkg is function bytesub (input : std_logic_vector(7 downto 0)) return std_logic_vector; function invbytesub (input : std_logic_vector(7 downto 0)) return std_logic_vector; + function subword (input : t_datatable1d) return t_datatable1d; + function subbytes (input : in t_datatable2d) return t_datatable2d; function invsubbytes (input : in t_datatable2d) return t_datatable2d; @@ -203,6 +205,16 @@ package body aes_pkg is end function invbytesub; + function subword (input : t_datatable1d) return t_datatable1d is + v_data : t_datatable1d; + begin + for i in 0 to 3 loop + v_data(i) := c_sbox(to_integer(unsigned(input(i)(7 downto 4))))(to_integer(unsigned(input(i)(3 downto 0)))); + end loop; + return v_data; + end function subword; + + function subbytes (input : in t_datatable2d) return t_datatable2d is variable v_data : t_datatable2d; begin