------------------------------------------------------------
-- Copyright: 2011 George Mason University, Virginia USA
-- http://www.iis.ee.ethz.ch/~sha3
------------------------------------------------------------
-- =====================================================================
-- Copyright © 2010-2011 by Cryptographic Engineering Research Group (CERG),
-- ECE Department, George Mason University
-- Fairfax, VA, U.S.A.
-- =====================================================================
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;
use work.sha3_pkg.all;
entity counterna is
generic (
RST_ACTIVE_VALUE : std_logic := '0';
N : integer := 2
);
port (
clk : in std_logic;
rst : in std_logic;
load : in std_logic;
en : in std_logic;
output : out std_logic_vector(N-1 downto 0)
);
end counterna;
architecture struct of counterna is
signal temp : std_logic_vector(N-1 downto 0);
begin
gen : process( rst, clk )
begin
if rst = RST_ACTIVE_VALUE then
temp <= (others => '0');
elsif rising_edge( clk ) then
if (load = '1' ) then
temp <= (others => '0');
elsif ( en = '1' ) then
temp <= temp + 1;
end if;
end if;
end process;
output <= temp;
end struct;