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

⚠️ Major code edits / cleanups #664

Merged
merged 21 commits into from
Aug 5, 2023
Merged

⚠️ Major code edits / cleanups #664

merged 21 commits into from
Aug 5, 2023

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Aug 4, 2023

  • remove co-processor timeout logic from ALU (use the watchdog timer to ensure the CPU does not get stuck instead)
  • rename CPU data bus unit: neorv32_cpu_bus.vhd -> neorv32_cpu_lsu.vhd ("load/store unit")
  • move entire PMP logic (including CSRs) into a new design file neorv32_cpu_pmp.vhd
  • move FPU CSRs from central control unit to FPU module
  • constrain maximum number of HPMs to 13 ([m]hpmcounter3[h] to [m]hpmcounter15[h])
  • minor RTL edits and cleanups

ℹ️ Moving the entire PMP/FPU CSR logic into optional (if ... generate) design units ensures that all of the logic is trimmed when the according module is not enabled.

@stnolting stnolting added HW hardware-related coding-style Related to the HW/SW coding style labels Aug 4, 2023
@stnolting stnolting self-assigned this Aug 4, 2023
@stnolting stnolting changed the title Major code edits / cleanups ⚠️ Major code edits / cleanups Aug 4, 2023
@stnolting stnolting added the optimization Make things faster, smaller and more efficient label Aug 4, 2023
make sure bus access error trigger only kicks in during a valid bus access
- add external CSR interface
- remove FPU CSRs (moved to FPU module)
- remove PMP CSRs (moved to PMP module)
- control bus signal re-namings
@NikLeberg
Copy link
Collaborator

Hi @stnolting since you are already changing and updating stuff.. some small error just detected: in neorv32_cpu_amo.c the doxygen comments for @param[in] wdata of all amomin* functions is wrong. It says MAX-ed instead of MIN-ed. Seems like a copy-paste mistake. 😉

I could open a pr but I think that is overkill. How would you like such rather small errors to be fixed? Shall I collect them in a special draft pr where I could collect multiple smaller correction commits? Or am I allowed to directly push such small fixes to main? 🤔

@stnolting
Copy link
Owner Author

@NikLeberg

some small error just detected: in neorv32_cpu_amo.c the doxygen comments for @param[in] wdata of all amomin* functions is wrong. It says MAX-ed instead of MIN-ed. Seems like a copy-paste mistake. 😉

Thanks for finding!

How would you like such rather small errors to be fixed? Shall I collect them in a special draft pr where I could collect multiple smaller correction commits?

Sounds good to me.

Or am I allowed to directly push such small fixes to main?

I think you cannot push to main directly (even as a collaborator). 🤔 I need to check the branch protection rules again...

@stnolting stnolting marked this pull request as ready for review August 5, 2023 08:40
@stnolting stnolting merged commit f4c7263 into main Aug 5, 2023
8 checks passed
@stnolting stnolting deleted the dev030823 branch August 5, 2023 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
coding-style Related to the HW/SW coding style HW hardware-related optimization Make things faster, smaller and more efficient
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants