Subversion Repositories pentevo

Rev

Rev 79 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. // PentEvo project (c) NedoPC 2008-2009
  2. //
  3. // boot control firmware for AVR boot-time interworking
  4. // allows SD card access and FLASH ROM access for AVR
  5.  
  6. module main(
  7.  
  8.     // clocks
  9.     input fclk,
  10.     output clkz_out,
  11.     input clkz_in,
  12.  
  13.     // z80
  14.     input iorq_n,
  15.     input mreq_n,
  16.     input rd_n,
  17.     input wr_n,
  18.     input m1_n,
  19.     input rfsh_n,
  20.     input int_n,
  21.     input nmi_n,
  22.     input wait_n,
  23.     output res,
  24.  
  25.     input [7:0] d,
  26.     input [15:0] a,
  27.  
  28.     // zxbus and related
  29.     output csrom,
  30.     output romoe_n,
  31.     output romwe_n,
  32.  
  33.     input rompg0_n,
  34.     input dos_n, // aka rompg1
  35.     input rompg2,
  36.     input rompg3,
  37.     input rompg4,
  38.  
  39.     input iorqge1,
  40.     input iorqge2,
  41.     output iorq1_n,
  42.     output iorq2_n,
  43.  
  44.     // DRAM
  45.     input [15:0] rd,
  46.     input [9:0] ra,
  47.     output rwe_n,
  48.     output rucas_n,
  49.     output rlcas_n,
  50.     output rras0_n,
  51.     output rras1_n,
  52.  
  53.     // video
  54.     input [1:0] vred,
  55.     input [1:0] vgrn,
  56.     input [1:0] vblu,
  57.  
  58.     input vhsync,
  59.     input vvsync,
  60.     input vcsync,
  61.  
  62.     // AY control and audio/tape
  63.     input ay_clk,
  64.     output ay_bdir,
  65.     output ay_bc1,
  66.  
  67.     output beep,
  68.  
  69.     // IDE
  70.     input [2:0] ide_a,
  71.     input [15:0] ide_d,
  72.  
  73.     output ide_dir,
  74.  
  75.     input ide_rdy,
  76.  
  77.     output ide_cs0_n,
  78.     output ide_cs1_n,
  79.     output ide_rs_n,
  80.     output ide_rd_n,
  81.     output ide_wr_n,
  82.  
  83.     // VG93 and diskdrive
  84.     input vg_clk,
  85.  
  86.     output vg_cs_n,
  87.     output vg_res_n,
  88.  
  89.     input vg_hrdy,
  90.     input vg_rclk,
  91.     input vg_rawr,
  92.     input [1:0] vg_a, // disk drive selection
  93.     input vg_wrd,
  94.     input vg_side,
  95.  
  96.     input step,
  97.     input vg_sl,
  98.     input vg_sr,
  99.     input vg_tr43,
  100.     input rdat_b_n,
  101.     input vg_wf_de,
  102.     input vg_drq,
  103.     input vg_irq,
  104.     input vg_wd,
  105.  
  106.     // serial links (atmega-fpga, sdcard)
  107.     output sdcs_n,
  108.     output sddo,
  109.     output sdclk,
  110.     input sddi,
  111.  
  112.     input spics_n,
  113.     input spick,
  114.     input spido,
  115.     output spidi,
  116.     output spiint_n
  117. );
  118.  
  119.  
  120.     assign iorq1_n = 1'b1;
  121.     assign iorq2_n = 1'b1;
  122.  
  123.     assign res= 1'b1;
  124.  
  125.     assign rwe_n   = 1'b1;
  126.     assign rucas_n = 1'b1;
  127.     assign rlcas_n = 1'b1;
  128.     assign rras0_n = 1'b1;
  129.     assign rras1_n = 1'b1;
  130.  
  131.     assign ay_bdir = 1'b0;
  132.     assign ay_bc1  = 1'b0;
  133.  
  134.     assign vg_cs_n  = 1'b1;
  135.     assign vg_res_n = 1'b0;
  136.  
  137.     assign ide_dir=1'b1;
  138.     assign ide_rs_n = 1'b0;
  139.     assign ide_cs0_n = 1'b1;
  140.     assign ide_cs1_n = 1'b1;
  141.     assign ide_rd_n = 1'b1;
  142.     assign ide_wr_n = 1'b1;
  143.  
  144.     assign spiint_n=1'b1;
  145.  
  146.     assign clkz_out = 1'b0;
  147.  
  148.     assign csrom = 1'b0;
  149.     assign romoe_n = 1'b1;
  150.     assign romwe_n = 1'b1;
  151.  
  152.     assign sdclk  = spick & ~spics_n;
  153.     assign sddo   = spido;
  154.     assign spidi  = sddi;
  155.     assign sdcs_n = spics_n;
  156.     assign beep = ~(spick & spics_n);
  157.  
  158. endmodule
  159.