From eb72fb53bcb5d63d6e9a382d31a360f153f8932a Mon Sep 17 00:00:00 2001 From: Vladimir Burian Date: Sun, 9 Jan 2011 14:53:16 +0100 Subject: [PATCH] Added TimerA instance. IRQs are unconnected. --- openMSP430_uart.vhd | 82 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 79 insertions(+), 3 deletions(-) diff --git a/openMSP430_uart.vhd b/openMSP430_uart.vhd index f1fa1c2..3da8720 100644 --- a/openMSP430_uart.vhd +++ b/openMSP430_uart.vhd @@ -118,9 +118,47 @@ architecture rtl of openMSP430_uart is ); end component; + component omsp_timerA + port ( + irq_ta0 : out std_logic; -- Timer A interrupt: TACCR0 + irq_ta1 : out std_logic; -- Timer A interrupt: TAIV, TACCR1, TACCR2 + per_dout : out std_logic_vector (15 downto 0); -- Peripheral data output + ta_out0 : out std_logic; -- Timer A output 0 + ta_out0_en : out std_logic; -- Timer A output 0 enable + ta_out1 : out std_logic; -- Timer A output 1 + ta_out1_en : out std_logic; -- Timer A output 1 enable + ta_out2 : out std_logic; -- Timer A output 2 + ta_out2_en : out std_logic; -- Timer A output 2 enable + + aclk_en : in std_logic; -- ACLK enable (from CPU) + dbg_freeze : in std_logic; -- Freeze Timer A counter + inclk : in std_logic; -- INCLK external timer clock (SLOW) + irq_ta0_acc : in std_logic; -- Interrupt request TACCR0 accepted + mclk : in std_logic; -- Main system clock + per_addr : in std_logic_vector (7 downto 0); -- Peripheral address + per_din : in std_logic_Vector (15 downto 0); -- Peripheral data input + per_en : in std_logic; -- Peripheral enable (high active) + per_wen : in std_logic_vector (1 downto 0); -- Peripheral write enable (high active) + puc : in std_logic; -- Main system reset + smclk_en : in std_logic; -- SMCLK enable (from CPU) + ta_cci0a : in std_logic; -- Timer A capture 0 input A + ta_cci0b : in std_logic; -- Timer A capture 0 input B + ta_cci1a : in std_logic; -- Timer A capture 1 input A + ta_cci1b : in std_logic; -- Timer A capture 1 input B + ta_cci2a : in std_logic; -- Timer A capture 2 input A + ta_cci2b : in std_logic; -- Timer A capture 2 input B + taclk : in std_logic -- TACLK external timer clock (SLOW) + ); + end component; + signal mclk : std_logic; signal puc : std_logic; + signal aclk_en : std_logic; + signal smclk_en : std_logic; + + signal irq_acc : std_logic_vector (13 downto 0); + signal irq : std_logic_vector (13 downto 0); signal pmem_addr : std_logic_vector (10 downto 0); signal pmem_dout : std_logic_vector (15 downto 0); @@ -138,11 +176,15 @@ architecture rtl of openMSP430_uart is signal per_en : std_logic; signal per_addr : std_logic_vector (7 downto 0); + + signal gpio_per_dout : std_logic_vector (15 downto 0); + signal timerA_per_dout : std_logic_vector (15 downto 0); + -------------------------------------------------------------------------------- begin openMSP430_0 : openMSP430 port map ( - aclk_en => open, + aclk_en => aclk_en, dbg_freeze => open, dbg_uart_txd => open, dmem_addr => dmem_addr, @@ -160,7 +202,7 @@ begin pmem_din => open, pmem_wen => open, puc => puc, - smclk_en => open, + smclk_en => smclk_en, dbg_uart_rxd => '0', dco_clk => CLK_24MHz, @@ -242,7 +284,7 @@ begin p6_dout => open, p6_dout_en => open, p6_sel => open, - per_dout => per_dout, + per_dout => gpio_per_dout, mclk => mclk, p1_din => (others => '0'), p2_din => (others => '0'), @@ -257,6 +299,40 @@ begin puc => puc ); + omsp_timerA_0 : omsp_timerA port map ( + irq_ta0 => open, + irq_ta1 => open, + per_dout => timerA_per_dout, + ta_out0 => open, + ta_out0_en => open, + ta_out1 => open, + ta_out1_en => open, + ta_out2 => open, + ta_out2_en => open, + + aclk_en => aclk_en, + dbg_freeze => '0', + inclk => '0', + irq_ta0_acc => '0', + mclk => mclk, + per_addr => per_addr, + per_din => per_din, + per_en => per_en, + per_wen => per_wen, + puc => puc, + smclk_en => smclk_en, + ta_cci0a => '0', + ta_cci0b => '0', + ta_cci1a => '0', + ta_cci1b => '0', + ta_cci2a => '0', + ta_cci2b => '0', + taclk => '0' + ); + +-------------------------------------------------------------------------------- + + per_dout <= gpio_per_dout or timerA_per_dout; end rtl; -- 2.39.2