SystemVerilog modules for clock domain crossing on an FPGA.
A FIFO is a technique especially for high data rate transfer, backed by dual-clock RAM.
Intel's dc_fifo just wasn't working for me.
- Take files from
src/
and add them to your own project. If you use hdlmake, you can add this repository itself as a remote module. - Other helpful modules are also available in this GitHub organization.
- Consult the testbench in
tets/fifo_tb.sv
for example usage. - Read through the parameter descriptions in
fifo.sv
and tailor any instantiations to your situation. - Please create an issue if you run into a problem or have any questions.
- Overflow and underflow protection behavior
- Confirm metastability handling is 100% correct
- If you have experience with clock domain crossing, I would appreciate it if you took a look!