Subversion Repositories ngs

Rev

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