Changing SDP external port BRAM usage

TM
Travis Murphy
Tue, Sep 10, 2019 8:34 PM

Each external port costs 16 RAM36E1 resources at default. Our design uses multiple
ports to handle separate data streams but the size of the buffers is overkill for
the throughput we need. We would like to reduce down the BRAM usage to reclaim
some resources. I was wondering if there is any way to individually set the memory_bytes
parameter in the sdp_send and sdp_recv devices that get generated on external ports?

Thank you,

Travis Murphy

Each external port costs 16 RAM36E1 resources at default. Our design uses multiple ports to handle separate data streams but the size of the buffers is overkill for the throughput we need. We would like to reduce down the BRAM usage to reclaim some resources. I was wondering if there is any way to individually set the memory_bytes parameter in the sdp_send and sdp_recv devices that get generated on external ports? Thank you, Travis Murphy
JK
James Kulp
Tue, Sep 10, 2019 8:51 PM

Yes, the default is 64KB per stream, and it is parameterized for this
and other purposes.
The intention was to apply parameters to the "connection" element in the
container XML which would determine this buffer size per off-chip stream.
Unfortunately that link in the code generator for containers (which
generates the code that instances those modules) is not implemented.

The best I can suggest is to simply change the constant (64k) in
projects/core/specs/sdp-properties.xml, which would of course apply to
all streams.

The proper fix in the code generator would be harder.

I have filed the issue for the next release.

Cheers,
Jim

On 9/10/19 4:34 PM, Travis Murphy via discuss wrote:

Each external port costs 16 RAM36E1 resources at default. Our design uses multiple
ports to handle separate data streams but the size of the buffers is overkill for
the throughput we need. We would like to reduce down the BRAM usage to reclaim
some resources. I was wondering if there is any way to individually set the memory_bytes
parameter in the sdp_send and sdp_recv devices that get generated on external ports?

Thank you,

Travis Murphy

Yes, the default is 64KB per stream, and it is parameterized for this and other purposes. The intention was to apply parameters to the "connection" element in the container XML which would determine this buffer size per off-chip stream. Unfortunately that link in the code generator for containers (which generates the code that instances those modules) is not implemented. The best I can suggest is to simply change the constant (64k) in projects/core/specs/sdp-properties.xml, which would of course apply to all streams. The proper fix in the code generator would be harder. I have filed the issue for the next release. Cheers, Jim On 9/10/19 4:34 PM, Travis Murphy via discuss wrote: > Each external port costs 16 RAM36E1 resources at default. Our design uses multiple > ports to handle separate data streams but the size of the buffers is overkill for > the throughput we need. We would like to reduce down the BRAM usage to reclaim > some resources. I was wondering if there is any way to individually set the memory_bytes > parameter in the sdp_send and sdp_recv devices that get generated on external ports? > > > > Thank you, > > Travis Murphy >