-
Notifications
You must be signed in to change notification settings - Fork 211
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
[ACT] ACTs and coverage points for machine mode software and timer interrupts #567
base: dev
Are you sure you want to change the base?
Conversation
…ftware and timer interrupts
…test.h to mitigate the issue of spurious interrupt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, equations with constants (e.g. mip>>3 & 0x1!= 0x1) are not satisfactory. What would be satisfactory would be ((mip & MIP_MSIP)==0), where MIP_MSIP is #defined - and you don't even have to define it yourself because it is already defined in encoding.h which is #included. Note that this applies of almost CSR fields . The comments are quite appreciated, on the other hand.
coverage/header_file.yaml
Outdated
MSIP_BASE: 0x02000000 | ||
MTIMECMP_BASE: 0x02004000 | ||
MTIME_BASE: 0x0200bff8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where did these default values come from? There is a model defined variables, which should be named RVMODEL_MSIP_BASE, etc to be consistent with all other model defined variables.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are standard RISC-V CLINT (Core-Local Interrupt) base addresses, which also used in the Sail model. MSIP_BASE and others are now replaced with the RVMODEL_MSIP_BASE etc in all ACTs.
#define RVMODEL_SET_MSW_INT | ||
#define RVMODEL_SET_MSW_INT ;\ | ||
li t1, 1 ;\ | ||
li t2, 0x2000000 ;\ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- using constants is prohibited; use the value you defined above: MSIP_MBASE
- use of li is prohibited in tests; use LI(rd, mnemonic_value) instead.
These apply to ALL li ops in all tests, not just this one
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is replaced in all plugins and proper macro is used now.
Description
This pull request introduces tests and covergroups to verify machine mode software and timer interrupts. The tests and covergroups were developed following the guidelines outlined in the Test Plan
Related Issues
This pull request relies on the changes in the following PRs for full functionality and compatibility:
Ratified/Unratified Extensions
List Extensions
N/A
Reference Model Used
DUT Model Used
Mandatory Checklist:
Optional Checklist: