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

Use PLRAM as exchange memory #8

Open
quetric opened this issue Sep 21, 2021 · 2 comments
Open

Use PLRAM as exchange memory #8

quetric opened this issue Sep 21, 2021 · 2 comments
Labels
enhancement New feature or request

Comments

@quetric
Copy link
Collaborator

quetric commented Sep 21, 2021

Currently we have a small exchange memory mapped both in the Microblaze and host address spaces to hold configuration data. The size of this memory is limiting, e.g. some users might need much more memory than others. To enable user-configurable and potentially very large exchange memory, we could read configuration from PLRAM. Performance implications must be considered.

@quetric quetric added the enhancement New feature or request label Sep 21, 2021
@quetric
Copy link
Collaborator Author

quetric commented Sep 21, 2021

From Vitis documentation:

The READ_LATENCY [...] attribute [...] sets the number of pipeline stages between memories cascaded in depth [...] A good rule of thumb is to pick a read latency of depth/2 + 2.

The depth is calculated from the total PLRAM memory depth divided by the primitive depth (URAM or BRAM). So for a 8K-deep memory in URAM, READ_LATENCY should be 3.

@DanieleParravicini
Copy link
Contributor

right now to go back and forth to the exchange meme implemented in BRAM
to enque 16 spares it takes 3430 clock cycles. 3 reads and 2 write x16 = 42 cc each access on average

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

No branches or pull requests

2 participants