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

Using Multiple Banks in DDR to Enable Multiple Read/Write at Same Cycle #890

Open
yuanm2 opened this issue Jul 11, 2019 · 1 comment
Open

Comments

@yuanm2
Copy link

yuanm2 commented Jul 11, 2019

To use multiple banks/controlers in the DDR to enable simultaneous reads/writes, what should I make changes of the SW/HW actions in the CAPI SNAP. I am thinking to add another DDR port beside the following one:
// DDR memory Interface
#pragma HLS INTERFACE m_axi port=d_ddrmem bundle=card_mem0 offset=slave depth=512 max_read_burst_length=64 max_write_burst_length=64
#pragma HLS INTERFACE s_axilite port=d_ddrmem bundle=ctrl_reg offset=0x050

Besides, should I make modifications in the makefile following what sDx tool suggests? (https://www.xilinx.com/html_docs/xilinx2017_4/sdaccel_doc/tom1504034303746.html)

@bmesnet
Copy link
Collaborator

bmesnet commented Jul 11, 2019

Hi @yuanm2
Issue #619 may partially answer to your question.
In our designs, you have noted that we have indeed implemented only 1 Bank (or channel) while most cards have several banks as described here (N250S+ is one of the rare card which has only 1 DDR bank). The main reason was that depending on user's needs, there was 2 options; first is to just extend the size of the first bank by adding this 2nd bank on the same DDR driver. The other option was to use 2 drivers in parallel to have a higher throughput. This last option means that you will need to duplicate the DDR driver in place and this will take twice the place in the design.
This may highlight that the change to implement in SNAP is not just the HLS ports to change as you pointed it, but you need to change the logic to duplicate this DDR driver and connect it as a new DDR port on the action.
As for an opensource project, you are very welcome to add your contribution by implementing it and add it to the SNAP design.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants