PoC.arith.counter_ring¶
This module implements an up/down ring-counter with loadable initial value
(seed
) on reset. The counter can be configured to a Johnson counter by
enabling INVERT_FEEDBACK
. The number of counter bits is configurable with
BITS
.
Entity Declaration:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | entity arith_counter_ring is
generic (
BITS : positive;
INVERT_FEEDBACK : boolean := FALSE -- FALSE -> ring counter; TRUE -> johnson counter
);
port (
Clock : in std_logic; -- Clock
Reset : in std_logic; -- Reset
seed : in std_logic_vector(BITS - 1 downto 0) := (others => '0'); -- initial counter vector / load value
inc : in std_logic := '0'; -- increment counter
dec : in std_logic := '0'; -- decrement counter
value : out std_logic_vector(BITS - 1 downto 0) -- counter value
);
end entity;
|