Skip to content

Comments

rtl: Reenable rv32im instruction tests #618#622

Open
rascmatt wants to merge 2 commits intomasterfrom
fix/rtl-insn-tests
Open

rtl: Reenable rv32im instruction tests #618#622
rascmatt wants to merge 2 commits intomasterfrom
fix/rtl-insn-tests

Conversation

@rascmatt
Copy link
Contributor

Keep the dummy-mia overrides, so we can for now keep the RTL integration tests enabled. I'd like to also continue/implement the automated RTL benchmarking, which is based on the same mechanisms.

Unfortunately this requires a bit of a hack in order to 'override' the MIA within the VIAM, for now I opted to take the last MIA definition element, rather than the first.

@rascmatt rascmatt requested a review from flofriday December 27, 2025 08:52
@github-actions github-actions bot added the bug Something isn't working label Dec 27, 2025
@rascmatt rascmatt marked this pull request as ready for review December 27, 2025 08:53
@rascmatt
Copy link
Contributor Author

@flofriday / @linushdot Are any of the actual rv64-mia specs supposed to work already? Or is there a 32 bit version in the works?
(i don't want to pressure anyone, I'd like to genuinely just know)

@flofriday
Copy link
Contributor

@flofriday / @linushdot Are any of the actual rv64-mia specs supposed to work already? Or is there a 32 bit version in the works?
(i don't want to pressure anyone, I'd like to genuinely just know)

I can only talk about the frontend and here everything except the logic elements should work.
However I think all of our specs use them so I don't think any spec with a MIA works at the moment.

@rascmatt
Copy link
Contributor Author

@flofriday Thanks!
I don't think we're using logic elements, at least I don't see any in the rv64imFive.vadl spec. Or am I missing something?

Fyi, I tried the RTL lowering with the rv64imFive.vadl spec, and for now only the exception handling seems to cause a validation error. This is fine I guess, since afaik exception handling is also not implemented. Or does the frontend support it? Without these two lines, it also fails during the behaviour lowering.

Anyways, I don't need it for now, since this PR enables support for the dummy MIA again. So I would say we'll leave it like this for now.

Thank you, pls approve once the pipeline succeeds :)

@linushdot
Copy link
Contributor

@flofriday / @linushdot Are any of the actual rv64-mia specs supposed to work already? Or is there a 32 bit version in the works? (i don't want to pressure anyone, I'd like to genuinely just know)

For the RTL generator to work some changes are needed to accommodate the slightly-changed VIAM the frontend now creates #618. When this is done, rv64imFive.vadl and similar MiA specs should work (also rv32 specs). I hope I can get to it during the next week.

With this changes the dummy MiA implementations then should be removed, because they produce the "old" VIAM for the MiA.

@rascmatt
Copy link
Contributor Author

@linushdot
Ok cool, thats good to hear. Should I just wait then? I would need the RTL generation to work reliably for #593, but I guess the PR can wait another week.
Then again, we just disabled the tests originally (with #618), so I don't think it would be wrong to re-enable them, using the dummy mia until the real ones do work.

@linushdot
Copy link
Contributor

Automated testing will need to change as well, because selecting the MiA moves from the dummy command argument to selecting a VADL spec for the MiA. So waiting for the fix of the generator could be easier, but I don't see a problem with either way.

@flofriday
Copy link
Contributor

That is a great point from @linushdot the dummy MIA code generates the old VIAM structure so if you enable them now again and build further code on them you have to assume that a week from now you're locked in a potential major refactoring because the Dummy passes no longer produce the nodes that the actual frontend will produce.

@rascmatt
Copy link
Contributor Author

Thanks, yes that's a valid point.

I don't think the VIAM changes will really affect me right now, as my current additions mostly just work with the generated RTL output (automated static anylsis with yosys and openSTA + docker & CI integration etc.)

But I'm content to leave it for next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants