------------------------------------------------------------ -- Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich -- http://www.iis.ee.ethz.ch/~sha3 ------------------------------------------------------------ library ieee; use ieee.numeric_std.all; use ieee.std_logic_1164.all; use work.luffapkg.all; entity mixword is port ( MxDI : in mixdata; MxDO : out mixdata); end mixword; architecture rtl of mixword is signal T0xD, T1xD, T2xD, T3xD, T4xD, T5xD, T6xD : std_logic_vector(31 downto 0); begin T1xD <= MxDI(0) xor MxDI(1); T2xD <= MxDI(0)(31-2 downto 0) & MxDI(0)(31 downto 30); T3xD <= T2xD xor T1xD; T4xD <= T1xD(31-14 downto 0) & T1xD(31 downto 31-14+1); T5xD <= T4xD xor T3xD; T6xD <= T3xD(31-10 downto 0) & T3xD(31 downto 31-10+1); MxDO(0) <= T6xD xor T5xD; MxDO(1) <= T5xD(31-1 downto 0) & T5xD(31); end rtl;