Infer BRAM on Xilinx FPGAs using Chisel Queue

521 views
Skip to first unread message

Lorenzo Di Tucci

unread,
Feb 1, 2018, 10:59:04 AM2/1/18
to chisel-users
Hi all, 

I am trying to create a Fifo to interface my core with the DDR. So far I have been successful using the Queue Chisel Module, however, I would like to have them implemented as BRAM on the FPGA, as the way is implemented in Chisel uses too many LUTS.
Do you have any suggestion on how this can be made?

Thanks

Lorenzo

Yaman Umuroglu

unread,
Feb 2, 2018, 5:12:53 AM2/2/18
to chisel-users
Hi Lorenzo,

If you don't mind Chisel2 code, here is one suggestion as to how this could be done:


In turn, this uses the DualPortBRAM component located in the same directory, which is a BlackBox (with a simple behavioural model for emulation). The actual Verilog that correctly infers dual-port BRAMs for these in synthesis is here:


I realize this isn't the most elegant way but this worked for me. For an explanation why it was done this way, here's a post from 2015:


Best regards,
Yaman

Lorenzo Di Tucci

unread,
Feb 13, 2018, 4:13:24 AM2/13/18
to chisel...@googlegroups.com
Hi Yaman,
thank you very much for the suggestion. I took a look at your code and it is great! However, I had some issues in integrating it with all the rest of the code that was written in Chisel3 (I am not so skilled with chisel).

I ended up using your methodology and I have created a black box, and then I have manually inserted BRAM FIFO Macro available within Vivado. It instantiates BRAM correcly during synthesis and now I am generating  the bitstream for checking its functionality.

It is a pity that Chisel does not provides such functionality!

Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "chisel-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/chisel-users/LPd5Apopm2M/unsubscribe.
To unsubscribe from this group and all its topics, send an email to chisel-users...@googlegroups.com.
To post to this group, send email to chisel...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/chisel-users/fa99c6cc-b032-4cd7-b129-f695d085b343%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
- Lorenzo
Reply all
Reply to author
Forward
0 new messages