Line 29... |
Line 29... |
//
|
//
|
// *Author(s):
|
// *Author(s):
|
// - Olivier Girard, olgirard@gmail.com
|
// - Olivier Girard, olgirard@gmail.com
|
//
|
//
|
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
// $Rev: 34 $
|
// $Rev: 53 $
|
// $LastChangedBy: olivier.girard $
|
// $LastChangedBy: olivier.girard $
|
// $LastChangedDate: 2009-12-29 20:10:34 +0100 (Tue, 29 Dec 2009) $
|
// $LastChangedDate: 2010-01-27 19:17:14 +0100 (Wed, 27 Jan 2010) $
|
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
`include "timescale.v"
|
`include "timescale.v"
|
`include "openMSP430_defines.v"
|
`include "openMSP430_defines.v"
|
|
|
module omsp_dbg (
|
module omsp_dbg (
|
Line 54... |
Line 54... |
// INPUTs
|
// INPUTs
|
dbg_halt_st, // Halt/Run status from CPU
|
dbg_halt_st, // Halt/Run status from CPU
|
dbg_mem_din, // Debug unit Memory data input
|
dbg_mem_din, // Debug unit Memory data input
|
dbg_reg_din, // Debug unit CPU register data input
|
dbg_reg_din, // Debug unit CPU register data input
|
dbg_uart_rxd, // Debug interface: UART RXD
|
dbg_uart_rxd, // Debug interface: UART RXD
|
decode, // Frontend decode instruction
|
decode_noirq, // Frontend decode instruction
|
eu_mab, // Execution-Unit Memory address bus
|
eu_mab, // Execution-Unit Memory address bus
|
eu_mb_en, // Execution-Unit Memory bus enable
|
eu_mb_en, // Execution-Unit Memory bus enable
|
eu_mb_wr, // Execution-Unit Memory bus write transfer
|
eu_mb_wr, // Execution-Unit Memory bus write transfer
|
eu_mdb_in, // Memory data bus input
|
eu_mdb_in, // Memory data bus input
|
eu_mdb_out, // Memory data bus output
|
eu_mdb_out, // Memory data bus output
|
Line 87... |
Line 87... |
//=========
|
//=========
|
input dbg_halt_st; // Halt/Run status from CPU
|
input dbg_halt_st; // Halt/Run status from CPU
|
input [15:0] dbg_mem_din; // Debug unit Memory data input
|
input [15:0] dbg_mem_din; // Debug unit Memory data input
|
input [15:0] dbg_reg_din; // Debug unit CPU register data input
|
input [15:0] dbg_reg_din; // Debug unit CPU register data input
|
input dbg_uart_rxd; // Debug interface: UART RXD
|
input dbg_uart_rxd; // Debug interface: UART RXD
|
input decode; // Frontend decode instruction
|
input decode_noirq; // Frontend decode instruction
|
input [15:0] eu_mab; // Execution-Unit Memory address bus
|
input [15:0] eu_mab; // Execution-Unit Memory address bus
|
input eu_mb_en; // Execution-Unit Memory bus enable
|
input eu_mb_en; // Execution-Unit Memory bus enable
|
input [1:0] eu_mb_wr; // Execution-Unit Memory bus write transfer
|
input [1:0] eu_mb_wr; // Execution-Unit Memory bus write transfer
|
input [15:0] eu_mdb_in; // Memory data bus input
|
input [15:0] eu_mdb_in; // Memory data bus input
|
input [15:0] eu_mdb_out; // Memory data bus output
|
input [15:0] eu_mdb_out; // Memory data bus output
|
Line 624... |
Line 624... |
wire dbg_freeze = dbg_halt_st & cpu_ctl[`FRZ_BRK_EN];
|
wire dbg_freeze = dbg_halt_st & cpu_ctl[`FRZ_BRK_EN];
|
|
|
|
|
// Software break
|
// Software break
|
//--------------------------
|
//--------------------------
|
assign dbg_swbrk = (fe_mdb_in==`DBG_SWBRK_OP) & decode & cpu_ctl[`SW_BRK_EN];
|
assign dbg_swbrk = (fe_mdb_in==`DBG_SWBRK_OP) & decode_noirq & cpu_ctl[`SW_BRK_EN];
|
|
|
|
|
// Single step
|
// Single step
|
//--------------------------
|
//--------------------------
|
reg [1:0] inc_step;
|
reg [1:0] inc_step;
|