ECC Analyzer (Beachlore Safety)
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.
Features
- 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.
Installation
Prerequisites:
- Python 3.9 or higher
- Graphviz installed on your system (required for visualization).
For Users
Install the package directly from the source:
pip install .
For Developers
Install in editable mode with development tools (linting, testing):
pip install -e .[dev]
Usage
Running the LPDDR4 Analysis
The project includes a pre-configured model for an LPDDR4 system. You can run the analysis script directly:
python main.py
Creating a Custom Model
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)
Architecture
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.
Contributing
-
Install dependencies:
pip install -e .[dev] -
Format code:
ruff format . -
Run checks:
ruff check .
License
Copyright (c) 2025 Linus Held. Licensed under the MIT License.
Metadata
Release files for iso26262-ecc-analyzer 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iso26262_ecc_analyzer-0.1.0.tar.gz | 23.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iso26262_ecc_analyzer-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 63.5 kB
Release files / iso26262_ecc_analyzer-0.1.0.tar.gz
| Download URL | iso26262_ecc_analyzer-0.1.0.tar.gz |
|---|---|
| Size | 23.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dd314a1b7b8bda07d9bc3f46d6e76cd2b0fe1e86d2c554cd6c569c69c27d61b9
|
|
BLAKE2b-256 checksum How to use checksums |
94c2dbc934b5264ad0bf3450883f2f0bb3d68bc212afdc5e1bf41fbb63263268
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / iso26262_ecc_analyzer-0.1.0-py3-none-any.whl
| Download URL | iso26262_ecc_analyzer-0.1.0-py3-none-any.whl |
|---|---|
| Size | 39.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
25e681d22c6ec3b18cd614d2f19fa05276c2fb231fdae10df96cf181378ec54a
|
|
BLAKE2b-256 checksum How to use checksums |
f2a45ea23b03220b2e739fbebc2f7ede02fc51d687030ff3163a227d70d66aa4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|