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

CGRA configurable size and instruction update #21

Merged
merged 32 commits into from
Oct 1, 2024

Conversation

benoitdenkinger
Copy link
Contributor

This PR contains two important udpates:

  1. The CGRA size can be changed in the heepsilon_cfg.hjson file. The complete platform (HW and SW) is adapted accordingly. The applications however are only compatible with some specific sizes, make sure the platform and your apps are aligned.

  2. The direct load and store instructions (LWD and SWD) are no longer automatically incrementing their respective address by 4 for 32-bit accesses. Instead, the immediate field (13 bits) is sign extended and used to increment the address to give more flexibility. For old kernels to be compatible, an immediate value of 4 needs to be added to every LWD and SWD instruction.

@davideschiavone
Copy link
Contributor

once this is merge, please @JuanSapriza update the simulator

@JuanSapriza
Copy link
Collaborator

Thank you very much @benoitdenkinger !! This will be a great addition!
Lemme merge the other PR #16 first, then I will try this one.

@JuanSapriza
Copy link
Collaborator

@benoitdenkinger could you let @mbelda know when this needs testing? She has the use-case for this

@benoitdenkinger benoitdenkinger marked this pull request as ready for review November 28, 2023 14:44
@benoitdenkinger
Copy link
Contributor Author

benoitdenkinger commented Nov 28, 2023

@JuanSapriza @mbelda this PR is ready for review. I created a simple test app cgra_check_conf that creates a simple kernel for any CGRA size. I did some test and it seems to work. @mbelda, you can try with your own application and change the CGRA configuration in the heepsilon_cfg.hjson file. I only check the code with verilator for now.

@benoitdenkinger
Copy link
Contributor Author

Now it is also working with modelsim.

@JuanSapriza
Copy link
Collaborator

Hello @benoitdenkinger!
Could you give as quick status-update on this? Should we take over? Is there anything else you were planning to add into it?

@benoitdenkinger
Copy link
Contributor Author

Hello @JuanSapriza, I tested it with verilator and modelsim changing the CGRA parameters and everything worked fine (it was not extensive tests, but I think there is no major bug). I was not planning to add anything, but the only thing I didn't try is the FPGA implementation.

@mbelda
Copy link
Contributor

mbelda commented Dec 4, 2023

I tried my code with a 5x4 CGRA using verilator and it worked fine.

@JuanSapriza
Copy link
Collaborator

JuanSapriza commented Dec 4, 2023

@mbelda @NicCarp11 would any of you mind testing on the FPGA (i no longer have an FPGA 😢 )

You might need to try something small, like a 3x2 because of resource availability

@JoseCalero JoseCalero merged commit b55b14f into esl-epfl:main Oct 1, 2024
2 checks passed
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.

5 participants