01-28-2017 10:08 AM
I'm using the DDS compiler DDS v.6 for a design. I'm using many of them (32) which all have the same clock speed in raster mode. Each one is programmed during run-time for different phase offset and frequency. My design runs out of resources (specifically BRAM) because, I think the tool is putting the exact same values in memory 32 times, for the design. Is there any way to have the tool use the same memory for each DDS instance and reading from the same memory? It seems like an awful waste for it to not realize that they're the same values.
01-30-2017 04:31 AM
The BRAM's are internal to the core and when you use multiple instances they use separate BRAM.
Even though you use the same data to store the tool, there is no way to tell the tool to optimize or use a single set of BRAM's.
01-30-2017 08:38 AM - edited 01-30-2017 08:38 AM
What's your clock/data rates? The DDS core supports multiple channels which are time-multiplexed together. If you can use in this mode and then demux as necessary, it should reduce BRAM utilization
01-30-2017 09:04 AM
Unfortunately, my clock rate is 625 MHz, which is why I'm using 4 DDS's running at 156.25 MHz each and "muxing" them. I might be able to cut them in half by using 312.5 MHz but that's running into possible speed issues.