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

Add configurable redundancy #11

Draft
wants to merge 13 commits into
base: pulp
Choose a base branch
from

Conversation

Lynx005F
Copy link

@Lynx005F Lynx005F commented Jun 14, 2024

Adds top level modules and ports for time-based redundancy e.g. protection against single event upsets.

Depends on #10 and redundancy cells PRs Redundancy Cells #25 and Redundancy Cells #26.

This changes the ports of the top level module. Newly added are:

  • input logic redundancy_enable_i (switches on/off redundancy)
  • output logic fault_detected_o (for a performance counter to see if faults actually occurr)
  • Parameter RedundancyFeatures to choose redundancy implementation (fpnew_pkg::DEFAULT_NO_REDUNDANCY results in the same unit as before)

Testing

This version of FPNew can be error injected and analyzed for vulnerabilities to single event upsets with the itemm/error_injection branch of fpnew_tb.

Synthesis

This version of FPNew can be synthesized with the scripts in the internal gitlab for the R5SCY and CVA6 Core configurations to evaluate area overhead. Depending on the choosen implementation (not disabled ofc), redundancy add 7% - 12% of Area and increases the length of the critical path by a similar amount.

Work in Progress Points

  • Adding a guard clause so redundancy_enable_i can not be set when implementation allows no redundancy
  • Recalculating division max delay if it has leading / trailing pipeline registers
  • Merging dependencies

@Lynx005F Lynx005F force-pushed the itemm/redundancy_rebase branch 4 times, most recently from c00cf66 to 08cb3fb Compare July 10, 2024 05:21
@Lynx005F Lynx005F force-pushed the itemm/redundancy_rebase branch 4 times, most recently from bfa2753 to ce009bc Compare July 30, 2024 12:50
@Lynx005F Lynx005F force-pushed the itemm/redundancy_rebase branch 2 times, most recently from 8416df1 to bd7ad85 Compare August 20, 2024 12:57
Maurus Item added 3 commits September 3, 2024 21:20
- New input signal redundancy_enable_i to switch in between redundant and non-redundant modes.
- New output signal fault_detected_o for statistics
- Redundancy Implementation selected via Enum in fpnew_pkg.
- For TMR based redundancy use a large ID, for DMR base use a small ID and stall for divisions

renamed modules
- Removed recursive assignments that can cause trouble in simulation
- Removed repeated assignments in always_comb of classifier that cause trouble in simulation
- Fixed format selection can evaluate to X when faults are injected into Enum in simulation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant