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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [bench/] [verilog/] [or1200_monitor.v] - Diff between revs 6 and 49

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

Rev 6 Rev 49
Line 237... Line 237...
    * Currently, only breaks on an all zero instruction, but should probably be
    * Currently, only breaks on an all zero instruction, but should probably be
    * made to break for anything with an X in it too. And of course ideally this
    * made to break for anything with an X in it too. And of course ideally this
    * shouldn't be needed - but is handy if someone changes something and stops
    * shouldn't be needed - but is handy if someone changes something and stops
    * the test continuing forever.
    * the test continuing forever.
    */
    */
 
   integer num_nul_inst;
 
   initial num_nul_inst = 0;
 
 
   task monitor_for_crash;
   task monitor_for_crash;
      `define OR1200_MONITOR_CRASH_TRACE_SIZE 32
      `define OR1200_MONITOR_CRASH_TRACE_SIZE 32
      reg [31:0] insn_trace [0:`OR1200_MONITOR_CRASH_TRACE_SIZE-1]; //Trace buffer of 32 instructions
      reg [31:0] insn_trace [0:`OR1200_MONITOR_CRASH_TRACE_SIZE-1]; //Trace buffer of 32 instructions
      reg [31:0] addr_trace [0:`OR1200_MONITOR_CRASH_TRACE_SIZE-1]; //Trace buffer of the addresses of those instructions
      reg [31:0] addr_trace [0:`OR1200_MONITOR_CRASH_TRACE_SIZE-1]; //Trace buffer of the addresses of those instructions
      integer i;
      integer i;
 
 
     begin
     begin
        if (`OR1200_TOP.or1200_cpu.or1200_ctrl.wb_insn == 32'h00000000)
        if (`OR1200_TOP.or1200_cpu.or1200_ctrl.wb_insn == 32'h00000000)
 
          num_nul_inst = num_nul_inst + 1;
 
 
 
        if (num_nul_inst == 1000) // Sat a loop a bit too long...
          begin
          begin
             $fdisplay(fgeneral, "ERROR - no instruction at PC %h", `OR1200_TOP.or1200_cpu.or1200_except.wb_pc);
             $fdisplay(fgeneral, "ERROR - no instruction at PC %h", `OR1200_TOP.or1200_cpu.or1200_except.wb_pc);
             $fdisplay(fgeneral, "Crash trace: Last %d instructions: ",`OR1200_MONITOR_CRASH_TRACE_SIZE);
             $fdisplay(fgeneral, "Crash trace: Last %d instructions: ",`OR1200_MONITOR_CRASH_TRACE_SIZE);
 
 
             $fdisplay(fgeneral, "PC\t\tINSTR");
             $fdisplay(fgeneral, "PC\t\tINSTR");

powered by: WebSVN 2.1.0

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