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

Subversion Repositories dbg_interface

[/] [dbg_interface/] [tags/] [sdram_test_working/] [rtl/] [verilog/] [dbg_registers.v] - Diff between revs 5 and 12

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

Rev 5 Rev 12
Line 43... Line 43...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.2  2001/09/18 14:13:47  mohor
 
// Trace fixed. Some registers changed, trace simplified.
 
//
// Revision 1.1.1.1  2001/09/13 13:49:19  mohor
// Revision 1.1.1.1  2001/09/13 13:49:19  mohor
// Initial official release.
// Initial official release.
//
//
// Revision 1.3  2001/06/01 22:22:35  mohor
// Revision 1.3  2001/06/01 22:22:35  mohor
// This is a backup. It is not a fully working version. Not for use, yet.
// This is a backup. It is not a fully working version. Not for use, yet.
Line 60... Line 63...
//
//
 
 
`include "dbg_timescale.v"
`include "dbg_timescale.v"
`include "dbg_defines.v"
`include "dbg_defines.v"
 
 
module dbg_registers(DataIn, DataOut, Address, RW, Access, Clk, Reset,
module dbg_registers(DataIn, DataOut, Address, RW, Access, Clk, Bp, Reset,
                     `ifdef TRACE_ENABLED
                     `ifdef TRACE_ENABLED
                     ContinMode,
                     ContinMode,
                     TraceEnable, WpTrigger, BpTrigger, LSSTrigger,
                     TraceEnable, WpTrigger, BpTrigger, LSSTrigger,
                     ITrigger, TriggerOper, WpQualif, BpQualif, LSSQualif, IQualif,
                     ITrigger, TriggerOper, WpQualif, BpQualif, LSSQualif, IQualif,
                     QualifOper, RecordPC, RecordLSEA, RecordLDATA,
                     QualifOper, RecordPC, RecordLSEA, RecordLDATA,
Line 83... Line 86...
input [4:0] Address;
input [4:0] Address;
 
 
input RW;
input RW;
input Access;
input Access;
input Clk;
input Clk;
 
input Bp;
input Reset;
input Reset;
 
 
output [31:0] DataOut;
output [31:0] DataOut;
reg    [31:0] DataOut;
reg    [31:0] DataOut;
 
 
Line 137... Line 141...
`endif
`endif
 
 
  output RiscStall;
  output RiscStall;
  output RiscReset;
  output RiscReset;
 
 
 
 
  wire MODER_Acc =   (Address == `MODER_ADR)   & Access;
  wire MODER_Acc =   (Address == `MODER_ADR)   & Access;
  wire RISCOP_Acc =  (Address == `RISCOP_ADR)  & Access;
  wire RISCOP_Acc =  (Address == `RISCOP_ADR)  & Access;
`ifdef TRACE_ENABLED
`ifdef TRACE_ENABLED
  wire TSEL_Acc =    (Address == `TSEL_ADR)    & Access;
  wire TSEL_Acc =    (Address == `TSEL_ADR)    & Access;
  wire QSEL_Acc =    (Address == `QSEL_ADR)    & Access;
  wire QSEL_Acc =    (Address == `QSEL_ADR)    & Access;
Line 170... Line 173...
  wire RECSEL_Rd =  RECSEL_Acc  &  ~RW;
  wire RECSEL_Rd =  RECSEL_Acc  &  ~RW;
`endif
`endif
 
 
 
 
  wire [31:0] MODEROut;
  wire [31:0] MODEROut;
  wire [1:0]  RISCOPOut;
  wire [1:1]  RISCOPOut;
 
 
`ifdef TRACE_ENABLED
`ifdef TRACE_ENABLED
  wire [31:0] TSELOut;
  wire [31:0] TSELOut;
  wire [31:0] QSELOut;
  wire [31:0] QSELOut;
  wire [31:0] SSELOut;
  wire [31:0] SSELOut;
Line 188... Line 191...
`else
`else
  assign MODEROut[31:0] = 32'h0000;
  assign MODEROut[31:0] = 32'h0000;
`endif
`endif
 
 
 
 
  dbg_register #(2)  RISCOP (.DataIn(DataIn[1:0]), .DataOut(RISCOPOut[1:0]), .Write(RISCOP_Wr),   .Clk(Clk), .Reset(Reset), .Default(`RISCOP_DEF));
  reg RiscStallBp;
 
  always @(posedge Clk or posedge Reset)
 
  begin
 
    if(Reset)
 
      RiscStallBp <= 1'b0;
 
    else
 
    if(Bp)                      // Breakpoint sets bit
 
      RiscStallBp <= 1'b1;
 
    else
 
    if(RISCOP_Wr)               // Register access can set or clear bit
 
      RiscStallBp <= DataIn[0];
 
  end
 
 
 
  dbg_register #(1)  RISCOP (.DataIn(DataIn[1]), .DataOut(RISCOPOut[1]), .Write(RISCOP_Wr),   .Clk(Clk), .Reset(Reset), .Default(1'b0));
 
 
 
 
`ifdef TRACE_ENABLED
`ifdef TRACE_ENABLED
  dbg_register #(2)  MODER  (.DataIn(DataIn[17:16]), .DataOut(MODEROut[17:16]), .Write(MODER_Wr),   .Clk(Clk), .Reset(Reset), .Default(`MODER_DEF));
  dbg_register #(2)  MODER  (.DataIn(DataIn[17:16]), .DataOut(MODEROut[17:16]), .Write(MODER_Wr),   .Clk(Clk), .Reset(Reset), .Default(`MODER_DEF));
  dbg_register #(32) TSEL   (.DataIn(DataIn),      .DataOut(TSELOut),    .Write(TSEL_Wr),    .Clk(Clk), .Reset(Reset), .Default(`TSEL_DEF));
  dbg_register #(32) TSEL   (.DataIn(DataIn),      .DataOut(TSELOut),    .Write(TSEL_Wr),    .Clk(Clk), .Reset(Reset), .Default(`TSEL_DEF));
  dbg_register #(32) QSEL   (.DataIn(DataIn),      .DataOut(QSELOut),    .Write(QSEL_Wr),    .Clk(Clk), .Reset(Reset), .Default(`QSEL_DEF));
  dbg_register #(32) QSEL   (.DataIn(DataIn),      .DataOut(QSELOut),    .Write(QSEL_Wr),    .Clk(Clk), .Reset(Reset), .Default(`QSEL_DEF));
Line 204... Line 221...
 
 
always @ (posedge Clk)
always @ (posedge Clk)
begin
begin
  if(MODER_Rd)    DataOut<= #Tp MODEROut;
  if(MODER_Rd)    DataOut<= #Tp MODEROut;
  else
  else
  if(RISCOP_Rd)   DataOut<= #Tp {30'h0, RISCOPOut};
  if(RISCOP_Rd)   DataOut<= #Tp {30'h0, RISCOPOut[1], RiscStall};
`ifdef TRACE_ENABLED
`ifdef TRACE_ENABLED
  else
  else
  if(TSEL_Rd)     DataOut<= #Tp TSELOut;
  if(TSEL_Rd)     DataOut<= #Tp TSELOut;
  else
  else
  if(QSEL_Rd)     DataOut<= #Tp QSELOut;
  if(QSEL_Rd)     DataOut<= #Tp QSELOut;
Line 262... Line 279...
  assign RecordReadSPR      = RECSELOut[4];
  assign RecordReadSPR      = RECSELOut[4];
  assign RecordWriteSPR     = RECSELOut[5];
  assign RecordWriteSPR     = RECSELOut[5];
  assign RecordINSTR        = RECSELOut[6];
  assign RecordINSTR        = RECSELOut[6];
`endif
`endif
 
 
  assign RiscStall          = RISCOPOut[0];
  assign RiscStall          = Bp | RiscStallBp;   // Bp asynchronously sets the RiscStall, then RiscStallBp (from register) holds it active
  assign RiscReset          = RISCOPOut[1];
  assign RiscReset          = RISCOPOut[1];
 
 
endmodule
endmodule
 
 
 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.