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 w5300
  5. // tests whether transactions going for it are correct
  6.  
  7. module w5300
  8. (
  9.         input  wire       rst_n,
  10.         input  wire [9:0] addr,
  11.         input  wire       cs_n,
  12.         input  wire       rd_n,
  13.         input  wire       wr_n,
  14.         output reg        int_n,
  15.         inout  wire [7:0] d
  16. );
  17.  
  18.        
  19.         reg [9:0] access_addr;
  20.         reg       access_rnw;
  21.         reg [7:0] rd_data;
  22.         reg [7:0] wr_data;
  23.  
  24.        
  25.         wire rd = ~(cs_n|rd_n);
  26.         wire wr = ~(cs_n|wr_n);
  27.  
  28.  
  29.         initial
  30.         begin
  31.                 int_n = 1'b1;
  32.         end
  33.  
  34.  
  35.  
  36.         always @(negedge rd)
  37.         begin
  38.                 access_addr <= addr;
  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 <= addr;
  49.                 access_rnw  <= 1'b0;
  50.                 wr_data     <= d;
  51.         end
  52.  
  53.  
  54.  
  55.  
  56.  
  57.         task set_int_n
  58.         (
  59.                 input new_int_n
  60.         );
  61.                 int_n = new_int_n;
  62.  
  63.         endtask
  64.  
  65.  
  66.  
  67.         function get_rst_n;
  68.        
  69.                 get_rst_n = rst_n;
  70.  
  71.         endfunction
  72.  
  73.  
  74.         task init_access;
  75.  
  76.                 access_addr = 'bX;
  77.                 access_rnw  = 'bX;
  78.                 wr_data     = 'bX;
  79.  
  80.         endtask
  81.        
  82.        
  83.         function [9:0] get_addr;
  84.                
  85.                 get_addr = access_addr;
  86.        
  87.         endfunction
  88.        
  89.        
  90.         function get_rnw;
  91.        
  92.                 get_rnw = access_rnw;
  93.        
  94.         endfunction
  95.        
  96.        
  97.         function [7:0] get_wr_data;
  98.                
  99.                 get_wr_data = wr_data;
  100.        
  101.         endfunction
  102.        
  103.        
  104.         task set_rd_data( input [7:0] data );
  105.        
  106.                 rd_data = data;
  107.        
  108.         endtask
  109.  
  110.  
  111.  
  112.  
  113. endmodule
  114.  
  115.