ram: latch-based memory support#10290
ram: latch-based memory support#10290tnguy19 wants to merge 11 commits intoThe-OpenROAD-Project:masterfrom
Conversation
Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
…files for 8x8 with ratio=4, update golden files for 8x8 ratio=2 Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
…mn_mux_ratio > 1 to avoid congestion in wiring when column_mux_ratio = 4 Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
… for pin on right edge, update golden files Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
There was a problem hiding this comment.
Code Review
This pull request introduces support for latch-based RAM generation by adding a new 'use_latch' parameter to the RAM generator and associated command-line interfaces. The implementation includes logic to identify and place latch cells, as well as necessary updates to the grid layout and netlist generation. I have provided feedback regarding a dangerous type cast in the port iteration logic, a potential bug where a cell is overwritten in the layout, and a suggestion to guard the latch port mapping assignment.
|
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
|
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
|
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: Thinh Nguyen <nguyenthinh19011@gmail.com>
|
clang-tidy review says "All clean, LGTM! 👍" |
There was a problem hiding this comment.
Why is a DFF file affected by adding latch support?
There was a problem hiding this comment.
I think it's likely because of bazel vs cmake producing slightly different routing result. The defok before was generated using cmake and it produces a different result for 8x8 which I found out while running tests so I updated it to match the bazel output. This is unrelated to the changes for the latch support
Summary
Add support for latch-based memory with the flag
-use_latch. An additional row of negative latches is added , input data is connected to the D port of a negative latch and the Q port of this latch is connected to the D port of each (positive latch) bitcell.The code can automatically detect latch gates for sky130 and nangate45.
Note: currently only support 1 write port, support for multiple ports will be added when that feature is implemented.
Type of Change
Impact
-use_latchto indicate whether they want to use latch-based memory. The default value is 0 so dff-based ram is used by default. Scripts that do not have this flag are not affected.Verification
./etc/Build.sh).Related Issues
Fixes #10153
@rovinski