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/core] rework CPU data path #279

Merged
merged 4 commits into from
Feb 24, 2022
Merged

[rtl/core] rework CPU data path #279

merged 4 commits into from
Feb 24, 2022

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Feb 24, 2022

This PR is a rework of the CPU's internal data path. Basically, the data path is a "tree" of multiplexers that selects one out of different data sources (CSRs, program counter, ALU, memory) to be written to the CPU's register file. My experiments with different styles have shown that a few wide multiplexers might lead to better mapping (and shorter critical path) than many small multiplexers. However, the data path is now much cleaner, easier to understand and requires less control signals.

neorv32_cpu

📚 Furthermore, this PR finally updates the exemplary FPGA implementation results in Datasheet: FPGA Implementation Results.

@stnolting stnolting added the HW hardware-related label Feb 24, 2022
@stnolting stnolting self-assigned this Feb 24, 2022
@stnolting stnolting added the DOC Improvements or additions to documentation label Feb 24, 2022
@stnolting stnolting marked this pull request as ready for review February 24, 2022 03:39
@stnolting stnolting merged commit a84b449 into main Feb 24, 2022
@stnolting stnolting deleted the rework_cpu_datapath branch February 24, 2022 03:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DOC Improvements or additions to documentation HW hardware-related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant