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

Subversion Repositories pci

[/] [pci/] [tags/] [rel_7/] [rtl/] [verilog/] [pci_wbw_fifo_control.v] - Diff between revs 104 and 111

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

Rev 104 Rev 111
Line 40... Line 40...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.3  2003/07/29 08:20:11  mihad
 
// Found and simulated the problem in the synchronization logic.
 
// Repaired the synchronization logic in the FIFOs.
 
//
// Revision 1.2  2003/03/26 13:16:18  mihad
// Revision 1.2  2003/03/26 13:16:18  mihad
// Added the reset value parameter to the synchronizer flop module.
// Added the reset value parameter to the synchronizer flop module.
// Added resets to all synchronizer flop instances.
// Added resets to all synchronizer flop instances.
// Repaired initial sync value in fifos.
// Repaired initial sync value in fifos.
//
//
Line 240... Line 244...
- Gray coded next write address. If they are equal, fifo is almost full.
- Gray coded next write address. If they are equal, fifo is almost full.
--------------------------------------------------------------------------------------------------------------------------------*/
--------------------------------------------------------------------------------------------------------------------------------*/
wire [(ADDR_LENGTH - 1):0] wclk_sync_rgrey_minus1 ;
wire [(ADDR_LENGTH - 1):0] wclk_sync_rgrey_minus1 ;
reg  [(ADDR_LENGTH - 1):0] wclk_rgrey_minus1 ;
reg  [(ADDR_LENGTH - 1):0] wclk_rgrey_minus1 ;
 
 
synchronizer_flop #(ADDR_LENGTH, 0) i_synchronizer_reg_rgrey_minus1
pci_synchronizer_flop #(ADDR_LENGTH, 0) i_synchronizer_reg_rgrey_minus1
(
(
    .data_in        (rgrey_minus1),
    .data_in        (rgrey_minus1),
    .clk_out        (wclock_in),
    .clk_out        (wclock_in),
    .sync_data_out  (wclk_sync_rgrey_minus1),
    .sync_data_out  (wclk_sync_rgrey_minus1),
    .async_reset    (clear)
    .async_reset    (clear)
Line 270... Line 274...
Gray coded address of next write address is synchronized to read clock domain and compared to Gray coded next read address.
Gray coded address of next write address is synchronized to read clock domain and compared to Gray coded next read address.
If they are equal, fifo is empty.
If they are equal, fifo is empty.
--------------------------------------------------------------------------------------------------------------------------------*/
--------------------------------------------------------------------------------------------------------------------------------*/
wire [(ADDR_LENGTH - 1):0] rclk_sync_wgrey_next ;
wire [(ADDR_LENGTH - 1):0] rclk_sync_wgrey_next ;
reg  [(ADDR_LENGTH - 1):0] rclk_wgrey_next ;
reg  [(ADDR_LENGTH - 1):0] rclk_wgrey_next ;
synchronizer_flop #(ADDR_LENGTH, 3) i_synchronizer_reg_wgrey_next
pci_synchronizer_flop #(ADDR_LENGTH, 3) i_synchronizer_reg_wgrey_next
(
(
    .data_in        (wgrey_next),
    .data_in        (wgrey_next),
    .clk_out        (rclock_in),
    .clk_out        (rclock_in),
    .sync_data_out  (rclk_sync_wgrey_next),
    .sync_data_out  (rclk_sync_wgrey_next),
    .async_reset    (clear)
    .async_reset    (clear)

powered by: WebSVN 2.1.0

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