-
Notifications
You must be signed in to change notification settings - Fork 432
synth: add SYNTH_MOCK_LARGE_MEMORIES #3621
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
Changes from 1 commit
06042cd
9d98e8f
867f895
04bae58
bf47644
e511371
916b9de
da6546c
772ba49
2f84d03
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -177,6 +177,22 @@ SYNTH_MEMORY_MAX_BITS: | |
| default: 4096 | ||
| stages: | ||
| - synth | ||
| SYNTH_MOCK_LARGE_MEMORIES: | ||
| description: > | ||
| Reduce memories larger than SYNTH_MEMORY_MAX_BITS to 1 row. | ||
|
|
||
| This is useful to separate the concern of instantiating and placing | ||
| memories from investigating other issues with a design. | ||
|
|
||
| Memories with a single 1 row will of course have unrealistically good | ||
| timing and area characteristics, but timing will still correctly terminate | ||
| in a register. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let me also point out a concern that some of the logic driving the address input on the RAM will be optimized out when we override the RAM size
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmmm... I think these sort of downstream consequences are evident to anyone skilled in the art given the warning in the doc?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Possibly. In my experience people are surprised by what can get optimized out when they mock something in their design
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see.... The idea is that whatever problems remain after mocking, they are real place/route/timing closure problems and worth sorting out while waiting for real RAM or some more accurate fake RAM.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Perhaps a more stern comment to the effect "you asked for it and you deserve the result" would be helpful, but I think it is fine the way it is. |
||
|
|
||
| Also, large port memories, typically register files, will still have the | ||
| retain a lot of the port logic that can be useful to investigate issues. | ||
| default: 0 | ||
| stages: | ||
| - synth | ||
| SYNTH_HDL_FRONTEND: | ||
| description: > | ||
| Select an alternative language frontend to ingest the design. Available option | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@oharboe Is
memory_seta hypothetical command?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see there are other dreamed up commands. Let me see if this can be implemented using real commands
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. In ChatGPT's defense it did say that it dreamt up these commands and then it looked for alternatives.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I offer this for testing: