ECC Analyzer is a modular safety analysis framework designed to calculate failure rates (FIT), diagnostic coverage, and architectural metrics (SPFM, LFM) for semiconductor memory systems (e.g., LPDDR4/5).
It combines strict mathematical modeling with automated architectural visualization using Graphviz.
- ISO 26262 Metrics: Automated calculation of Single-Point Fault Metric (SPFM) and Latent Fault Metric (LFM).
- Modular Architecture: Build complex hardware models using reusable blocks (
SumBlock,PipelineBlock,SplitBlock). - Visual Observer: Automatically generates architectural diagrams (PDF) reflecting the exact logic of the safety model.
- Traceability: Faults are tracked from the source (Basic Events) through ECC/logic layers to the final output.
Prerequisites:
- Python 3.9 or higher
- Graphviz installed on your system (required for visualization).
Install the package directly from the source:
pip install .Install in editable mode with development tools (linting, testing):
pip install -e .[dev]
The project includes a pre-configured model for an LPDDR4 system. You can run the analysis script directly:
python main.py
You can define your own safety architecture by subclassing SystemBase:
from ecc_analyzer.core import PipelineBlock, SumBlock, BasicEvent
from ecc_analyzer.system_base import SystemBase
class MySafetySystem(SystemBase):
def configure_system(self):
# Define your logic chain
self.system_layout = PipelineBlock("MyPath", [
BasicEvent("Source_SBE", rate=100.0),
# Add more blocks here...
])
# Run analysis
system = MySafetySystem("MyChip", total_fit=1000.0)
metrics = system.run_analysis()
print(metrics)The project follows the Observer Pattern to decouple calculation from visualization:
-
core/: Contains the logic blocks (SumBlock,SplitBlock) that handle FIT rate math. -
models/: Contains specific hardware implementations (e.g., LPDDR4). -
visualization/: TheSafetyVisualizerobserves the logic blocks and draws the Graphviz diagram.
-
Install dependencies:
pip install -e .[dev] -
Format code:
ruff format . -
Run checks:
ruff check .
Copyright (c) 2025 Linus Held. Licensed under the MIT License.