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

[rtl] Cleanups and Optimizations #660

Merged
merged 12 commits into from
Jul 29, 2023
Merged

[rtl] Cleanups and Optimizations #660

merged 12 commits into from
Jul 29, 2023

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Jul 29, 2023

  • 🧪 [SW] test additional GCC optimization flags -mstrict-align and -mbranch-cost=10
  • ⚠️ remove CPU_IPB_ENTRIES top generic (instruction prefetch buffer depth); this is now configured using a new package constant constant ipb_depth_c : natural := 2; and is not meant for editing by the use; CoreMark experiments showed that increasing the IPB beyond 2 entries does not bring much (any) benefit
  • terminate CPU signals if the according hardware module is not implemented (e.g. HPM and PMP signals); this removes some Quartus synthesis warnings
  • RTL code cleanups; making code more readable
  • rename bus infrastructure modules (in neorv32_intercon.vhd)
  • remove GATEWAY's IO bus port register stages
  • optimize BUS_SWITCH - less hardware, better timing
  • minor documentation updates and fixes

@stnolting stnolting added enhancement New feature or request HW Hardware-related labels Jul 29, 2023
@stnolting stnolting self-assigned this Jul 29, 2023
@stnolting stnolting changed the title [rtl] Cleanups and Optimization [rtl] Cleanups and Optimizations Jul 29, 2023
@stnolting stnolting marked this pull request as ready for review July 29, 2023 14:55
@stnolting stnolting merged commit 1a17de6 into main Jul 29, 2023
@stnolting stnolting deleted the dev290723 branch July 29, 2023 15:15
@@ -459,23 +458,29 @@ A pending FIRQ has to be explicitly cleared by writing zero to the according <<_

As a 32-bit architecture the NEORV32 can access a 4GB physical address space. By default, this address space is
split into six main regions. Each region provides specific _physical memory attributes_ ("PMAs") that define
the access capabilities.
the access capabilities (`rwxac`; `r` = read permission, `w` = execute permission, `x` - execute permission,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a typo slipped in here: execute -> write

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, my fault 😅
Thanks for finding this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request HW Hardware-related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants