11-26-2018 12:44 PM
Hello,
I am currently working on the Zynq7045 FPGA to build my project. I want to optimized my board and reduce the utilization. One particular project is using 57% BRAM. As I have a lot of other projects which need to be put onto the same board, I am looking to reduce my BRAM usage.
Is there a way of reducing the BRAM in the project.
My FF usage is low (~8%).
Regards,
Vanshika
11-26-2018 12:49 PM
You can consider if some of your current BRAM could also be targeted at LUTRAM/ROM (distributed memory), if you have an imbalance of resources (e.g. more LUTs than RAM)
11-26-2018 08:41 PM - edited 11-26-2018 08:42 PM
Some of the BRAM utilization reduction methodologies
1. Use the DRAM based implementation as suggested by @xilinxacct . Attribute to instruct the tool (UG901) if you are inferring the memory
2. Select the Minimum area algorithm :The memory is generated using the minimum number of block RAM primitives. Both data and parity bits are utilized.
3. Choose FIFO implementation in the design based not based on Block RAM
4. One more option is to use the URAM based implementation , but we dont have URAM resources in 7 series devices.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Reply if you have any queries, Give Kudos and accepts as Solution
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
11-27-2018 12:37 PM - edited 11-27-2018 12:38 PM
Hi @xilinxacct,
I am out of BRAM and LUT space. I need to look for other options
11-27-2018 12:53 PM
The utilization report will tell you how much over the capacity of your board is. That should help you pick more appropriate hardware. You probably want to give yourself a 20-30% buffer above what you need.
Hope that helps
11-27-2018 01:01 PM
One other outside chance, which probably won't get you enough resources, but depending on your program, the sizing of your RAM/ROM widths don't have to be standard 8,16,32. If your use case allows, you could shave some bits off to save some space.
11-27-2018 03:16 PM
11-27-2018 03:44 PM - edited 11-29-2018 09:17 AM
The 7045 has some DDR memory too, right? Maybe you can utilize that.
Since you do have some LUTs, the original idea of using LUT RAM/ROM might still be viable.
The 7045 has some hard processors, you might be able to migrate some logic into the CPUs and free up some more resources.
A general review to see what can get 'skinny'...
01-13-2019 09:04 PM
Sometimes you can change the RAM depth and its Resource usage remains the same.
So you can play little bit with RAM parameters and if possible increase the RAM depths, than combine several RAMs into one.
I mean just use 1 bigger RAM ( which up mentioned way) instead of 2 RAMs.