Subversion Repositories ngs

Rev

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

  1. module GS_3032(
  2.  
  3.         config_n,       // ACEX1K config pins
  4.         status_n,       //
  5.         conf_done,      //
  6.         cs,                     //
  7.         init_done,      //
  8.  
  9.         clk24in,        // 24mhz in
  10.         clk20in,        // 20mhz in
  11.         clkout,         // clock out
  12.         clksel0,        // clock select 0 (1=divide by 2, 0=no divide)
  13.         clksel1,        // clock select 1 (1=clk20in, 0=clk24in)
  14.  
  15.         a6,a7,a14,a15,  // z80 signals
  16.         iorq_n,mreq_n,  //
  17.         rd_n,wr_n,              //
  18.         d7,d0,                  //
  19.  
  20.         mema14,mema15,  // signals to memories
  21.         romcs_n,ramcs0_n,
  22.         memoe_n,memwe_n,
  23.  
  24.         coldres_n,              // cold reset input
  25.  
  26.         warmres_n,              // warm reset output
  27.  
  28.         clkin                   // input of clkout signal
  29. );
  30.  
  31.         output config_n; reg config_n;
  32.         input status_n;
  33.         input conf_done;
  34.         output cs; reg cs;
  35.         input init_done;
  36.  
  37.         input clk24in;
  38.         input clk20in;
  39.         output clkout; reg clkout;
  40.         input clksel0,clksel1;
  41.  
  42.         input a6,a7,a14,a15;
  43.         input iorq_n,mreq_n,rd_n,wr_n;
  44.         inout d7,d0; reg d7,d0;
  45.  
  46.         output mema14,mema15; reg mema14,mema15;
  47.         output romcs_n,ramcs0_n; reg romcs_n,ramcs0_n;
  48.         output memoe_n,memwe_n; reg memoe_n,memwe_n;
  49.  
  50.         input coldres_n;
  51.  
  52.         input warmres_n;
  53.  
  54.         input clkin;
  55.  
  56.         reg int_mema14,int_mema15;
  57.         reg int_romcs_n,int_ramcs0_n;
  58.         reg int_memoe_n,int_memwe_n;
  59.         reg int_cs;
  60.  
  61.  
  62.         reg [1:0] memcfg; // memcfg[1]: 1 ram, 0 roms
  63.                           // memcfg[0]: 0 page0, 1 page1 -> in 8000-ffff region
  64.  
  65.         reg diver [0:10];
  66.  
  67.         reg disbl; // =1 - 3032 disabled, =0 - enabled
  68.  
  69.         reg was_cold_reset_n; // 1 - no cold reset, 0 - was cold reset
  70.  
  71.  
  72.         reg [1:0] dbout;
  73.         wire [1:0] dbin;
  74.  
  75.         assign dbin[1] = d7;
  76.         assign dbin[0] = d0;
  77.  
  78.  
  79.         wire memcfg_write;
  80.         wire rescfg_write;
  81.  
  82.         wire coldrstf_read;
  83.         wire fpgastat_read;
  84.  
  85.  
  86.         reg [3:0] rstcount; // counter for warm reset period
  87.  
  88.         reg [2:0] disbl_sync;
  89.  
  90.  
  91.        
  92.        
  93.         clocker myclk( .clk1(clk24in),
  94.                        .clk2(clk20in),
  95.                        .clksel(clksel1),
  96.                        .divsel(clksel0),
  97.                        .clkout(clkout) );
  98.  
  99.  
  100.  
  101.  
  102.  
  103.         always @*
  104.         begin
  105.                 cs <= 1'b0;
  106.                 d0 <= 1'bZ;
  107.                 d7 <= 1'bZ;
  108.  
  109.                 mema14 <= 1'bZ;
  110.                 mema15 <= 1'bZ;
  111.                 romcs_n <= 1'bZ;
  112.                 ramcs0_n <= 1'bZ;
  113.                 memoe_n <= 1'bZ;
  114.                 memwe_n <= 1'bZ;
  115.         end
  116.  
  117.  
  118.         always @(coldres_n, warmres_n)
  119.         begin
  120.                 if( coldres_n==1'b0)
  121.                         config_n <= 1'b0;
  122.                 else if( warmres_n==1'b0 )
  123.                         config_n <= 1'b1;
  124.         end
  125.  
  126.  
  127.  
  128. endmodule
  129.