RESET: in std_logic;
RXD : out std_logic;
- TXD : in std_logic
+ TXD : in std_logic;
+
+ ROT_FEED : out std_logic;
+ ROT_A : in std_logic;
+ ROT_B : in std_logic;
+ ROT_PRESS : in std_logic
);
end openMSP430_uart;
);
end component;
+ component omsp_quadcount is
+ port (
+ mclk : in std_logic;
+ per_addr : in std_logic_vector (7 downto 0);
+ per_din : in std_logic_vector (15 downto 0); -- unused
+ per_en : in std_logic;
+ per_wen : in std_logic_vector (1 downto 0); -- unused
+ puc : in std_logic; -- unused
+ per_irq_acc : in std_logic; -- unused
+ per_irq : out std_logic; -- unused
+ per_dout : out std_logic_vector (15 downto 0);
+
+ qcount : in std_logic_vector (31 downto 0)
+ );
+ end component;
+
+ component qcounter is
+ port (
+ clock : in std_logic;
+ reset : in std_logic;
+ a0, b0 : in std_logic;
+ qcount : out std_logic_vector (31 downto 0);
+ a_rise, a_fall, b_rise, b_fall, ab_event : out std_logic;
+ ab_error : out std_logic
+ );
+ end component;
+
signal mclk : std_logic;
signal puc : std_logic;
signal gpio_per_dout : std_logic_vector (15 downto 0);
signal timerA_per_dout : std_logic_vector (15 downto 0);
+ signal omsp_quadcount_dout : std_logic_vector (15 downto 0);
signal irq_ta0 : std_logic;
signal irq_ta1 : std_logic;
+ signal omsp_quadcount_irq : std_logic;
+
+ signal qcount : std_logic_vector (31 downto 0);
--------------------------------------------------------------------------------
taclk => '0'
);
+ omsp_quadcount_0 : omsp_quadcount port map (
+ mclk => mclk,
+ per_addr => per_addr,
+ per_din => (others => '0'),
+ per_en => per_en,
+ per_wen => "00",
+ puc => '0',
+ per_irq_acc => '0',
+ per_irq => omsp_quadcount_irq,
+ per_dout => omsp_quadcount_dout,
+
+ qcount => qcount
+ );
+
+ qcounter_0 : qcounter port map (
+ clock => mclk,
+ reset => ROT_PRESS,
+ a0 => ROT_A,
+ b0 => ROT_B,
+ qcount => qcount,
+ a_rise => open,
+ a_fall => open,
+ b_rise => open,
+ b_fall => open,
+ ab_event => open,
+ ab_error => open
+ );
+
--------------------------------------------------------------------------------
- per_dout <= gpio_per_dout or timerA_per_dout;
+ per_dout <= gpio_per_dout or timerA_per_dout or omsp_quadcount_dout;
irq <= (9 => irq_ta0,
8 => irq_ta1,
+ 7 => omsp_quadcount_irq,
others => '0');
+ ROT_FEED <= '1';
+
end rtl;