Line 29... |
Line 29... |
//
|
//
|
// *Author(s):
|
// *Author(s):
|
// - Olivier Girard, olgirard@gmail.com
|
// - Olivier Girard, olgirard@gmail.com
|
//
|
//
|
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
// $Rev: 106 $
|
// $Rev: 111 $
|
// $LastChangedBy: olivier.girard $
|
// $LastChangedBy: olivier.girard $
|
// $LastChangedDate: 2011-03-25 23:01:03 +0100 (Fri, 25 Mar 2011) $
|
// $LastChangedDate: 2011-05-20 22:39:02 +0200 (Fri, 20 May 2011) $
|
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
`include "timescale.v"
|
`include "timescale.v"
|
`ifdef OMSP_NO_INCLUDE
|
`ifdef OMSP_NO_INCLUDE
|
`else
|
`else
|
`include "openMSP430_defines.v"
|
`include "openMSP430_defines.v"
|
Line 60... |
Line 60... |
wire [15:0] pmem_din;
|
wire [15:0] pmem_din;
|
wire [1:0] pmem_wen;
|
wire [1:0] pmem_wen;
|
wire [15:0] pmem_dout;
|
wire [15:0] pmem_dout;
|
|
|
// Peripherals interface
|
// Peripherals interface
|
wire [7:0] per_addr;
|
wire [13:0] per_addr;
|
wire [15:0] per_din;
|
wire [15:0] per_din;
|
wire [15:0] per_dout;
|
wire [15:0] per_dout;
|
wire [1:0] per_we;
|
wire [1:0] per_we;
|
wire per_en;
|
wire per_en;
|
|
|
Line 125... |
Line 125... |
reg lfxt_clk;
|
reg lfxt_clk;
|
wire mclk;
|
wire mclk;
|
wire aclk_en;
|
wire aclk_en;
|
wire smclk_en;
|
wire smclk_en;
|
reg reset_n;
|
reg reset_n;
|
wire puc;
|
wire puc_rst;
|
reg nmi;
|
reg nmi;
|
reg [13:0] irq;
|
reg [13:0] irq;
|
wire [13:0] irq_acc;
|
wire [13:0] irq_acc;
|
wire [13:0] irq_in;
|
wire [13:0] irq_in;
|
reg cpu_en;
|
reg cpu_en;
|
Line 285... |
Line 285... |
.per_en (per_en), // Peripheral enable (high active)
|
.per_en (per_en), // Peripheral enable (high active)
|
.pmem_addr (pmem_addr), // Program Memory address
|
.pmem_addr (pmem_addr), // Program Memory address
|
.pmem_cen (pmem_cen), // Program Memory chip enable (low active)
|
.pmem_cen (pmem_cen), // Program Memory chip enable (low active)
|
.pmem_din (pmem_din), // Program Memory data input (optional)
|
.pmem_din (pmem_din), // Program Memory data input (optional)
|
.pmem_wen (pmem_wen), // Program Memory write enable (low active) (optional)
|
.pmem_wen (pmem_wen), // Program Memory write enable (low active) (optional)
|
.puc (puc), // Main system reset
|
.puc_rst (puc_rst), // Main system reset
|
.smclk_en (smclk_en), // SMCLK enable
|
.smclk_en (smclk_en), // SMCLK enable
|
|
|
// INPUTs
|
// INPUTs
|
.cpu_en (cpu_en), // Enable CPU code execution
|
.cpu_en (cpu_en), // Enable CPU code execution
|
.dbg_en (dbg_en), // Debug interface enable
|
.dbg_en (dbg_en), // Debug interface enable
|
Line 357... |
Line 357... |
.p6_din (p6_din), // Port 6 data input
|
.p6_din (p6_din), // Port 6 data input
|
.per_addr (per_addr), // Peripheral address
|
.per_addr (per_addr), // Peripheral address
|
.per_din (per_din), // Peripheral data input
|
.per_din (per_din), // Peripheral data input
|
.per_en (per_en), // Peripheral enable (high active)
|
.per_en (per_en), // Peripheral enable (high active)
|
.per_we (per_we), // Peripheral write enable (high active)
|
.per_we (per_we), // Peripheral write enable (high active)
|
.puc (puc) // Main system reset
|
.puc_rst (puc_rst) // Main system reset
|
);
|
);
|
|
|
//
|
//
|
// Timers
|
// Timers
|
//----------------------------------
|
//----------------------------------
|
Line 387... |
Line 387... |
.mclk (mclk), // Main system clock
|
.mclk (mclk), // Main system clock
|
.per_addr (per_addr), // Peripheral address
|
.per_addr (per_addr), // Peripheral address
|
.per_din (per_din), // Peripheral data input
|
.per_din (per_din), // Peripheral data input
|
.per_en (per_en), // Peripheral enable (high active)
|
.per_en (per_en), // Peripheral enable (high active)
|
.per_we (per_we), // Peripheral write enable (high active)
|
.per_we (per_we), // Peripheral write enable (high active)
|
.puc (puc), // Main system reset
|
.puc_rst (puc_rst), // Main system reset
|
.smclk_en (smclk_en), // SMCLK enable (from CPU)
|
.smclk_en (smclk_en), // SMCLK enable (from CPU)
|
.ta_cci0a (ta_cci0a), // Timer A compare 0 input A
|
.ta_cci0a (ta_cci0a), // Timer A compare 0 input A
|
.ta_cci0b (ta_cci0b), // Timer A compare 0 input B
|
.ta_cci0b (ta_cci0b), // Timer A compare 0 input B
|
.ta_cci1a (ta_cci1a), // Timer A compare 1 input A
|
.ta_cci1a (ta_cci1a), // Timer A compare 1 input A
|
.ta_cci1b (ta_cci1b), // Timer A compare 1 input B
|
.ta_cci1b (ta_cci1b), // Timer A compare 1 input B
|
Line 413... |
Line 413... |
.mclk (mclk), // Main system clock
|
.mclk (mclk), // Main system clock
|
.per_addr (per_addr), // Peripheral address
|
.per_addr (per_addr), // Peripheral address
|
.per_din (per_din), // Peripheral data input
|
.per_din (per_din), // Peripheral data input
|
.per_en (per_en), // Peripheral enable (high active)
|
.per_en (per_en), // Peripheral enable (high active)
|
.per_we (per_we), // Peripheral write enable (high active)
|
.per_we (per_we), // Peripheral write enable (high active)
|
.puc (puc) // Main system reset
|
.puc_rst (puc_rst) // Main system reset
|
);
|
);
|
|
|
template_periph_16b template_periph_16b_0 (
|
`ifdef CVER
|
|
template_periph_16b #(15'h0190) template_periph_16b_0 (
|
|
`else
|
|
template_periph_16b #(.BASE_ADDR(15'd`PER_SIZE-15'h0070)) template_periph_16b_0 (
|
|
`endif
|
// OUTPUTs
|
// OUTPUTs
|
.per_dout (per_dout_temp_16b), // Peripheral data output
|
.per_dout (per_dout_temp_16b), // Peripheral data output
|
|
|
// INPUTs
|
// INPUTs
|
.mclk (mclk), // Main system clock
|
.mclk (mclk), // Main system clock
|
.per_addr (per_addr), // Peripheral address
|
.per_addr (per_addr), // Peripheral address
|
.per_din (per_din), // Peripheral data input
|
.per_din (per_din), // Peripheral data input
|
.per_en (per_en), // Peripheral enable (high active)
|
.per_en (per_en), // Peripheral enable (high active)
|
.per_we (per_we), // Peripheral write enable (high active)
|
.per_we (per_we), // Peripheral write enable (high active)
|
.puc (puc) // Main system reset
|
.puc_rst (puc_rst) // Main system reset
|
);
|
);
|
|
|
|
|
//
|
//
|
// Combine peripheral data bus
|
// Combine peripheral data bus
|
Line 477... |
Line 480... |
.inst_pc (inst_pc), // Instruction Program counter
|
.inst_pc (inst_pc), // Instruction Program counter
|
.inst_short (inst_short), // Currently executed instruction (short version)
|
.inst_short (inst_short), // Currently executed instruction (short version)
|
|
|
// INPUTs
|
// INPUTs
|
.mclk (mclk), // Main system clock
|
.mclk (mclk), // Main system clock
|
.puc (puc) // Main system reset
|
.puc_rst (puc_rst) // Main system reset
|
);
|
);
|
|
|
|
|
//
|
//
|
// Generate Waveform
|
// Generate Waveform
|