Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hdl-util/clock-domain-crossing

Utilities for clock-domain crossing with an FPGA
https://github.com/hdl-util/clock-domain-crossing

clock-domain-crossing clock-domains clock-synchronization fpga systemverilog verilog

Last synced: about 1 month ago
JSON representation

Utilities for clock-domain crossing with an FPGA

Awesome Lists containing this project

README

        

# Clock Domain Crossing

SystemVerilog modules for [clock domain crossing](https://en.wikipedia.org/wiki/Clock_domain_crossing) on an FPGA.

[![Build Status](https://travis-ci.com/hdl-util/clock-domain-crossing.svg?branch=master)](https://travis-ci.com/hdl-util/clock-domain-crossing)

## First-in First-out Buffer (FIFO)

A [FIFO](https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)) is a technique especially for high data rate transfer, backed by dual-clock RAM.

### Why?

Intel's dc_fifo just wasn't working for me.

### Usage

1. Take files from `src/` and add them to your own project. If you use [hdlmake](https://hdlmake.readthedocs.io/en/master/), you can add this repository itself as a remote module.
1. Other helpful modules are also available in this GitHub organization.
1. Consult the testbench in `tets/fifo_tb.sv` for example usage.
1. Read through the parameter descriptions in `fifo.sv` and tailor any instantiations to your situation.
1. Please create an issue if you run into a problem or have any questions.

### Features

* Overflow and underflow protection behavior

## To-do List

* [ ] Confirm metastability handling is 100% correct
* If you have experience with clock domain crossing, I would appreciate it if you took a look!