Subversion Repositories pentevo

Rev

Rev 576 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1. // PentEvo project (c) NedoPC 2012
  2. //
  3. // break function: when CPU M1 address equals to predefined, NMI is generated
  4.  
  5. `include "../include/tune.v"
  6.  
  7. module zbreak
  8. (
  9.         input  wire        fclk,  // global FPGA clock
  10.         input  wire        rst_n, // system reset
  11.  
  12.         input  wire        zpos,
  13.         input  wire        zneg,
  14.  
  15.  
  16.         input  wire [15:0] a,
  17.  
  18.         input  wire        mreq_n,
  19.         input  wire        m1_n,
  20.  
  21.  
  22.         input  wire        brk_ena,
  23.         input  wire [15:0] brk_addr,
  24.  
  25.  
  26.         output reg         imm_nmi
  27. );
  28.  
  29.  
  30.  
  31.         always @(posedge fclk, negedge rst_n)
  32.         if( !rst_n )
  33.                 imm_nmi <= 1'b0;
  34.         else if( zneg && !mreq_n && !m1_n && a==brk_addr && brk_ena && !imm_nmi )
  35.                 imm_nmi <= 1'b1;
  36.         else
  37.                 imm_nmi <= 1'b0;
  38.  
  39.  
  40. endmodule
  41.  
  42.