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

Subversion Repositories pci

[/] [pci/] [tags/] [rel_3/] [rtl/] [verilog/] [wbw_wbr_fifos.v] - Diff between revs 59 and 62

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

Rev 59 Rev 62
Line 40... Line 40...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.5  2002/09/30 16:03:04  mihad
 
// Added meta flop module for easier meta stable FF identification during synthesis
 
//
// Revision 1.4  2002/09/25 15:53:52  mihad
// Revision 1.4  2002/09/25 15:53:52  mihad
// Removed all logic from asynchronous reset network
// Removed all logic from asynchronous reset network
//
//
// Revision 1.3  2002/02/01 15:25:14  mihad
// Revision 1.3  2002/02/01 15:25:14  mihad
// Repaired a few bugs, updated specification, added test bench files and design document
// Repaired a few bugs, updated specification, added test bench files and design document
Line 60... Line 63...
 
 
// synopsys translate_off
// synopsys translate_off
`include "timescale.v"
`include "timescale.v"
// synopsys translate_on
// synopsys translate_on
 
 
module WBW_WBR_FIFOS(
module WBW_WBR_FIFOS
 
(
                        wb_clock_in,
                        wb_clock_in,
                        pci_clock_in,
                        pci_clock_in,
                        reset_in,
                        reset_in,
                        wbw_wenable_in,
                        wbw_wenable_in,
                        wbw_addr_data_in,
                        wbw_addr_data_in,
Line 87... Line 91...
                        wbr_data_out,
                        wbr_data_out,
                        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
 
    ,
 
    // debug chain signals
 
    SO         ,
 
    SI         ,
 
    shift_DR   ,
 
    capture_DR ,
 
    extest     ,
 
    tck
 
`endif
) ;
) ;
 
 
/*-----------------------------------------------------------------------------------------------------------
/*-----------------------------------------------------------------------------------------------------------
System inputs:
System inputs:
wb_clock_in - WISHBONE bus clock
wb_clock_in - WISHBONE bus clock
Line 187... Line 202...
// flush input
// flush input
input wbr_flush_in ;
input wbr_flush_in ;
 
 
output wbr_empty_out ;
output wbr_empty_out ;
 
 
 
`ifdef PCI_BIST
 
/*-----------------------------------------------------
 
BIST debug chain port signals
 
-----------------------------------------------------*/
 
output  SO ;
 
input   SI ;
 
input   shift_DR ;
 
input   capture_DR ;
 
input   extest ;
 
input   tck ;
 
`endif
 
 
/*-----------------------------------------------------------------------------------------------------------
/*-----------------------------------------------------------------------------------------------------------
FIFO depth parameters:
FIFO depth parameters:
WBW_DEPTH = defines WBW_FIFO depth
WBW_DEPTH = defines WBW_FIFO depth
WBR_DEPTH = defines WBR_FIFO depth
WBR_DEPTH = defines WBR_FIFO depth
WBW_ADDR_LENGTH = defines WBW_FIFO's location address length = log2(WBW_DEPTH)
WBW_ADDR_LENGTH = defines WBW_FIFO's location address length = log2(WBW_DEPTH)
Line 199... Line 226...
parameter WBW_DEPTH = `WBW_DEPTH ;
parameter WBW_DEPTH = `WBW_DEPTH ;
parameter WBW_ADDR_LENGTH = `WBW_ADDR_LENGTH ;
parameter WBW_ADDR_LENGTH = `WBW_ADDR_LENGTH ;
parameter WBR_DEPTH = `WBR_DEPTH ;
parameter WBR_DEPTH = `WBR_DEPTH ;
parameter WBR_ADDR_LENGTH = `WBR_ADDR_LENGTH ;
parameter WBR_ADDR_LENGTH = `WBR_ADDR_LENGTH ;
 
 
// obvious
 
wire vcc = 1'b1 ;
 
wire gnd = 1'b0 ;
 
 
 
/*-----------------------------------------------------------------------------------------------------------
/*-----------------------------------------------------------------------------------------------------------
wbw_wallow = WBW_FIFO write allow wire - writes to FIFO are allowed when FIFO isn't full and write enable is 1
wbw_wallow = WBW_FIFO write allow wire - writes to FIFO are allowed when FIFO isn't full and write enable is 1
wbw_rallow = WBW_FIFO read allow wire - reads from FIFO are allowed when FIFO isn't empty and read enable is 1
wbw_rallow = WBW_FIFO read allow wire - reads from FIFO are allowed when FIFO isn't empty and read enable is 1
-----------------------------------------------------------------------------------------------------------*/
-----------------------------------------------------------------------------------------------------------*/
wire wbw_wallow ;
wire wbw_wallow ;
Line 303... Line 326...
    wire [(`WB_FIFO_RAM_ADDR_LENGTH-1):0] wbr_whole_raddr = wbr_raddr ;
    wire [(`WB_FIFO_RAM_ADDR_LENGTH-1):0] wbr_whole_raddr = wbr_raddr ;
 
 
    wire wbw_read_enable = 1'b1 ;
    wire wbw_read_enable = 1'b1 ;
    wire wbr_read_enable = 1'b1 ;
    wire wbr_read_enable = 1'b1 ;
 
 
 
    `ifdef PCI_BIST
 
    wire SO_internal ; // wires for connection of debug ports on two rams
 
    wire SI_internal = SO_internal ;
 
    `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
    WB_TPRAM #(`WB_FIFO_RAM_ADDR_LENGTH, 40) wbw_fifo_storage
    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),
Line 324... Line 352...
        .we_b(1'b0),
        .we_b(1'b0),
        .oe_b(1'b1),
        .oe_b(1'b1),
        .addr_b(wbw_whole_raddr),
        .addr_b(wbw_whole_raddr),
        .di_b(40'h00_0000_0000),
        .di_b(40'h00_0000_0000),
        .do_b(dpram_portB_output)
        .do_b(dpram_portB_output)
 
 
 
    `ifdef PCI_BIST
 
        ,
 
        .SO         (SO_internal),
 
        .SI         (SI),
 
        .shift_DR   (shift_DR),
 
        .capture_DR (capture_DR),
 
        .extest     (extest),
 
        .tck        (tck)
 
    `endif
    );
    );
 
 
    WB_TPRAM #(`WB_FIFO_RAM_ADDR_LENGTH, 40) wbr_fifo_storage
    WB_TPRAM #(`WB_FIFO_RAM_ADDR_LENGTH, 40) wbr_fifo_storage
    (
    (
        // Generic synchronous two-port RAM interface
        // Generic synchronous two-port RAM interface
Line 346... Line 384...
        .we_b(1'b0),
        .we_b(1'b0),
        .oe_b(1'b1),
        .oe_b(1'b1),
        .addr_b(wbr_whole_raddr),
        .addr_b(wbr_whole_raddr),
        .di_b(40'h00_0000_0000),
        .di_b(40'h00_0000_0000),
        .do_b(dpram_portA_output)
        .do_b(dpram_portA_output)
 
 
 
    `ifdef PCI_BIST
 
        ,
 
        .SO         (SO),
 
        .SI         (SI_internal),
 
        .shift_DR   (shift_DR),
 
        .capture_DR (capture_DR),
 
        .extest     (extest),
 
        .tck        (tck)
 
    `endif
    );
    );
 
 
`else // RAM blocks sharing between two fifos
`else // RAM blocks sharing between two fifos
 
 
    /*-----------------------------------------------------------------------------------------------------------
    /*-----------------------------------------------------------------------------------------------------------
Line 400... Line 448...
        .we_b(wbr_wallow),
        .we_b(wbr_wallow),
        .oe_b(1'b1),
        .oe_b(1'b1),
        .addr_b(portB_addr),
        .addr_b(portB_addr),
        .di_b(dpram_portB_input),
        .di_b(dpram_portB_input),
        .do_b(dpram_portB_output)
        .do_b(dpram_portB_output)
 
 
 
    `ifdef PCI_BIST
 
        ,
 
        .SO         (SO),
 
        .SI         (SI),
 
        .shift_DR   (shift_DR),
 
        .capture_DR (capture_DR),
 
        .extest     (extest),
 
        .tck        (tck)
 
    `endif
    );
    );
 
 
`endif
`endif
 
 
/*-----------------------------------------------------------------------------------------------------------
/*-----------------------------------------------------------------------------------------------------------

powered by: WebSVN 2.1.0

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