Bases: Base
Component for Single Error Correction and Double Error Detection (SEC-DED).
This module manages diagnostic coverage for multiple fault types and handles
transformations between failure modes (e.g., TBE -> MBE).
Source code in src/ecc_analyzer/models/lpddr4/sec_ded.py
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 | class SecDed(Base):
"""Component for Single Error Correction and Double Error Detection (SEC-DED).
This module manages diagnostic coverage for multiple fault types and handles
transformations between failure modes (e.g., TBE -> MBE).
"""
def __init__(self, name: str):
"""Initializes the SEC-DED component with specific diagnostic coverage and source parameters.
Args:
name (str): The descriptive name of the component.
"""
self.sbe_dc = 1.0
self.dbe_dc = 1.0
self.mbe_dc = 0.5
self.tbe_dc = 1.0
self.tbe_split_to_mbe = 0.56
self.lfm_sbe_dc = 1.0
self.lfm_dbe_dc = 1.0
self.sdb_source = 0.1
super().__init__(name)
def configure_blocks(self):
"""Configures the internal block structure as a sum block."""
self.root_block = SumBlock(
self.name,
[
BasicEvent(FaultType.SDB, self.sdb_source, is_spfm=False),
CoverageBlock(FaultType.SBE, self.lfm_sbe_dc, is_spfm=False),
CoverageBlock(FaultType.DBE, self.lfm_dbe_dc, is_spfm=False),
TransformationBlock(FaultType.TBE, FaultType.MBE, self.tbe_split_to_mbe),
CoverageBlock(FaultType.SBE, self.sbe_dc),
CoverageBlock(FaultType.DBE, self.dbe_dc),
CoverageBlock(FaultType.TBE, self.tbe_dc),
CoverageBlock(FaultType.MBE, self.mbe_dc),
],
)
|
__init__(name)
Initializes the SEC-DED component with specific diagnostic coverage and source parameters.
Parameters:
| Name |
Type |
Description |
Default |
name
|
str
|
The descriptive name of the component.
|
required
|
Source code in src/ecc_analyzer/models/lpddr4/sec_ded.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 | def __init__(self, name: str):
"""Initializes the SEC-DED component with specific diagnostic coverage and source parameters.
Args:
name (str): The descriptive name of the component.
"""
self.sbe_dc = 1.0
self.dbe_dc = 1.0
self.mbe_dc = 0.5
self.tbe_dc = 1.0
self.tbe_split_to_mbe = 0.56
self.lfm_sbe_dc = 1.0
self.lfm_dbe_dc = 1.0
self.sdb_source = 0.1
super().__init__(name)
|
Configures the internal block structure as a sum block.
Source code in src/ecc_analyzer/models/lpddr4/sec_ded.py
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 | def configure_blocks(self):
"""Configures the internal block structure as a sum block."""
self.root_block = SumBlock(
self.name,
[
BasicEvent(FaultType.SDB, self.sdb_source, is_spfm=False),
CoverageBlock(FaultType.SBE, self.lfm_sbe_dc, is_spfm=False),
CoverageBlock(FaultType.DBE, self.lfm_dbe_dc, is_spfm=False),
TransformationBlock(FaultType.TBE, FaultType.MBE, self.tbe_split_to_mbe),
CoverageBlock(FaultType.SBE, self.sbe_dc),
CoverageBlock(FaultType.DBE, self.dbe_dc),
CoverageBlock(FaultType.TBE, self.tbe_dc),
CoverageBlock(FaultType.MBE, self.mbe_dc),
],
)
|