Safety analysis and visualization tool according to ISO 26262.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iso26262_ecc_analyzer-0.1.0.tar.gz.
File metadata
- Download URL: iso26262_ecc_analyzer-0.1.0.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd314a1b7b8bda07d9bc3f46d6e76cd2b0fe1e86d2c554cd6c569c69c27d61b9
|
|
| MD5 |
c5ec65d40126bdad421b963088ee37dc
|
|
| BLAKE2b-256 |
94c2dbc934b5264ad0bf3450883f2f0bb3d68bc212afdc5e1bf41fbb63263268
|
File details
Details for the file iso26262_ecc_analyzer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iso26262_ecc_analyzer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 39.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25e681d22c6ec3b18cd614d2f19fa05276c2fb231fdae10df96cf181378ec54a
|
|
| MD5 |
f534c2d948af7913252f6ebcf68dbd25
|
|
| BLAKE2b-256 |
f2a45ea23b03220b2e739fbebc2f7ede02fc51d687030ff3163a227d70d66aa4
|