OpenCores
URL https://opencores.org/ocsvn/zet86/zet86/trunk

Subversion Repositories zet86

[/] [zet86/] [trunk/] [soc/] [vga/] [rtl/] [vdu.v] - Diff between revs 49 and 53

Show entire file | Details | Blame | View Log

Rev 49 Rev 53
Line 28... Line 28...
    input             wb_we_i,
    input             wb_we_i,
    input             wb_tga_i,
    input             wb_tga_i,
    input      [ 1:0] wb_sel_i,
    input      [ 1:0] wb_sel_i,
    input             wb_stb_i,
    input             wb_stb_i,
    input             wb_cyc_i,
    input             wb_cyc_i,
    output reg        wb_ack_o,
    output            wb_ack_o,
 
 
    // VGA pad signals
    // VGA pad signals
    output reg [ 1:0] vga_red_o,
    output reg [ 1:0] vga_red_o,
    output reg [ 1:0] vga_green_o,
    output reg [ 1:0] vga_green_o,
    output reg [ 1:0] vga_blue_o,
    output reg [ 1:0] vga_blue_o,
Line 104... Line 104...
  reg   [6:0] col1_addr; // 0 to 79
  reg   [6:0] col1_addr; // 0 to 79
  reg   [4:0] row1_addr; // 0 to 49 (25 * 2 - 1)
  reg   [4:0] row1_addr; // 0 to 49 (25 * 2 - 1)
  reg   [6:0] hor_addr;  // 0 to 79
  reg   [6:0] hor_addr;  // 0 to 79
  reg   [6:0] ver_addr;  // 0 to 124
  reg   [6:0] ver_addr;  // 0 to 124
  reg         vga0_we;
  reg         vga0_we;
  reg         vga0_rw, vga1_rw, vga2_rw, vga3_rw, vga4_rw;
  reg         vga0_rw, vga1_rw, vga2_rw, vga3_rw, vga4_rw, vga5_rw;
  reg         vga1_we;
  reg         vga1_we;
  reg         vga2_we;
  reg         vga2_we;
  reg         buff_we;
  reg         buff_we;
  reg   [7:0] buff_data_in;
  reg   [7:0] buff_data_in;
  reg         attr_we;
  reg         attr_we;
Line 191... Line 191...
  assign wr_cur_end   = wr_reg & (reg_adr==4'hb);
  assign wr_cur_end   = wr_reg & (reg_adr==4'hb);
 
 
  assign v_retrace   = !video_on_v;
  assign v_retrace   = !video_on_v;
  assign vh_retrace  = v_retrace | !video_on_h;
  assign vh_retrace  = v_retrace | !video_on_h;
  assign status_reg1 = { 11'b0, v_retrace, 3'b0, vh_retrace };
  assign status_reg1 = { 11'b0, v_retrace, 3'b0, vh_retrace };
 
  assign wb_ack_o    = wb_tga_i ? stb : vga5_rw;
 
 
  // Behaviour
  // Behaviour
 
 
  // CPU write interface
  // CPU write interface
  always @(posedge wb_clk_i)
  always @(posedge wb_clk_i)
    if (wb_rst_i)
    if (wb_rst_i)
      begin
      begin
        attr0_addr    <= 11'b0;
        attr0_addr    <= 11'b0;
Line 219... Line 219...
            buff_data_in <= wb_dat_i[7:0];
            buff_data_in <= wb_dat_i[7:0];
          end
          end
      end
      end
 
 
  // CPU read interface
  // CPU read interface
 
  // wb_dat_o
  always @(posedge wb_clk_i)
  always @(posedge wb_clk_i)
    if (wb_rst_i)
    wb_dat_o <= wb_rst_i ? 16'h0 : (wb_tga_i ? status_reg1
      begin
                                 : (vga4_rw ? out_data : wb_dat_o));
        wb_dat_o <= 16'h0;
 
        wb_ack_o <= 16'h0;
 
      end
 
    else
 
      if (wb_tga_i)
 
        begin
 
          wb_dat_o <= status_reg1;
 
          wb_ack_o <= stb;
 
        end
 
      else
 
        begin
 
          wb_dat_o <= vga4_rw ? out_data : wb_dat_o;
 
          wb_ack_o <= vga4_rw ? 1'b1 : (wb_ack_o && stb);
 
        end
 
 
 
  // Control registers
  // Control registers
  always @(posedge wb_clk_i)
  always @(posedge wb_clk_i)
    reg_adr <= wb_rst_i ? 4'h0
    reg_adr <= wb_rst_i ? 4'h0
      : (wr_adr ? wb_dat_i[3:0] : reg_adr);
      : (wr_adr ? wb_dat_i[3:0] : reg_adr);
Line 311... Line 298...
 
 
        vga2_we  <= 1'b0;
        vga2_we  <= 1'b0;
        vga2_rw  <= 1'b0;
        vga2_rw  <= 1'b0;
        vga3_rw  <= 1'b0;
        vga3_rw  <= 1'b0;
        vga4_rw  <= 1'b0;
        vga4_rw  <= 1'b0;
 
        vga5_rw  <= 1'b0;
        ver_addr <= 7'b0;
        ver_addr <= 7'b0;
        hor_addr <= 7'b0;
        hor_addr <= 7'b0;
 
 
        buff_addr <= 10'b0;
        buff_addr <= 10'b0;
        attr_addr <= 10'b0;
        attr_addr <= 10'b0;
Line 361... Line 349...
        attr_addr <= vga2_rw ? attr0_addr : vga_addr;
        attr_addr <= vga2_rw ? attr0_addr : vga_addr;
        buff_we   <= vga2_rw ? (buff0_we & vga2_we) : 1'b0;
        buff_we   <= vga2_rw ? (buff0_we & vga2_we) : 1'b0;
        attr_we   <= vga2_rw ? (attr0_we & vga2_we) : 1'b0;
        attr_we   <= vga2_rw ? (attr0_we & vga2_we) : 1'b0;
        vga3_rw   <= vga2_rw;
        vga3_rw   <= vga2_rw;
        vga4_rw   <= vga3_rw;
        vga4_rw   <= vga3_rw;
 
        vga5_rw   <= vga4_rw;
      end
      end
 
 
  // Video shift register
  // Video shift register
  always @(posedge wb_clk_i)
  always @(posedge wb_clk_i)
    if (wb_rst_i)
    if (wb_rst_i)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.