Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

axi_cdc fpga implementation very inefficient #294

Open
skokvermon opened this issue Apr 3, 2023 · 2 comments
Open

axi_cdc fpga implementation very inefficient #294

skokvermon opened this issue Apr 3, 2023 · 2 comments

Comments

@skokvermon
Copy link
Contributor

Hi

axi_cdc uses fifos that don't infer dual SRAM. Fifo is implemented using registers, and it is very slow.
In my design, I had to lower fifo depth to 8 words in order to be able to run at 100mhz.

fifo_v3 also don't infer SRAM, which is very problematic.
I could succesfully use single and dual clock fifos from optimsoc which can infer xilinx SRAM (and probably altera too).
I think it would be nice to use such fifos for axi_cdc

@omeag
Copy link

omeag commented Mar 4, 2024

Hi sir, I've been reviewing the axi_cdc, but can't find the definitions for cdc_fifo_gray_src and cdc_fifo_gray_dst modules.
Could you kindly point me to where I can find them?

@micprog
Copy link
Member

micprog commented Mar 4, 2024

Hi @skokvermon,
Generally, our IPs are focused on ASIC designs, not FPGA, thus we have not implemented inferring SRAMs, either for the CDC FIFOs or general FIFOs. Both of these use modules of the common_cells repository: fifo_v3 and cdc_fifo_gray.
The tool we use to collect dependencies and generate scripts for tools (bender) allows switching out of individual files, e.g. for FPGA synthesis. While we generally use FPGA to prototype designs we implement as ASICs and attempt to avoid significant divergence for proper testing, it may be good to have a more FPGA-targeted implementation of these IPs. Feel free to open a pull request to add these modules, I'd be happy to integrate them!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants