library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.all; use IEEE.STD_LOGIC_UNSIGNED.all; -------------------------------------------------------------------------------- -- This is the top module instantiating quadratic counter with output to the -- on-board LCD. See 'top_counter.ucf' and read how a quadratic encoder is -- connected. -------------------------------------------------------------------------------- entity top_counter is port( clk : in std_logic; reset : in std_logic; rot_A : in std_logic; rot_B : in std_logic; rot_press : in std_logic; rot_feed : out std_logic; lcd_com : out std_logic; lcd2_dp : out std_logic; lcd1_dp : out std_logic; lcd1 : out std_logic_vector(6 downto 0); lcd2 : out std_logic_vector(6 downto 0)); end top_counter; -------------------------------------------------------------------------------- architecture behavioral of top_counter is signal lcd_clk : std_logic; signal lcd1_out : std_logic_vector (6 downto 0); signal lcd2_out : std_logic_vector (6 downto 0); signal qcount_data : std_logic_vector (31 downto 0); signal qcount_reset : std_logic; -------------------------------------------------------------------------------- begin div_20_1 : entity work.div_20 port map ( clk => clk, clk_2k => lcd_clk); hex2lcd_1 : entity work.hex2lcd port map ( hex => qcount_data(5 downto 2), lcd => lcd1_out); hex2lcd_2 : entity work.hex2lcd port map ( hex => qcount_data(9 downto 6), lcd => lcd2_out); lcd_mux_1 : entity work.lcd_mux port map ( clk => clk, cnt => lcd_clk, data_in => lcd1_out, lcd_seg => lcd1, lcd_com => lcd_com, lcd_dp => lcd1_dp); lcd_mux_2 : entity work.lcd_mux port map ( clk => clk, cnt => lcd_clk, data_in => lcd2_out, lcd_seg => lcd2, lcd_com => open, lcd_dp => lcd2_dp); qcounter_1 : entity work.qcounter port map ( clock => clk, reset => qcount_reset, a0 => rot_A, b0 => rot_B, qcount => qcount_data, a_rise => open, a_fall => open, b_rise => open, b_fall => open, ab_event => open, ab_error => open); -------------------------------------------------------------------------------- rot_feed <= '1'; qcount_reset <= not reset or rot_press; end Behavioral;