fifo by olofk

Generic FIFO implementation with optional FWFT

fifo

A FuseSoC-compatible library of FIFO implementations

RTL code

The following RTL components exist in the library

rtl/verilog/fifo.v

A generic FIFO implementation

rtl/verilog/fifo_fwft_adapter.v

A module to place on the output of any FIFO to turn it into a FWFT FIFO

rtl/verilog/fifo_fwft.v

FIFO with FWFT (First word fall-through)

rtl/verilog/dual_clock_fifo.v

A generic asynchronous FIFO

rtl/verilog/simple_dpram_sclk.v

A generic Dual Port RAM used as backend in fifo.v

rtl/verilog/xilinx_fifoe1.v

Wrapper with proper reset handling for the FIFOE1 macros found in some Xilinx FPGA families such as Virtex-5, Virtex-6 and all 7-series devices.

data/fifo.sdc

Timing constraints file for Quartus with rules for the dual clock FIFO. To use the constraints, include the file in your project and call dual_clock_fifo_false_paths path/to/fifo/instance from your main constraints file for each instance of the dual clock FIFO

Testing

All components have FuseSoC support and can be run with multiple simulators and configurations.

To find all compile/run -time options run fusesoc sim fifo --help

To specify which simulator to use, add --sim=<simulator> after the sim argument, where <simulator> can be any FuseSoC-supported event-based verilog simulator (i.e. icarus, isim, modelsim, rivierapro, xsim).

Add the FIFO library to your FuseSoC library path and run

dual clock FIFO testbench

fusesoc sim --testbench=dual_clock_fifo_tb fifo

FWFT FIFO

fusesoc sim --testbench=fwft_fifo_tb fifo

FIFO

fusesoc sim --testbench=fifo_tb fifo

Xilinx FIFOE1

fusesoc sim xilinx_fifoe1

Note that this testbench requires the $XILINX_VIVADO environment variable to be set and only runs on XSim bundled with Vivado

Project Meta

  • Registered 3 years ago
  • Started 5 years ago
  • Last commit 2 years ago

Commits

{"labels":[2014,2016,2017,2015,2018,2019],"series":[[16,3,8,0,0,0]]}

Commits per year

Contributors

{"labels":[2014,2016,2017,2015,2018,2019],"series":[[2,1,1,0,0,0]]}

Unique contributors per year

Releases

v1.3 is is the latest of 5 releases.

  • v1.3
    Nov 28, 2017 b4ff50a
  • v1.2.1
    May 2, 2017 73c1ae8
  • v1.2
    Apr 3, 2017 77f66d0
  • v1.1
    Sep 28, 2016 4f58a15
  • v1.0
    Oct 15, 2014 f5c4d14

Languages

{"labels":[],"series":[]}

Share of languages used

Data Sheet
https://github.com/olofk/fifo
Last updated 2 years ago
v1.3 released 2 years ago
5 forks
5 watchers
14 stars
27 commits by 2 contributors
Olof Kindgren Stefan Kristiansson

Activity in last 1 year

Updated 3 months ago