OpenCores
URL https://opencores.org/ocsvn/openmsp430/openmsp430/trunk

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [fpga/] [actel_m1a3pl_dev_kit/] [rtl/] [verilog/] [openmsp430/] [openMSP430_defines.v] - Diff between revs 112 and 136

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 112 Rev 136
Line 1... Line 1...
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// Copyright (C) 2001 Authors
// Copyright (C) 2009 , Olivier Girard
//
//
// This source file may be used and distributed without restriction provided
// Redistribution and use in source and binary forms, with or without
// that this copyright statement is not removed from the file and that any
// modification, are permitted provided that the following conditions
// derivative work contains the original copyright notice and the associated
// are met:
// disclaimer.
//     * Redistributions of source code must retain the above copyright
//
//       notice, this list of conditions and the following disclaimer.
// This source file is free software; you can redistribute it and/or modify
//     * Redistributions in binary form must reproduce the above copyright
// it under the terms of the GNU Lesser General Public License as published
//       notice, this list of conditions and the following disclaimer in the
// by the Free Software Foundation; either version 2.1 of the License, or
//       documentation and/or other materials provided with the distribution.
// (at your option) any later version.
//     * Neither the name of the authors nor the names of its contributors
//
//       may be used to endorse or promote products derived from this software
// This source is distributed in the hope that it will be useful, but WITHOUT
//       without specific prior written permission.
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
//
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// License for more details.
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
//
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// You should have received a copy of the GNU Lesser General Public License
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// along with this source; if not, write to the Free Software Foundation,
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
// OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 
// THE POSSIBILITY OF SUCH DAMAGE
//
//
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// 
// 
// *File Name: openMSP430_defines.v
// *File Name: openMSP430_defines.v
// 
// 
Line 101... Line 106...
// ADVANCED SYSTEM CONFIGURATION (FOR EXPERIENCED USERS)
// ADVANCED SYSTEM CONFIGURATION (FOR EXPERIENCED USERS)
//============================================================================
//============================================================================
//============================================================================
//============================================================================
 
 
//-------------------------------------------------------
//-------------------------------------------------------
 
// Custom user version number
 
//-------------------------------------------------------
 
// This 5 bit field can be freely used in order to allow
 
// custom identification of the system through the debug
 
// interface.
 
// (see CPU_ID.USER_VERSION field in the documentation)
 
//-------------------------------------------------------
 
`define USER_VERSION 5'b00011
 
 
 
 
 
//-------------------------------------------------------
 
// Include/Exclude Watchdog timer
 
//-------------------------------------------------------
 
// When excluded, the following functionality will be
 
// lost:
 
//        - Watchog (both interval and watchdog modes)
 
//        - NMI interrupt edge selection
 
//        - Possibility to generate a software PUC reset
 
//-------------------------------------------------------
 
`define WATCHDOG
 
 
 
 
 
///-------------------------------------------------------
 
// Include/Exclude Non-Maskable-Interrupt support
 
//-------------------------------------------------------
 
`define NMI
 
 
 
 
 
//-------------------------------------------------------
 
// Input synchronizers
 
//-------------------------------------------------------
 
// In some cases, the asynchronous input ports might
 
// already be synchronized externally.
 
// If an extensive CDC design review showed that this
 
// is really the case,  the individual synchronizers
 
// can be disabled with the following defines.
 
//
 
// Notes:
 
//        - all three signals are all sampled in the MCLK domain
 
//
 
//        - the dbg_en signal reset the debug interface
 
//         when 0. Therefore make sure it is glitch free.
 
//
 
//-------------------------------------------------------
 
`define SYNC_NMI
 
`define SYNC_CPU_EN
 
`define SYNC_DBG_EN
 
 
 
 
 
//-------------------------------------------------------
// Peripheral Memory Space:
// Peripheral Memory Space:
//-------------------------------------------------------
//-------------------------------------------------------
// The original MSP430 architecture map the peripherals
// The original MSP430 architecture map the peripherals
// from 0x0000 to 0x01FF (i.e. 512B of the memory space).
// from 0x0000 to 0x01FF (i.e. 512B of the memory space).
// The following defines allow you to expand this space
// The following defines allow you to expand this space
Line 125... Line 180...
//-------------------------------------------------------
//-------------------------------------------------------
// Defines the debugger CPU_CTL.RST_BRK_EN reset value
// Defines the debugger CPU_CTL.RST_BRK_EN reset value
// (CPU break on PUC reset)
// (CPU break on PUC reset)
//-------------------------------------------------------
//-------------------------------------------------------
// When defined, the CPU will automatically break after
// When defined, the CPU will automatically break after
// a PUC occurrence by default. This is typically usefull
// a PUC occurrence by default. This is typically useful
// when the program memory can only be initialized through
// when the program memory can only be initialized through
// the serial debug interface.
// the serial debug interface.
//-------------------------------------------------------
//-------------------------------------------------------
//`define DBG_RST_BRK_EN
`define DBG_RST_BRK_EN
 
 
 
 
//-------------------------------------------------------
 
// Custom user version number
 
//-------------------------------------------------------
 
// This 5 bit field can be freely used in order to allow
 
// custom identification of the system through the debug
 
// interface.
 
// (see CPU_ID.USER_VERSION field in the documentation)
 
//-------------------------------------------------------
 
`define USER_VERSION 5'b00011
 
 
 
 
 
//============================================================================
//============================================================================
//============================================================================
//============================================================================
// EXPERT SYSTEM CONFIGURATION ( !!!! EXPERTS ONLY !!!! )
// EXPERT SYSTEM CONFIGURATION ( !!!! EXPERTS ONLY !!!! )
Line 156... Line 200...
//                 you are doing :-P
//                 you are doing :-P
//
//
//============================================================================
//============================================================================
 
 
//-------------------------------------------------------
//-------------------------------------------------------
// Number of hardware breakpoint units (each unit contains
// Number of hardware breakpoint/watchpoint units
// two hardware address breakpoints):
// (each unit contains two hardware addresses available
 
// for breakpoints or watchpoints):
//   - DBG_HWBRK_0 -> Include hardware breakpoints unit 0
//   - DBG_HWBRK_0 -> Include hardware breakpoints unit 0
//   - DBG_HWBRK_1 -> Include hardware breakpoints unit 1
//   - DBG_HWBRK_1 -> Include hardware breakpoints unit 1
//   - DBG_HWBRK_2 -> Include hardware breakpoints unit 2
//   - DBG_HWBRK_2 -> Include hardware breakpoints unit 2
//   - DBG_HWBRK_3 -> Include hardware breakpoints unit 3
//   - DBG_HWBRK_3 -> Include hardware breakpoints unit 3
//-------------------------------------------------------
//-------------------------------------------------------
// Please keep in mind that hardware breakpoints only
// Please keep in mind that hardware breakpoints only
// make sense whenever the program memory is not an SRAM
// make sense whenever the program memory is not an SRAM
// (i.e. Flash/OTP/ROM/...) or when you are interested
// (i.e. Flash/OTP/ROM/...) or when you are interested
// in data breakpoints (btw. not supported by GDB).
// in data breakpoints.
//-------------------------------------------------------
//-------------------------------------------------------
//`define  DBG_HWBRK_0
//`define  DBG_HWBRK_0
//`define  DBG_HWBRK_1
//`define  DBG_HWBRK_1
//`define  DBG_HWBRK_2
//`define  DBG_HWBRK_2
//`define  DBG_HWBRK_3
//`define  DBG_HWBRK_3
Line 186... Line 231...
//-------------------------------------------------------
//-------------------------------------------------------
//`define DBG_HWBRK_RANGE
//`define DBG_HWBRK_RANGE
 
 
 
 
//-------------------------------------------------------
//-------------------------------------------------------
// Input synchronizers
// ASIC version
//-------------------------------------------------------
//-------------------------------------------------------
// In some cases, the asynchronous input ports might
// When uncommented, this define will enable the
// already be synchronized externally.
// ASIC system configuration section (see below) and
// If an extensive CDC design review showed that this
// will activate scan support for production test.
// is really the case,  the individual synchronizers
 
// can be disabled with the following defines.
 
//
//
// Notes:
// WARNING: if you target an FPGA, leave this define
//        - the dbg_en signal will reset the debug interface
//          commented.
//         when 0. Therefore make sure it is glitch free.
 
//
 
//        - the dbg_uart_rxd synchronizer must be set to 1
 
//          when its reset is active.
 
//-------------------------------------------------------
//-------------------------------------------------------
`define SYNC_CPU_EN
//`define ASIC
`define SYNC_DBG_EN
 
`define SYNC_DBG_UART_RXD
 
`define SYNC_NMI
//============================================================================
 
//============================================================================
 
// ASIC SYSTEM CONFIGURATION ( !!!! EXPERTS/PROFESSIONALS ONLY !!!! )
 
//============================================================================
 
//============================================================================
 
`ifdef ASIC
 
 
 
//===============================================================
 
// FINE GRAINED CLOCK GATING
 
//===============================================================
 
 
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the fine
 
// grained clock gating of all registers in the core.
 
//-------------------------------------------------------
 
`define CLOCK_GATING
 
 
 
 
 
//===============================================================
 
// LFXT CLOCK DOMAIN
 
//===============================================================
 
 
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the lfxt_clk
 
// clock domain.
 
// When commented out, the whole chip is clocked with dco_clk.
 
//-------------------------------------------------------
 
`define LFXT_DOMAIN
 
 
 
 
 
//===============================================================
 
// CLOCK MUXES
 
//===============================================================
 
 
 
//-------------------------------------------------------
 
// MCLK: Clock Mux
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the
 
// MCLK clock MUX allowing the selection between
 
// DCO_CLK and LFXT_CLK with the BCSCTL2.SELMx register.
 
// When commented, DCO_CLK is selected.
 
//-------------------------------------------------------
 
`define MCLK_MUX
 
 
 
//-------------------------------------------------------
 
// SMCLK: Clock Mux
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the
 
// SMCLK clock MUX allowing the selection between
 
// DCO_CLK and LFXT_CLK with the BCSCTL2.SELS register.
 
// When commented, DCO_CLK is selected.
 
//-------------------------------------------------------
 
`define SMCLK_MUX
 
 
 
//-------------------------------------------------------
 
// WATCHDOG: Clock Mux
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the
 
// Watchdog clock MUX allowing the selection between
 
// ACLK and SMCLK with the WDTCTL.WDTSSEL register.
 
// When commented out, ACLK is selected if the
 
// WATCHDOG_NOMUX_ACLK define is uncommented, SMCLK is
 
// selected otherwise.
 
//-------------------------------------------------------
 
`define WATCHDOG_MUX
 
//`define WATCHDOG_NOMUX_ACLK
 
 
 
 
 
//===============================================================
 
// CLOCK DIVIDERS
 
//===============================================================
 
 
 
//-------------------------------------------------------
 
// MCLK: Clock divider
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the
 
// MCLK clock divider (/1/2/4/8)
 
//-------------------------------------------------------
 
`define MCLK_DIVIDER
 
 
 
//-------------------------------------------------------
 
// SMCLK: Clock divider (/1/2/4/8)
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the
 
// SMCLK clock divider
 
//-------------------------------------------------------
 
`define SMCLK_DIVIDER
 
 
 
//-------------------------------------------------------
 
// ACLK: Clock divider (/1/2/4/8)
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the
 
// ACLK clock divider
 
//-------------------------------------------------------
 
`define ACLK_DIVIDER
 
 
 
 
 
//===============================================================
 
// LOW POWER MODES
 
//===============================================================
 
 
 
//-------------------------------------------------------
 
// LOW POWER MODE: CPUOFF
 
//-------------------------------------------------------
 
// When uncommented, this define will include the
 
// clock gate allowing to switch off MCLK in
 
// all low power modes: LPM0, LPM1, LPM2, LPM3, LPM4
 
//-------------------------------------------------------
 
`define CPUOFF_EN
 
 
 
//-------------------------------------------------------
 
// LOW POWER MODE: SCG0
 
//-------------------------------------------------------
 
// When uncommented, this define will enable the
 
// DCO_ENABLE/WKUP port control (always 1 when commented).
 
// This allows to switch off the DCO oscillator in the
 
// following low power modes: LPM1, LPM3, LPM4
 
//-------------------------------------------------------
 
`define SCG0_EN
 
 
 
//-------------------------------------------------------
 
// LOW POWER MODE: SCG1
 
//-------------------------------------------------------
 
// When uncommented, this define will include the
 
// clock gate allowing to switch off SMCLK in
 
// the following low power modes: LPM2, LPM3, LPM4
 
//-------------------------------------------------------
 
`define SCG1_EN
 
 
 
//-------------------------------------------------------
 
// LOW POWER MODE: OSCOFF
 
//-------------------------------------------------------
 
// When uncommented, this define will include the
 
// LFXT_CLK clock gate and enable the LFXT_ENABLE/WKUP
 
// port control (always 1 when commented).
 
// This allows to switch off the low frequency oscillator
 
// in the following low power modes: LPM4
 
//-------------------------------------------------------
 
`define OSCOFF_EN
 
 
 
 
 
 
 
`endif
 
 
//==========================================================================//
//==========================================================================//
//==========================================================================//
//==========================================================================//
//==========================================================================//
//==========================================================================//
//==========================================================================//
//==========================================================================//
//=====        SYSTEM CONSTANTS --- !!!!!!!! DO NOT EDIT !!!!!!!!      =====//
//=====        SYSTEM CONSTANTS --- !!!!!!!! DO NOT EDIT !!!!!!!!      =====//
Line 434... Line 613...
`define I_EXT1      3'h3
`define I_EXT1      3'h3
`define I_EXT2      3'h4
`define I_EXT2      3'h4
`define I_IDLE      3'h5
`define I_IDLE      3'h5
 
 
// Execution state machine
// Execution state machine
`define E_IRQ_0     4'h0
// (swapped E_IRQ_0 and E_IRQ_2 values to suppress glitch generation warning from lint tool)
 
`define E_IRQ_0     4'h2
`define E_IRQ_1     4'h1
`define E_IRQ_1     4'h1
`define E_IRQ_2     4'h2
`define E_IRQ_2     4'h0
`define E_IRQ_3     4'h3
`define E_IRQ_3     4'h3
`define E_IRQ_4     4'h4
`define E_IRQ_4     4'h4
`define E_SRC_AD    4'h5
`define E_SRC_AD    4'h5
`define E_SRC_RD    4'h6
`define E_SRC_RD    4'h6
`define E_SRC_WR    4'h7
`define E_SRC_WR    4'h7
Line 496... Line 676...
 
 
// Basic clock module: BCSCTL1 Control Register
// Basic clock module: BCSCTL1 Control Register
`define DIVAx       5:4
`define DIVAx       5:4
 
 
// Basic clock module: BCSCTL2 Control Register
// Basic clock module: BCSCTL2 Control Register
 
`define SELMx       7
 
`define DIVMx       5:4
`define SELS        3
`define SELS        3
`define DIVSx       2:1
`define DIVSx       2:1
 
 
 
// MCLK Clock gate
 
`ifdef CPUOFF_EN
 
  `define MCLK_CGATE
 
`else
 
`ifdef MCLK_DIVIDER
 
  `define MCLK_CGATE
 
`endif
 
`endif
 
 
 
// SMCLK Clock gate
 
`ifdef SCG1_EN
 
  `define SMCLK_CGATE
 
`else
 
`ifdef SMCLK_DIVIDER
 
  `define SMCLK_CGATE
 
`endif
 
`endif
 
 
//
//
// DEBUG INTERFACE EXTRA CONFIGURATION
// DEBUG INTERFACE EXTRA CONFIGURATION
//======================================
//======================================
 
 
// Debug interface: CPU version
// Debug interface: CPU version
`define CPU_VERSION   3'h1
`define CPU_VERSION   3'h2
 
 
// Debug interface: Software breakpoint opcode
// Debug interface: Software breakpoint opcode
`define DBG_SWBRK_OP 16'h4343
`define DBG_SWBRK_OP 16'h4343
 
 
// Debug UART interface auto data synchronization
// Debug UART interface auto data synchronization
Line 541... Line 740...
//             `define DBG_JTAG -> DON'T UNCOMMENT, NOT SUPPORTED
//             `define DBG_JTAG -> DON'T UNCOMMENT, NOT SUPPORTED
//
//
`define DBG_UART
`define DBG_UART
//`define DBG_JTAG
//`define DBG_JTAG
 
 
 
// Debug interface input synchronizer
 
`define SYNC_DBG_UART_RXD
 
 
// Enable/Disable the hardware breakpoint RANGE mode
// Enable/Disable the hardware breakpoint RANGE mode
`ifdef DBG_HWBRK_RANGE
`ifdef DBG_HWBRK_RANGE
 `define HWBRK_RANGE 1'b1
 `define HWBRK_RANGE 1'b1
`else
`else
 `define HWBRK_RANGE 1'b0
 `define HWBRK_RANGE 1'b0
Line 575... Line 777...
// If uncommented, the following define selects
// If uncommented, the following define selects
// the 16x16 multiplier (1 cycle) instead of the
// the 16x16 multiplier (1 cycle) instead of the
// default 16x8 multplier (2 cycles)
// default 16x8 multplier (2 cycles)
//`define MPY_16x16
//`define MPY_16x16
 
 
 No newline at end of file
 No newline at end of file
 
//======================================
 
// CONFIGURATION CHECKS
 
//======================================
 
`ifdef LFXT_DOMAIN
 
`else
 
 `ifdef MCLK_MUX
 
CONFIGURATION ERROR: THE MCLK_MUX CAN ONLY BE ENABLED IF THE LFXT_DOMAIN IS ENABLED AS WELL
 
 `endif
 
 `ifdef SMCLK_MUX
 
CONFIGURATION ERROR: THE SMCLK_MUX CAN ONLY BE ENABLED IF THE LFXT_DOMAIN IS ENABLED AS WELL
 
 `endif
 
 `ifdef WATCHDOG_MUX
 
CONFIGURATION ERROR: THE WATCHDOG_MUX CAN ONLY BE ENABLED IF THE LFXT_DOMAIN IS ENABLED AS WELL
 
 `else
 
   `ifdef WATCHDOG_NOMUX_ACLK
 
CONFIGURATION ERROR: THE WATCHDOG_NOMUX_ACLK CAN ONLY BE ENABLED IF THE LFXT_DOMAIN IS ENABLED AS WELL
 
   `endif
 
 `endif
 
 `ifdef OSCOFF_EN
 
CONFIGURATION ERROR: THE OSCOFF LOW POWER MODE CAN ONLY BE ENABLED IF THE LFXT_DOMAIN IS ENABLED AS WELL
 
 `endif
 
`endif
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.