Skip to content

Add ALU to ALU bypass in superscalar mode #2951

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

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

ricted98
Copy link
Contributor

@ricted98 ricted98 commented May 3, 2025

This PR introduce ALU to ALU bypass to allow dual issue of consecutive ALU instructions with a RAW dependency.
The ALUs are now instantiated inside a wrapper module, which provides either a single ALU for the scalar configuration or two ALUs with bypass logic in the superscalar scenario.
When two ALUs are instantiated, CPOP is carried out separately to avoid timing degradation.

immagine

At the moment the bypass is activated whenver SuperscalarEn=1. If a dedicated parameter is preferred to decouple the two features I can add it.

Copy link
Contributor

github-actions bot commented May 3, 2025

❌ failed run, report available here.

@ricted98 ricted98 force-pushed the rt/alu-bypass branch 3 times, most recently from e68fb8d to e6f7735 Compare May 4, 2025 12:51
@ricted98 ricted98 marked this pull request as ready for review May 4, 2025 12:58
@ricted98 ricted98 requested a review from JeanRochCoulon as a code owner May 4, 2025 12:58
Copy link
Contributor

github-actions bot commented May 5, 2025

❌ failed run, report available here.

3 similar comments
Copy link
Contributor

github-actions bot commented May 5, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented May 5, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented May 5, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented May 5, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented May 7, 2025

❌ failed run, report available here.

@ricted98
Copy link
Contributor Author

ricted98 commented May 14, 2025

  • Make the ALU-ALU forwarding parametric
  • Rebase on top of latest master branch

Copy link
Contributor

❌ failed run, report available here.

@@ -813,6 +851,14 @@ module issue_read_operands
if (issue_instr_valid_i[i] && !fu_busy[i]) begin
if (!stall_raw[i]) begin
issue_ack[i] = 1'b1;
// For now keep this as is, we cannot do inter dual-issue forwarding
if (i > 0) begin
if ((issue_instr_i[i].rd[4:0] == issue_instr_i[i-1].rd[4:0]) && (issue_instr_i[i].rd[4:0] != '0)) begin
Copy link
Contributor

Choose a reason for hiding this comment

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

Are these [4:0] slicing needed?

Shouldn’t this block of conditions be already managed inside stall_raw[1] instead of here?

Copy link
Contributor

❌ failed run, report available here.

1 similar comment
Copy link
Contributor

❌ failed run, report available here.

@ricted98 ricted98 requested review from Jbalkind and cfuguet as code owners May 16, 2025 13:22
@ricted98 ricted98 marked this pull request as draft May 16, 2025 13:23
Copy link
Contributor

❌ failed run, report available here.

1 similar comment
Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

1 similar comment
Copy link
Contributor

❌ failed run, report available here.

@ricted98
Copy link
Contributor Author

@JeanRochCoulon would it be possible to understand what is failing in the FPGA flow in the CI? I tried to run an FPGA synth locally and it arrives at the end, but I cannot reproduce the CI setup one-to-one.

Copy link
Contributor

github-actions bot commented Jul 8, 2025

❌ failed run, report available here.

5 similar comments
Copy link
Contributor

github-actions bot commented Jul 8, 2025

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

@ricted98 ricted98 marked this pull request as draft August 6, 2025 08:31
Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

1 similar comment
Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

@ricted98 ricted98 force-pushed the rt/alu-bypass branch 2 times, most recently from d32cbe1 to 5b0e804 Compare August 6, 2025 12:31
Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

1 similar comment
Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

2 similar comments
Copy link
Contributor

github-actions bot commented Aug 6, 2025

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

Co-authored-by: Gianmarco Ottavi <ottavig91@gmail.com>
Copy link
Contributor

❌ failed run, report available here.

2 similar comments
Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants