Subversion Repositories pentevo

Rev

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

  1. // Pentevo project (c) NedoPC 2011
  2. //
  3. // frame INT generation
  4.  
  5. `include "../include/tune.v"
  6.  
  7. module zint
  8. (
  9.         input  wire fclk,
  10.  
  11.         input  wire zpos,
  12.         input  wire zneg,
  13.  
  14.         input  wire int_start,
  15.  
  16.         input  wire iorq_n,
  17.         input  wire m1_n,
  18.  
  19.         output reg  int_n
  20. );
  21.  
  22.         wire intend;
  23.  
  24.         reg [9:0] intctr;
  25.  
  26.  
  27.  
  28. `ifdef SIMULATE
  29.         initial
  30.         begin
  31.                 intctr = 10'b1100000000;
  32.         end
  33. `endif
  34.  
  35.  
  36.         always @(posedge fclk)
  37.         begin
  38.                 if( int_start )
  39.                         intctr <= 10'd0;
  40.                 else if( !intctr[9:8] )
  41.                         intctr <= intctr + 10'd1;
  42.         end
  43.  
  44.  
  45.         assign intend = intctr[9:8] || ( (!iorq_n) && (!m1_n) && zneg );
  46.  
  47.  
  48.         always @(posedge fclk)
  49.         begin
  50.                 if( int_start )
  51.                         int_n <= 1'b0;
  52.                 else if( intend )
  53.                         int_n <= 1'bZ;
  54.         end
  55.  
  56.  
  57.  
  58.  
  59.  
  60. endmodule
  61.  
  62.