diff --git a/aes/rtl/aes_pkg.vhd b/aes/rtl/aes_pkg.vhd index 785700e..805c5b2 100644 --- a/aes/rtl/aes_pkg.vhd +++ b/aes/rtl/aes_pkg.vhd @@ -115,12 +115,23 @@ package body aes_pkg is end function invbytesub; --- function shiftrow (input : t_datatable2d) return t_datatable2d is --- variable v_datamatrix : t_datatable2d; --- begin --- v_datamatrix := input; --- return v_datamatrix; --- end function shiftrow; + function shiftrow (input : t_datatable2d) return t_datatable2d is + variable v_datamatrix : t_datatable2d; + begin + -- copy input in internal matrix + v_datamatrix := input; + -- 2nd row + v_datamatrix(1)(1) := input(1)(0); + v_datamatrix(1)(2) := input(1)(1); + v_datamatrix(1)(3) := input(1)(2); + -- 3rd row + v_datamatrix(2)(2) := input(2)(0); + v_datamatrix(2)(3) := input(2)(1); + -- 4rd row + v_datamatrix(3)(3) := input(3)(0); + -- return manipulated internal matrix + return v_datamatrix; + end function shiftrow; end package body aes_pkg;