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

Subversion Repositories pci

[/] [pci/] [tags/] [rel_10/] [rtl/] [verilog/] [pci_wb_slave.v] - Diff between revs 106 and 113

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

Rev 106 Rev 113
Line 40... Line 40...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.2  2003/08/03 18:05:06  mihad
 
// Added limited WISHBONE B3 support for WISHBONE Slave Unit.
 
// Doesn't support full speed bursts yet.
 
//
// Revision 1.1  2003/01/27 16:49:31  mihad
// Revision 1.1  2003/01/27 16:49:31  mihad
// Changed module and file names. Updated scripts accordingly. FIFO synchronizations changed.
// Changed module and file names. Updated scripts accordingly. FIFO synchronizations changed.
//
//
// Revision 1.4  2002/08/19 16:54:25  mihad
// Revision 1.4  2002/08/19 16:54:25  mihad
// Got rid of undef directives
// Got rid of undef directives
Line 446... Line 450...
    // only host implementation has access for generating interrupt acknowledge and configuration cycles
    // only host implementation has access for generating interrupt acknowledge and configuration cycles
    // configuration cycle data register hit
    // configuration cycle data register hit
    reg current_delayed_is_ccyc ;
    reg current_delayed_is_ccyc ;
    reg current_delayed_is_iack ;
    reg current_delayed_is_iack ;
 
 
    wire wccyc_hit = (wb_addr_in[8:2] == {1'b1, `CNF_DATA_ADDR}) `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif ;
    wire wccyc_hit = (wb_addr_in[8:2] == {1'b1, `CNF_DATA_ADDR})
    wire wiack_hit = (wb_addr_in[8:2] == {1'b1, `INT_ACK_ADDR})  `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif ;
    `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
    `else
 
                     && alligned_address
 
    `endif
 
                     ;
 
    wire wiack_hit = (wb_addr_in[8:2] == {1'b1, `INT_ACK_ADDR})
 
    `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
    `else
 
                     && alligned_address
 
    `endif
 
                     ;
    reg iack_hit ;
    reg iack_hit ;
    reg ccyc_hit ;
    reg ccyc_hit ;
    always@(posedge reset_in or posedge wb_clock_in)
    always@(posedge reset_in or posedge wb_clock_in)
    begin
    begin
        if (reset_in)
        if (reset_in)
Line 866... Line 880...
            end // S_READ
            end // S_READ
 
 
    S_CONF_WRITE:  begin
    S_CONF_WRITE:  begin
                        `ifdef HOST
                        `ifdef HOST
                            wbw_data_out_sel = SEL_CCYC_ADDR ;
                            wbw_data_out_sel = SEL_CCYC_ADDR ;
                            del_req          = do_ccyc_req && ~burst_transfer  `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif ;
                            del_req          = do_ccyc_req && ~burst_transfer
                            del_done         = do_ccyc_comp && ~burst_transfer `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif ;
                              `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
                            del_in_progress  = do_ccyc_comp && ~burst_transfer `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif ;
                              `else
 
                                               && alligned_address
 
                              `endif
 
                                               ;
 
                            del_done         = do_ccyc_comp && ~burst_transfer
 
                              `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
                              `else
 
                                               && alligned_address
 
                              `endif
 
                                               ;
 
                            del_in_progress  = do_ccyc_comp && ~burst_transfer
 
                              `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
                              `else
 
                                               && alligned_address
 
                              `endif
 
                                               ;
                        `endif
                        `endif
 
 
                        n_state         = S_IDLE ; // next state after configuration access is always idle
                        n_state         = S_IDLE ; // next state after configuration access is always idle
 
 
                        if ( burst_transfer `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else | ~alligned_address `endif )
                        if ( burst_transfer
 
                        `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
                        `else
 
                            | ~alligned_address
 
                        `endif
 
                           )
                        begin
                        begin
                            err = 1'b1 ;
                            err = 1'b1 ;
                        end
                        end
                        else
                        else
                        begin
                        begin
Line 905... Line 939...
                    end // S_CONF_WRITE
                    end // S_CONF_WRITE
 
 
    S_CONF_READ:   begin
    S_CONF_READ:   begin
                        `ifdef HOST
                        `ifdef HOST
                            wbw_data_out_sel = SEL_CCYC_ADDR ;
                            wbw_data_out_sel = SEL_CCYC_ADDR ;
                            del_req          = ~burst_transfer `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif && ( do_ccyc_req  || do_iack_req  ) ;
                            del_req          = ~burst_transfer
                            del_done         = ~burst_transfer `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif && ( do_ccyc_comp || do_iack_comp ) ;
                          `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
                            del_in_progress  = ~burst_transfer `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif && ( do_ccyc_comp || do_iack_comp ) ;
                          `else
                            wbr_fifo_renable = ~burst_transfer `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else && alligned_address `endif && ( do_ccyc_comp || do_iack_comp ) ;
                                                && alligned_address
 
                          `endif
 
                                                && ( do_ccyc_req  || do_iack_req  ) ;
 
                            del_done         = ~burst_transfer
 
                          `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
                          `else
 
                                                && alligned_address
 
                          `endif
 
                                                && ( do_ccyc_comp || do_iack_comp ) ;
 
                            del_in_progress  = ~burst_transfer
 
                          `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
                          `else
 
                                                && alligned_address
 
                          `endif
 
                                                && ( do_ccyc_comp || do_iack_comp ) ;
 
                            wbr_fifo_renable = ~burst_transfer
 
                          `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
                          `else
 
                                                && alligned_address
 
                          `endif
 
                                                && ( do_ccyc_comp || do_iack_comp ) ;
                        `endif
                        `endif
 
 
                        n_state = S_IDLE ; // next state after configuration access is always idle
                        n_state = S_IDLE ; // next state after configuration access is always idle
 
 
                        if ( burst_transfer `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS `else | ~alligned_address `endif )
                        if ( burst_transfer
 
                        `ifdef PCI_WBS_ALLOW_NON_ALLIGNED_CONFIG_ACCESS
 
                        `else
 
                              | ~alligned_address
 
                        `endif
 
                           )
                        begin
                        begin
                            err = 1'b1 ;
                            err = 1'b1 ;
                        end
                        end
                        else
                        else
                        begin
                        begin

powered by: WebSVN 2.1.0

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