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

Subversion Repositories ps2

[/] [ps2/] [tags/] [rel_14/] [rtl/] [verilog/] [ps2_wb_if.v] - Diff between revs 24 and 27

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 24 Rev 27
Line 41... Line 41...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.7  2003/10/03 10:16:52  primozs
 
// support for configurable devider added
 
//
// Revision 1.6  2003/05/28 16:27:09  simons
// Revision 1.6  2003/05/28 16:27:09  simons
// Change the address width.
// Change the address width.
//
//
// Revision 1.5  2002/04/09 13:24:11  mihad
// Revision 1.5  2002/04/09 13:24:11  mihad
// Added mouse interface and everything for its handling, cleaned up some unused code
// Added mouse interface and everything for its handling, cleaned up some unused code
Line 210... Line 213...
wire read_status_register = wb_cyc_i && wb_stb_i && wb_sel_i[3] && !wb_ack_o && !read_status_register_reg && !wb_we_i && (wb_adr_i[3:0] == 4'h4) ;
wire read_status_register = wb_cyc_i && wb_stb_i && wb_sel_i[3] && !wb_ack_o && !read_status_register_reg && !wb_we_i && (wb_adr_i[3:0] == 4'h4) ;
 
 
reg  send_command_reg ;
reg  send_command_reg ;
wire send_command = wb_cyc_i && wb_stb_i && wb_sel_i[3] && !wb_ack_o && !send_command_reg && wb_we_i  && (wb_adr_i[3:0] == 4'h4) ;
wire send_command = wb_cyc_i && wb_stb_i && wb_sel_i[3] && !wb_ack_o && !send_command_reg && wb_we_i  && (wb_adr_i[3:0] == 4'h4) ;
 
 
reg  write_devide_reg ;
reg  write_devide_reg0 ;
wire write_devide = wb_cyc_i && wb_stb_i && wb_sel_i[3] && wb_sel_i[2] && !wb_ack_o && !write_devide_reg && wb_we_i  && (wb_adr_i[3:0] == 4'h8) ;
wire write_devide0 = wb_cyc_i && wb_stb_i && wb_sel_i[2] && !wb_ack_o && !write_devide_reg0 && wb_we_i  && (wb_adr_i[3:0] == 4'h8) ;
reg  read_devide_reg ;
 
wire read_devide = wb_cyc_i && wb_stb_i && wb_sel_i[3] && wb_sel_i[2] && !wb_ack_o && !read_devide_reg && !wb_we_i  && (wb_adr_i[3:0] == 4'h8) ;
//reg  read_devide_reg ;
 
wire read_devide = wb_cyc_i && wb_stb_i &&  ( wb_sel_i[2]|| wb_sel_i [3] ) && !wb_we_i  && (wb_adr_i[3:0] == 4'h8) ;
 
 
 
reg  write_devide_reg1 ;
 
wire write_devide1 = wb_cyc_i && wb_stb_i && wb_sel_i[3] && !wb_ack_o && !write_devide_reg1 && wb_we_i  && (wb_adr_i[3:0] == 4'h8) ;
 
 
 
 
reg  translate_o,
reg  translate_o,
     enable1,
     enable1,
     system,
     system,
     interrupt1 ;
     interrupt1 ;
Line 260... Line 268...
    begin
    begin
        send_command_reg         <= #1 1'b0 ;
        send_command_reg         <= #1 1'b0 ;
        read_input_buffer_reg    <= #1 1'b0 ;
        read_input_buffer_reg    <= #1 1'b0 ;
        write_output_buffer_reg  <= #1 1'b0 ;
        write_output_buffer_reg  <= #1 1'b0 ;
        read_status_register_reg <= #1 1'b0 ;
        read_status_register_reg <= #1 1'b0 ;
        write_devide_reg         <= #1 1'b0 ;
        write_devide_reg0        <= #1 1'b0 ;
        read_devide_reg         <= #1 1'b0 ;
        //read_devide_reg          <= #1 1'b0 ;
 
        write_devide_reg1        <= #1 1'b0 ;
    end
    end
    else
    else
    begin
    begin
        send_command_reg         <= #1 send_command ;
        send_command_reg         <= #1 send_command ;
        read_input_buffer_reg    <= #1 read_input_buffer ;
        read_input_buffer_reg    <= #1 read_input_buffer ;
        write_output_buffer_reg  <= #1 write_output_buffer ;
        write_output_buffer_reg  <= #1 write_output_buffer ;
        read_status_register_reg <= #1 read_status_register ;
        read_status_register_reg <= #1 read_status_register ;
        write_devide_reg         <= #1 write_devide ;
        write_devide_reg0        <= #1 write_devide0 ;
        read_devide_reg          <= #1 read_devide ;
        //read_devide_reg          <= #1 read_devide ;
 
        write_devide_reg1        <= #1 write_devide1 ;
    end
    end
end
end
 
 
always@(posedge wb_clk_i or posedge wb_rst_i)
always@(posedge wb_clk_i or posedge wb_rst_i)
begin
begin
Line 464... Line 474...
    else
    else
        wb_ack_o <= #1 cyc_i_previous && stb_i_previous ;
        wb_ack_o <= #1 cyc_i_previous && stb_i_previous ;
end
end
 
 
reg [31:0] wb_dat_o ;
reg [31:0] wb_dat_o ;
wire wb_read = read_input_buffer_reg || read_status_register_reg ;
wire wb_read = read_input_buffer_reg || read_status_register_reg || read_devide ;
 
 
wire [15:0] output_data = read_status_register_reg ? {2{status_byte}} : read_devide_reg ? devide_reg : {2{input_buffer}} ;
wire [15:0] output_data = read_status_register_reg ? {2{status_byte}} : read_devide ? devide_reg : {2{input_buffer}} ;
always@(posedge wb_clk_i or posedge wb_rst_i)
always@(posedge wb_clk_i or posedge wb_rst_i)
begin
begin
    if ( wb_rst_i )
    if ( wb_rst_i )
        wb_dat_o <= #1 32'h0 ;
        wb_dat_o <= #1 32'h0 ;
    else if ( wb_read )
    else if ( wb_read )
Line 509... Line 519...
 
 
always@(posedge wb_clk_i or posedge wb_rst_i)
always@(posedge wb_clk_i or posedge wb_rst_i)
begin
begin
    if ( wb_rst_i )
    if ( wb_rst_i )
        devide_reg <= #1 8'h00 ;
        devide_reg <= #1 8'h00 ;
    else if ( write_devide_reg )
    else
        devide_reg <= #1 wb_dat_i_sampled ;
      begin
 
      if ( write_devide_reg0 )
 
        devide_reg[7:0] <= #1 wb_dat_i_sampled[7:0] ;
 
      if ( write_devide_reg1 )
 
        devide_reg[15:8] <= #1 wb_dat_i_sampled[15:8] ;
 
      end
end
end
 
 
always@(posedge wb_clk_i or posedge wb_rst_i)
always@(posedge wb_clk_i or posedge wb_rst_i)
begin
begin
    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.