-
Notifications
You must be signed in to change notification settings - Fork 666
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
Use unified spec describe CSR registers #1809
Comments
(I'd prefer base[31:6]/26 and base[63:6]/58 when the registers are already split by XLEN and having equal display bit width for both registers, so the mode doesn't look different) I think that having just one register layout definition with variable length fields is much better, because the reader doesn't have to compare all the other fields to see that they haven't changed. wavedrom-bitfield currently doesn't support fields with variable length, so you have to use bytefield-svg and make it look inconsistent with other registers, but that's another issue. Instructions don't list their codes at instruction definition either, so the current CSR format is probably trying to do the same.
Having consistent definitions would be great. Probably not like jvt does it, though, and Sail is supposed to bring big changes to ISA generation, so I'm personally waiting for that before suggesting any improvements. |
mstatus is indeed difficult to typeset as a single register, because it provides access to more than 32 bits of information through msatatush. Having RV32 separate from RV64+RV128 version seems most palatable. |
I found the description of
jvt
CSR in the manual to be very organized and clear, following the format belowHowever, other old CSRs didn't follow such a format,This may be one of the reasons that causes confusion among users.
Perhaps we should try gradually to have all CSRs follow this format as much as possible?
The text was updated successfully, but these errors were encountered: