Subversion Repositories zxusbnet

Rev

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

  1. // ZXiznet project
  2. // (c) NedoPC 2012
  3. //
  4. // test module for sl811
  5. // tests whether transactions going for it are correct
  6.  
  7. module sl811
  8. (
  9.         input  wire       rst_n,
  10.         input  wire       a0,
  11.         input  wire       cs_n,
  12.         input  wire       rd_n,
  13.         input  wire       wr_n,
  14.         input  wire       ms,
  15.         output reg        intrq,
  16.         inout  wire [7:0] d
  17. );
  18.  
  19.        
  20.         reg       access_addr;
  21.         reg       access_rnw;
  22.         reg [7:0] wr_data;
  23.         reg [7:0] rd_data;
  24.        
  25.         wire rd = ~(cs_n|rd_n);
  26.         wire wr = ~(cs_n|wr_n);
  27.  
  28.  
  29.         initial
  30.         begin
  31.                 intrq = 1'b0;
  32.         end
  33.  
  34.  
  35.  
  36.         always @(negedge rd)
  37.         begin
  38.                 access_addr <= a0;
  39.                 access_rnw  <= 1'b1;
  40.         end
  41.  
  42.         assign d = rd ? rd_data : 8'bZZZZ_ZZZZ;
  43.        
  44.        
  45.        
  46.         always @(negedge wr)
  47.         begin
  48.                 access_addr <= a0;
  49.                 access_rnw  <= 1'b0;
  50.                 wr_data     <= d;
  51.         end
  52.  
  53.  
  54.  
  55.  
  56.  
  57.         task set_intrq
  58.         (
  59.                 input new_intrq
  60.         );
  61.                 intrq = new_intrq;
  62.  
  63.         endtask
  64.        
  65.  
  66.         function get_rst_n;
  67.        
  68.                 get_rst_n = rst_n;
  69.  
  70.         endfunction
  71.  
  72.  
  73.         function get_ms;
  74.  
  75.                 get_ms = ms;
  76.        
  77.         endfunction
  78.  
  79.        
  80.         function get_addr;
  81.                
  82.                 get_addr = access_addr;
  83.        
  84.         endfunction
  85.        
  86.        
  87.         function get_rnw;
  88.        
  89.                 get_rnw = access_rnw;
  90.        
  91.         endfunction
  92.        
  93.        
  94.         function [7:0] get_wr_data;
  95.                
  96.                 get_wr_data = wr_data;
  97.        
  98.         endfunction
  99.        
  100.        
  101.         task set_rd_data( input [7:0] data );
  102.        
  103.                 rd_data = data;
  104.        
  105.         endtask
  106.        
  107.        
  108.  
  109.  
  110. endmodule
  111.  
  112.