Subversion Repositories ngs

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. // (c) NedoPC 2013
  2. //
  3. // ROM for NGS testbench
  4.  
  5. module rom
  6. #(
  7.         FILENAME = "no_such_file.rom"
  8. )
  9. (
  10.         input  wire [18:0] a,
  11.         output wire [ 7:0] d,
  12.  
  13.         input  wire ce_n,
  14.         input  wire oe_n
  15. );
  16.  
  17.         integer fd,i,len,tmp;
  18.  
  19.  
  20.         reg [7:0] mem [0:524287];
  21.  
  22.  
  23.         initial
  24.         begin
  25.                 for(i=0;i<524288;i=i+1)
  26.                         mem[i] = 8'hFF;
  27.  
  28.                 fd = $fopen(FILENAME,"rb");
  29.                 if( !fd )
  30.                 begin
  31.                         $display("rom: can't open file %s!",FILENAME);
  32.                         $stop;
  33.                 end
  34.  
  35.                 tmp = $fseek(fd,0,2);
  36.                 len = $ftell(fd);
  37.                 tmp = $rewind(fd);
  38.  
  39.                 if( len != $fread(mem,fd) )
  40.                 begin
  41.                         $display("rom: can't load file %s!",FILENAME);
  42.                         $stop;
  43.                 end
  44.  
  45.                 $fclose(fd);
  46.         end
  47.  
  48.  
  49.         assign d = ( !ce_n && !oe_n ) ? mem[a] : 8'bZZZZ_ZZZZ;
  50.  
  51. endmodule
  52.  
  53.