Skip to content

Stratix 10 Quad Port Ram Support #3180

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

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Conversation

kimiatkh
Copy link
Contributor

@kimiatkh kimiatkh commented Jul 2, 2025

This pull request adds support for quad-port RAM in the Stratix 10 architecture file. It also updates the vqm2blif tool to process quad-port RAMs from VQM files and generate the appropriate operation modes in the BLIF output. Additionally, it makes a small modification to the MLAB primitives in the architecture capture by adding the class=memory attribute, enabling VPR to correctly pack MLABs slices in to MLAB primitives.

@kimiatkh kimiatkh requested a review from vaughnbetz July 2, 2025 02:08
@github-actions github-actions bot added the lang-cpp C/C++ code label Jul 2, 2025
if (ram_info.port_a_output_clock && ram_info.port_b_output_clock) {
reg_outputs = true; //Sequential output
} else if (!ram_info.port_a_output_clock && !ram_info.port_b_output_clock) {
reg_outputs = false; //Comb output
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please edit the comments in your code to be consistent the coding style guide:

  1. Add a space after //
  2. Avoid using block comments for implementation-related commnets

@@ -613,8 +625,9 @@ void generate_opname_ram (t_node* vqm_node, const LogicalModels& arch_models, st
}

//A dual port memory, both port A and B params have been found
} else {
VTR_ASSERT(ram_info.mode == "dual_port" || ram_info.mode == "bidir_dual_port");
} else if (ram_info.mode == "dual_port" || ram_info.mode == "bidir_dual_port"){
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing space ){

} else {
//3b) Use the more detailed name, since it was found in the architecture
mode_hash = tmp_mode_hash;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-write this if statement get rid of the branch where nothing is done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lang-cpp C/C++ code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants