From 0780df86a9ec88bf8810f7fef1d241030dc1b655 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Thu, 17 May 2018 09:17:21 +0100 Subject: first version for rob - supports only 44.1kHz --- counter.vhd | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 counter.vhd (limited to 'counter.vhd') diff --git a/counter.vhd b/counter.vhd new file mode 100644 index 0000000..4ae6a2a --- /dev/null +++ b/counter.vhd @@ -0,0 +1,45 @@ + + +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.std_logic_unsigned.all; +use IEEE.numeric_std.all; + +entity counter is + port + ( + divisor : in std_logic_vector(15 downto 0) := (others => '0'); + clk : in std_logic; + n_reset : in std_logic; + clk_out : out std_logic + ); +end counter; + + +architecture rtl of counter is + + signal d : + std_logic_vector (15 downto 0); + signal q : + std_logic; +begin + + clk_out <= q; + process (clk, d, q, divisor, n_reset) + begin + if n_reset = '0' then + d <= (others => '0'); + q <= '0'; + elsif RISING_EDGE(clk) then + + if d < divisor then + d <= d + 1; + else + d <= (others => '0'); + q <= not q; + end if; + end if; + end process; + +end rtl; + -- cgit v1.2.3