Subversion Repositories ngs

Rev

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

  1. // part of NewGS project (c) 2007 NedoPC
  2. //
  3. // ramtest
  4.  
  5. module main(
  6.  
  7.         clk_fpga,  // clocks
  8.         clk_24mhz, //
  9.  
  10.         clksel0, // clock selection
  11.         clksel1, //
  12.  
  13.         warmres_n, // warm reset
  14.  
  15.  
  16.         d, // Z80 data bus
  17.         a, // Z80 address bus
  18.  
  19.         iorq_n,   // Z80 control signals
  20.         mreq_n,   //
  21.         rd_n,     //
  22.         wr_n,     //
  23.         m1_n,     //
  24.         int_n,    //
  25.         nmi_n,    //
  26.         busrq_n,  //
  27.         busak_n,  //
  28.         z80res_n, //
  29.  
  30.  
  31.         mema14,   // memory control
  32.         mema15,   //
  33.         mema16,   //
  34.         mema17,   //
  35.         mema18,   //
  36.         ram0cs_n, //
  37.         ram1cs_n, //
  38.         ram2cs_n, //
  39.         ram3cs_n, //
  40.         romcs_n,  //
  41.         memoe_n,  //
  42.         memwe_n,  //
  43.  
  44.  
  45.         zxid,        // zxbus signals
  46.         zxa,         //
  47.         zxa14,       //
  48.         zxa15,       //
  49.         zxiorq_n,    //
  50.         zxmreq_n,    //
  51.         zxrd_n,      //
  52.         zxwr_n,      //
  53.         zxcsrom_n,   //
  54.         zxblkiorq_n, //
  55.         zxblkrom_n,  //
  56.         zxgenwait_n, //
  57.         zxbusin,     //
  58.         zxbusena_n,  //
  59.  
  60.  
  61.         dac_bitck, // audio-DAC signals
  62.         dac_lrck,  //
  63.         dac_dat,  //
  64.  
  65.  
  66.         sd_clk, // SD card interface
  67.         sd_cs,  //
  68.         sd_do,  //
  69.         sd_di,  //
  70.         sd_wp,  //
  71.         sd_det, //
  72.  
  73.  
  74.         ma_clk, // control interface of MP3 chip
  75.         ma_cs,
  76.         ma_do,
  77.         ma_di,
  78.  
  79.         mp3_xreset, // data interface of MP3 chip
  80.         mp3_req,    //
  81.         mp3_clk,    //
  82.         mp3_dat,    //
  83.         mp3_sync,   //
  84.  
  85.         led_diag
  86. );
  87.  
  88.  
  89. // input-output description
  90.  
  91.         input clk_fpga;
  92.         input clk_24mhz;
  93.  
  94.         output clksel0; reg clksel0;
  95.         output clksel1; reg clksel1;
  96.  
  97.  
  98.         input warmres_n;
  99.  
  100.         inout  [7:0] d;// reg [7:0] d;
  101. ///////////////////////////////////////////////////////////     input [15:0] a;
  102.         output [15:0] a; wire [15:0] a;
  103.  
  104.         input iorq_n;
  105.         input mreq_n;
  106.         input rd_n;
  107.         input wr_n;
  108.         input m1_n;
  109.         output int_n; wire int_n;
  110.         output nmi_n; wire nmi_n;
  111.         output busrq_n; wire busrq_n;
  112.         input busak_n;
  113.         output z80res_n; reg z80res_n;
  114.  
  115.  
  116.         output mema14; wire mema14;
  117.         output mema15; wire mema15;
  118.         output mema16; wire mema16;
  119.         output mema17; wire mema17;
  120.         output mema18; wire mema18;
  121.         output ram0cs_n; wire ram0cs_n;
  122.         output ram1cs_n; wire ram1cs_n;
  123.         output ram2cs_n; wire ram2cs_n;
  124.         output ram3cs_n; wire ram3cs_n;
  125.         output romcs_n; wire romcs_n;
  126.         output memoe_n; wire memoe_n;
  127.         output memwe_n; wire memwe_n;
  128.  
  129.  
  130.         inout [7:0] zxid; wire [7:0] zxid;
  131.         input [7:0] zxa;
  132.         input zxa14;
  133.         input zxa15;
  134.         input zxiorq_n;
  135.         input zxmreq_n;
  136.         input zxrd_n;
  137.         input zxwr_n;
  138.         input zxcsrom_n;
  139.         output zxblkiorq_n; wire zxblkiorq_n;
  140.         output zxblkrom_n; wire zxblkrom_n;
  141.         output zxgenwait_n; wire zxgenwait_n;
  142.         output zxbusin; wire zxbusin;
  143.         output zxbusena_n; wire zxbusena_n;
  144.  
  145.  
  146.         output dac_bitck; wire dac_bitck;
  147.         output dac_lrck; wire dac_lrck;
  148.         output dac_dat; wire dac_dat;
  149.  
  150.  
  151.         output sd_clk; wire sd_clk;
  152.         output sd_cs; wire sd_cs;
  153.         output sd_do; wire sd_do;
  154.         input sd_di;
  155.         input sd_wp;
  156.         input sd_det;
  157.  
  158.  
  159.         output ma_clk; wire ma_clk;
  160.         output ma_cs; wire ma_cs;
  161.         output ma_do; wire ma_do;
  162.         input ma_di;
  163.  
  164.         output mp3_xreset; wire mp3_xreset;
  165.         input mp3_req;
  166.         output mp3_clk; wire mp3_clk;
  167.         output mp3_dat; wire mp3_dat;
  168.         output mp3_sync; wire mp3_sync;
  169.  
  170.         output led_diag;
  171.  
  172.         always @* clksel0 <= 1'b0;
  173.         always @* clksel1 <= 1'b0;
  174.  
  175.         always @* z80res_n <= 1'b0;
  176.  
  177.         assign busrq_n = 1'b1;
  178.         assign int_n = 1'b1;
  179.         assign nmi_n = 1'b1;
  180.  
  181.         assign romcs_n = 1'b1;
  182.  
  183.         assign zxid=8'bZZZZZZZZ;
  184.         assign zxblkrom_n=1'b1;
  185.         assign zxgenwait_n=1'b1;
  186.         assign zxbusin=1'b1;
  187.         assign zxbusena_n=1'b1;
  188.  
  189.         assign dac_bitck = 1'b1;
  190.         assign dac_lrck = 1'b1;
  191.         assign dac_dat = 1'b1;
  192.  
  193.         assign sd_clk = 1'b0;
  194.         assign sd_cs = 1'b1;
  195.         assign sd_do = 1'b0;
  196.  
  197.         assign ma_clk = 1'b0;
  198.         assign ma_cs = 1'b1;
  199.         assign ma_do = 1'b0;
  200.         assign mp3_xreset = 1'b0;
  201.         assign mp3_clk = 1'b0;
  202.         assign mp3_dat = 1'b0;
  203.         assign mp3_sync= 1'b0;
  204.  
  205. //////////////////////////////////////////////////////////////////////////////////
  206. //////////////////////////////////////////////////////////////////////////////////
  207. //////////////////////////////////////////////////////////////////////////////////
  208.  
  209.  
  210.         wire rst_zx = (zxa[7:0]==8'h33) & (~zxiorq_n) & (~zxwr_n);
  211.         assign zxblkiorq_n = ~(zxa[7:0]==8'h33);
  212.  
  213.         wire rst_n;
  214.         resetter myreset( .clk(clk_fpga), .rst_in_n( warmres_n & (~rst_zx) ), .rst_out_n(rst_n) );
  215.  
  216.  
  217.         wire sel0,sel1;
  218.         wire ramce;
  219.  
  220.         mem_tester mytst( .clk(clk_fpga), .rst_n(rst_n), .led(led_diag),
  221.                           .SRAM_DQ(d), .SRAM_ADDR( {sel1,sel0,mema18,mema17,mema16,mema15,mema14,a[13:0]} ),
  222.                           .SRAM_WE_N( memwe_n ), .SRAM_OE_N( memoe_n ), .SRAM_CE_N( ramce ) );
  223.         defparam mytst.SRAM_ADDR_SIZE = 21;
  224.  
  225.  
  226.         assign ram0cs_n = ( {sel1,sel0}==2'd0 )?ramce:1'b1;
  227.         assign ram1cs_n = ( {sel1,sel0}==2'd1 )?ramce:1'b1;
  228.         assign ram2cs_n = ( {sel1,sel0}==2'd2 )?ramce:1'b1;
  229.         assign ram3cs_n = ( {sel1,sel0}==2'd3 )?ramce:1'b1;
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236. endmodule
  237.