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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [core/] [rtl/] [verilog/] [omsp_dbg.v] - Diff between revs 74 and 84

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

Rev 74 Rev 84
Line 29... Line 29...
//
//
// *Author(s):
// *Author(s):
//              - Olivier Girard,    olgirard@gmail.com
//              - Olivier Girard,    olgirard@gmail.com
//
//
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// $Rev: 74 $
// $Rev: 84 $
// $LastChangedBy: olivier.girard $
// $LastChangedBy: olivier.girard $
// $LastChangedDate: 2010-08-28 21:53:08 +0200 (Sat, 28 Aug 2010) $
// $LastChangedDate: 2011-01-23 21:00:36 +0100 (Sun, 23 Jan 2011) $
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
`include "timescale.v"
`include "timescale.v"
`include "openMSP430_defines.v"
`include "openMSP430_defines.v"
 
 
module  omsp_dbg (
module  omsp_dbg (
Line 200... Line 200...
parameter           BRK3_STAT_D  = (64'h1 << BRK3_STAT);
parameter           BRK3_STAT_D  = (64'h1 << BRK3_STAT);
parameter           BRK3_ADDR0_D = (64'h1 << BRK3_ADDR0);
parameter           BRK3_ADDR0_D = (64'h1 << BRK3_ADDR0);
parameter           BRK3_ADDR1_D = (64'h1 << BRK3_ADDR1);
parameter           BRK3_ADDR1_D = (64'h1 << BRK3_ADDR1);
`endif
`endif
 
 
 
// PUC is localy used as a data.
 
reg  [1:0] puc_sync;
 
always @ (posedge mclk or posedge por)
 
  if (por) puc_sync <=  2'b11;
 
  else     puc_sync <=  {puc_sync[0] , puc};
 
wire       puc_s     =  puc_sync[1];
 
 
 
 
//============================================================================
//============================================================================
// 2)  REGISTER DECODER
// 2)  REGISTER DECODER
//============================================================================
//============================================================================
 
 
Line 296... Line 303...
// HWBRK3_PND  HWBRK2_PND  HWBRK1_PND  HWBRK0_PND  SWBRK_PND  PUC_PND  Res.  HALT_RUN
// HWBRK3_PND  HWBRK2_PND  HWBRK1_PND  HWBRK0_PND  SWBRK_PND  PUC_PND  Res.  HALT_RUN
//------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------
reg   [3:2] cpu_stat;
reg   [3:2] cpu_stat;
 
 
wire        cpu_stat_wr  = reg_wr[CPU_STAT];
wire        cpu_stat_wr  = reg_wr[CPU_STAT];
wire  [3:2] cpu_stat_set = {dbg_swbrk, puc};
wire  [3:2] cpu_stat_set = {dbg_swbrk, puc_s};
wire  [3:2] cpu_stat_clr = ~dbg_din[3:2];
wire  [3:2] cpu_stat_clr = ~dbg_din[3:2];
 
 
always @ (posedge mclk or posedge por)
always @ (posedge mclk or posedge por)
  if (por)              cpu_stat <=  2'b00;
  if (por)              cpu_stat <=  2'b00;
  else if (cpu_stat_wr) cpu_stat <= ((cpu_stat & cpu_stat_clr) | cpu_stat_set);
  else if (cpu_stat_wr) cpu_stat <= ((cpu_stat & cpu_stat_clr) | cpu_stat_set);
Line 614... Line 621...
wire dbg_reset  = cpu_ctl[`CPU_RST];
wire dbg_reset  = cpu_ctl[`CPU_RST];
 
 
 
 
// Break after reset
// Break after reset
//--------------------------
//--------------------------
wire halt_rst = cpu_ctl[`RST_BRK_EN] & puc;
wire halt_rst = cpu_ctl[`RST_BRK_EN] & puc_s;
 
 
 
 
// Freeze peripherals
// Freeze peripherals
//--------------------------
//--------------------------
wire dbg_freeze = dbg_halt_st & cpu_ctl[`FRZ_BRK_EN];
wire dbg_freeze = dbg_halt_st & cpu_ctl[`FRZ_BRK_EN];

powered by: WebSVN 2.1.0

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