-
Notifications
You must be signed in to change notification settings - Fork 29
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
External memory connections #36
Comments
Hi, Regards |
Hi, Ya-Chau |
Yes this feature is definitely planned. (Marking this as duplicate of #4) For now, I would recommend keeping RAM-based regions separate from register files. This is pretty straightforward to do by simply providing a separate port from the interconnect that drives your interfaces. If there are any specific requests for the functionality of this feature, please comment on issue #4 so I can keep track of any specifics. Otherwise I'm closing this as duplicate. |
Sure @philipaxer, it is for whenever the host needs access to large data sets for read/write to where storing the data in discrete registers would use up a lot of space inside an FPGA. For example, say that a peripheral needs to know the xyz coordinates of a large number of objects, a RAM implementation of storage will be optimal. There are two ways (that I can think of) to access RAM blocks through an address map:
From a SW perspective it's more simple to just go to the RAM address and read/modify as shown in option 2. A read or write is a 1 step operation rather than 2. You can just pass around the pointer to where that data is located. A language like C requires a contiguous memory map for it to work correctly. From what I understand from my initial investigation the Does this make sense and is there anything that I have missed? Thanks David |
Thanks @amykyta3, I will have a think about doing the manual option. |
Thanks a lot @davidp135. does that intrinsically imply dual ported memory? One port for SW and one port for HW? For this application I would have probably given the IP an AXI master port to fetch data from system main memory via an DMA descriptor. That way you can keep the peripheral memory map smaller. |
I tried your fork, latest main; that also gave same error. |
This fork is only for my personal usage before and it's quite long time ago for me to trace those code. |
Sure. I saw a commit message "add external memory support" in your fork; so I gave it a try. @amykyta3 seems this feature is in high demand :) |
It sure seems so! |
Great, thank you @amykyta3! |
@davidp135 ; I am not able to find an example with "mem" keyword. |
I found some more info on "mem" in SystemRDL reference manual. |
BTW: I am wrapping up the changes for external support. Writing up some testcases, flushing out bugs, and updating documentation. The next few weeks are pretty busy for me, but I'm doing what I can! |
Published in |
Hi, I am just looking at your tool for integrating into the workflow at my company. It looks really good!
One thing that is currently a blocker to using this is the lack of support for external memory connections for the purpose of mapping block RAM to an address map. It looks like you were looking into it in issue #4. Are there any plans to role support soon?
I see @ycyang0508 may have been working on this on a fork ycyang0508@358a098 through to ycyang0508@381724e
Thanks
David
The text was updated successfully, but these errors were encountered: