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

Subversion Repositories pci

[/] [pci/] [trunk/] [rtl/] [verilog/] [pci_wbw_wbr_fifos.v] - Diff between revs 132 and 153

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

Rev 132 Rev 153
Line 40... Line 40...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.6  2003/12/19 11:11:30  mihad
 
// Compact PCI Hot Swap support added.
 
// New testcases added.
 
// Specification updated.
 
// Test application changed to support WB B3 cycles.
 
//
// Revision 1.5  2003/10/17 09:11:52  markom
// Revision 1.5  2003/10/17 09:11:52  markom
// mbist signals updated according to newest convention
// mbist signals updated according to newest convention
//
//
// Revision 1.4  2003/08/14 13:06:03  simons
// Revision 1.4  2003/08/14 13:06:03  simons
// synchronizer_flop replaced with pci_synchronizer_flop, artisan ram instance updated.
// synchronizer_flop replaced with pci_synchronizer_flop, artisan ram instance updated.
Line 92... Line 98...
 
 
// synopsys translate_off
// synopsys translate_off
`include "timescale.v"
`include "timescale.v"
// synopsys translate_on
// synopsys translate_on
 
 
 
 
 
 
module pci_wbw_wbr_fifos
module pci_wbw_wbr_fifos
(
(
    wb_clock_in,
    wb_clock_in,
    pci_clock_in,
    pci_clock_in,
    reset_in,
    reset_in,
Line 110... Line 118...
//    wbw_flush_in,         write fifo flush not used
//    wbw_flush_in,         write fifo flush not used
    wbw_almost_full_out,
    wbw_almost_full_out,
    wbw_full_out,
    wbw_full_out,
    wbw_empty_out,
    wbw_empty_out,
    wbw_transaction_ready_out,
    wbw_transaction_ready_out,
 
         wbw_half_full_out, ////Robert, burst issue
    wbr_wenable_in,
    wbr_wenable_in,
    wbr_data_in,
    wbr_data_in,
    wbr_be_in,
    wbr_be_in,
    wbr_control_in,
    wbr_control_in,
    wbr_renable_in,
    wbr_renable_in,
Line 121... Line 130...
    wbr_be_out,
    wbr_be_out,
    wbr_control_out,
    wbr_control_out,
    wbr_flush_in,
    wbr_flush_in,
    wbr_empty_out
    wbr_empty_out
 
 
 
 
`ifdef PCI_BIST
`ifdef PCI_BIST
    ,
    ,
    // debug chain signals
    // debug chain signals
    mbist_si_i,       // bist scan serial in
    mbist_si_i,       // bist scan serial in
    mbist_so_o,       // bist scan serial out
    mbist_so_o,       // bist scan serial out
Line 185... Line 195...
// status outputs
// status outputs
output wbw_almost_full_out ;
output wbw_almost_full_out ;
output wbw_full_out ;
output wbw_full_out ;
output wbw_empty_out ;
output wbw_empty_out ;
output wbw_transaction_ready_out ;
output wbw_transaction_ready_out ;
 
output wbw_half_full_out; ////Robert, burst issue
 
 
/*-----------------------------------------------------------------------------------------------------------
/*-----------------------------------------------------------------------------------------------------------
WISHBONE READ FIFO interface signals prefixed with wbr_ - FIFO is used for holding delayed read completions
WISHBONE READ FIFO interface signals prefixed with wbr_ - FIFO is used for holding delayed read completions
initiated by master on WISHBONE bus and completed on PCI bus,
initiated by master on WISHBONE bus and completed on PCI bus,
 
 
Line 357... Line 368...
    `endif
    `endif
 
 
    // instantiate and connect two generic rams - one for wishbone write fifo and one for wishbone read fifo
    // instantiate and connect two generic rams - one for wishbone write fifo and one for wishbone read fifo
    pci_wb_tpram #(`WB_FIFO_RAM_ADDR_LENGTH, 40) wbw_fifo_storage
    pci_wb_tpram #(`WB_FIFO_RAM_ADDR_LENGTH, 40) wbw_fifo_storage
    (
    (
        // Generic synchronous two-port RAM interface
        /////////////////Generic synchronous two-port RAM interface
        .clk_a(wb_clock_in),
        .clk_a(wb_clock_in),
        .rst_a(reset_in),
        .rst_a(reset_in),
        .ce_a(1'b1),
        .ce_a(1'b1),
        .we_a(wbw_wallow),
        .we_a(wbw_wallow),
        .oe_a(1'b1),
        .oe_a(1'b1),
Line 413... Line 424...
        .mbist_so_o       (mbist_so_o),
        .mbist_so_o       (mbist_so_o),
        .mbist_ctrl_i       (mbist_ctrl_i)
        .mbist_ctrl_i       (mbist_ctrl_i)
    `endif
    `endif
    );
    );
 
 
 
 
`else // RAM blocks sharing between two fifos
`else // RAM blocks sharing between two fifos
 
 
    /*-----------------------------------------------------------------------------------------------------------
    /*-----------------------------------------------------------------------------------------------------------
    Code section under this ifdef is used for implementation where RAM instances are too expensive. In this
    Code section under this ifdef is used for implementation where RAM instances are too expensive. In this
    case one RAM instance is used for both - WISHBONE read and WISHBONE write fifo.
    case one RAM instance is used for both - WISHBONE read and WISHBONE write fifo.
Line 476... Line 488...
    `endif
    `endif
    );
    );
 
 
`endif
`endif
 
 
 
 
/*-----------------------------------------------------------------------------------------------------------
/*-----------------------------------------------------------------------------------------------------------
Instantiation of two control logic modules - one for WBW_FIFO and one for WBR_FIFO
Instantiation of two control logic modules - one for WBW_FIFO and one for WBR_FIFO
-----------------------------------------------------------------------------------------------------------*/
-----------------------------------------------------------------------------------------------------------*/
pci_wbw_fifo_control #(WBW_ADDR_LENGTH) wbw_fifo_ctrl
pci_wbw_fifo_control #(WBW_ADDR_LENGTH) wbw_fifo_ctrl
(
(
    .rclock_in(pci_clock_in),
    .rclock_in(pci_clock_in),
    .wclock_in(wb_clock_in),
    .wclock_in(wb_clock_in),
    .renable_in(wbw_renable_in),
    .renable_in(wbw_renable_in),
    .wenable_in(wbw_wenable_in),
    .wenable_in(wbw_wenable_in),
    .reset_in(reset_in),
    .reset_in(reset_in),
//    .flush_in(wbw_flush_in),
//////////////////////////////    .flush_in(wbw_flush_in),
    .almost_full_out(wbw_almost_full_out),
    .almost_full_out(wbw_almost_full_out),
    .full_out(wbw_full_out),
    .full_out(wbw_full_out),
    .empty_out(wbw_empty),
    .empty_out(wbw_empty),
    .waddr_out(wbw_waddr),
    .waddr_out(wbw_waddr),
    .raddr_out(wbw_raddr),
    .raddr_out(wbw_raddr),
    .rallow_out(wbw_rallow),
    .rallow_out(wbw_rallow),
    .wallow_out(wbw_wallow)
    .wallow_out(wbw_wallow),
 
        .half_full_out(wbw_half_full_out) ////Robert, burst issue
);
);
 
 
pci_wbr_fifo_control #(WBR_ADDR_LENGTH) wbr_fifo_ctrl
pci_wbr_fifo_control #(WBR_ADDR_LENGTH) wbr_fifo_ctrl
(   .rclock_in(wb_clock_in),
(   .rclock_in(wb_clock_in),
    .wclock_in(pci_clock_in),
    .wclock_in(pci_clock_in),

powered by: WebSVN 2.1.0

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