Multi-cycle divider improvements
- Dominant language
- Dart
- Stars
- 115
- Forks
- 39
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 1
Description
### Motivation
Some of the computations are using 2's complement where a 1's complement (inversion) based approach may be more efficient.
This should be explored to see if you can save all those carry operations.
More corner cases for the divider would be good to have in the test suite.
A test using a narrow divider might cover all corners.
We could enhance the MultCycleDividerState to be an enum and perhaps use the ROHD-HCL FSM construct.
### Desired solution
Create a narrow divider and see if we can cover all corners.
If not, create a list of corner cases and cover them with short tests.
Try converting computations to use 1's complement and avoid the carries.
### Alternatives considered
_No response_
### Additional details
_No response_
Contributor guide
Research direction
Start by reviewing linked pull request #287, then inspect the MultCycleDividerState implementation and existing divider tests. Explore a narrow divider to cover corner cases, and assess the proposed 1's-complement computations and ROHD-HCL FSM construct; done means the relevant corner cases are tested and the agreed divider improvements are implemented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart
- Domain
- embedded-iot
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100