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

[enhancement] Support 1R/1W RAM Models (with RAM rewriting) #1388

Open
rw1nkler opened this issue Apr 19, 2024 · 1 comment
Open

[enhancement] Support 1R/1W RAM Models (with RAM rewriting) #1388

rw1nkler opened this issue Apr 19, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@rw1nkler
Copy link
Contributor

What's hard to do? (limit 100 words)

There is currently no ROM Model available in DSLX. Although a RamModel (1R1W RAM) can be used as a substitute in tests, it is impossible to use RAM rewriting for a proc that uses only the read-port of the RamModel. Also, we think that having a single 1W RAM could be beneficial if XLS is used to generate a module responsible for filling 1R1W RAM with data, while the read port is used by another part of the design (outside XLS)

Current best alternative workaround (limit 100 words)

Use the 1R1W RAM model with fake accesses to the unused ports.

send_if(tok, ram_rd_req, false, ...)
recv_if(tok, ram_rd_resp, false, ...)
or
send_if(tok, ram_wr_req, false, ...)
recv_if(tok, ram_wr_resp, false, ...)

Then, leave the unused ports unconnected in the generated Verilog code.

Your view of the "best case XLS enhancement" (limit 100 words)

The 1R and 1W RAM models could be available in XLS, and the RAM rewriting step could allow for rewriting their read/write port

@rw1nkler rw1nkler added the enhancement New feature or request label Apr 19, 2024
@meheff meheff added this to the Usability Sprint milestone May 1, 2024
@cunninghamsandwich
Copy link
Collaborator

Thanks for reporting! As discussed in our April enhancement proposal review meeting: we've added this to our Usability Sprint.

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

4 participants