#==============================================================================#
vhdl work mcu_periph/gpio.vhd
+vhdl work mcu_periph/qcounter_mcu16.vhd
#==============================================================================#
signal GPIO_OUT : std_logic_vector (15 downto 0);
signal GPIO_DAT_O : std_logic_vector (15 downto 0);
signal GPIO_SEL : std_logic;
+ -- Qcounter MCU interface
+ signal QCNT_DAT_O : std_logic_vector (15 downto 0);
+ signal QCNT_SEL : std_logic;
------------------------------------------------------------------------------
-- Dual-port shared memory
-- Peripheral bus address decoder and data multiplexer.
------------------------------------------------------------------------------
per_dout <= GPIO_DAT_O when GPIO_SEL = '1' else
+ QCNT_DAT_O when QCNT_SEL = '1' else
(others => '0'); -- MUST be 0 when nothing is addressed
GPIO_SEL <= '1' when per_addr(7 downto 2) = 16#0140#/2/4 else '0';
+ QCNT_SEL <= '1' when per_addr(7 downto 1) = 16#0148#/2/2 else '0';
------------------------------------------------------------------------------
GPIO_I => GPIO_IN,
GPIO_O => GPIO_OUT);
+ qcounter_mcu16_0 : entity work.qcounter_mcu16
+ port map (
+ ACK_O => open,
+ ADR_I => per_addr (0),
+ CLK_I => mclk,
+ DAT_O => QCNT_DAT_O,
+ SEL_I => QCNT_SEL,
+ STB_I => per_en,
+ QCOUNT => QCNT);
------------------------------------------------------------------------------