Index
Exposes the LPDDR4 specific hardware components and system model.
BusTrim
Bases: Base
Component for trimming and distributing failure rates across the bus architecture.
This module injects specific bus-related fault sources (MBE, AZ) and redistributes SBE, DBE, and TBE faults for both SPFM and LFM paths.
Source code in src/ecc_analyzer/models/lpddr4/bus_trim.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 51 52 53 54 55 | |
__init__(name)
Initializes the BusTrim component with LPDDR4-specific split parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The descriptive name of the component. |
required |
Source code in src/ecc_analyzer/models/lpddr4/bus_trim.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
configure_blocks()
Configures the root block as a collection of fault injections and split operations.
Uses a SumBlock to aggregate source injections and parallel redistribution (SplitBlocks) of incoming faults.
Source code in src/ecc_analyzer/models/lpddr4/bus_trim.py
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | |
DramTrim
Bases: Base
Handles the redistribution of SBE, DBE, and TBE faults for both residual and latent paths.
This component uses a SumBlock to apply parallel split operations that redistribute fault rates according to specific hardware trimming factors defined for LPDDR4.
Source code in src/ecc_analyzer/models/lpddr4/dram_trim.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 | |
__init__(name)
Initializes the DramTrim component with hardware-specific split distribution parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The descriptive name of the component. |
required |
Source code in src/ecc_analyzer/models/lpddr4/dram_trim.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
configure_blocks()
Configures the root block as a collection of split operations.
Each split block redistributes the specified fault type according to the defined ratios. Both SPFM (residual) and LFM (latent) paths are processed in parallel.
Source code in src/ecc_analyzer/models/lpddr4/dram_trim.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | |
Events
Bases: Base
Initializes the baseline DRAM failure rates for LPDDR4.
This module acts as a primary source for SBE, DBE, MBE, and WD faults. As a pure source component, it uses a SumBlock to inject all rates in parallel.
Source code in src/ecc_analyzer/models/lpddr4/events.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 | |
__init__(name)
Initializes the fault rates based on a baseline DRAM FIT value.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The descriptive name of the component. |
required |
Source code in src/ecc_analyzer/models/lpddr4/events.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
configure_blocks()
Configures the internal block structure by injecting failure rates as basic events.
Uses a SumBlock as these faults occur independently and in parallel on the hardware level.
Source code in src/ecc_analyzer/models/lpddr4/events.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
Lpddr4System
Bases: SystemBase
Coordinates the connection of all sub-components and defines the overall system layout.
Source code in src/ecc_analyzer/models/lpddr4/lpddr4_system.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
configure_system()
Defines the hierarchical structure of the LPDDR4 system. Constructs the main DRAM processing chain and merges it with other hardware components.
Source code in src/ecc_analyzer/models/lpddr4/lpddr4_system.py
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
OtherComponents
Bases: Base
Component representing miscellaneous hardware parts that contribute a fixed FIT rate.
This module encapsulates all non-DRAM components into a single source injection block to simplify the top-level model.
Source code in src/ecc_analyzer/models/lpddr4/other_components.py
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
__init__(name)
Initializes the component and sets the constant source FIT rate.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The descriptive name of the component. |
required |
Source code in src/ecc_analyzer/models/lpddr4/other_components.py
16 17 18 19 20 21 22 23 | |
configure_blocks()
Configures the root block to inject the FIT rate.
Uses a SumBlock as the base container for the fault source (BasicEvent). The fault is injected into the residual path (is_spfm=True).
Source code in src/ecc_analyzer/models/lpddr4/other_components.py
25 26 27 28 29 30 31 | |
Sec
Bases: Base
Component for Single Error Correction (SEC) in LPDDR4 architectures.
This module handles SBE coverage and redistributes DBE failure rates into TBEs. It uses a PipelineBlock to ensure that local sources are added before diagnostic coverage and split operations are applied.
Source code in src/ecc_analyzer/models/lpddr4/sec.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 51 52 53 54 | |
__init__(name)
Initializes the SEC component with specific diagnostic coverage and failure rates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The descriptive name of the component. |
required |
Source code in src/ecc_analyzer/models/lpddr4/sec.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
configure_blocks()
Configures the internal block structure as a sequential pipeline.
This ensures fault sources are injected first, followed by coverage application and final rate redistribution.
Source code in src/ecc_analyzer/models/lpddr4/sec.py
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | |
SecDed
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 | |
__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 | |
configure_blocks()
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 | |
SecDedTrim
Bases: Base
Component for trimming and distributing residual and latent fault rates after SEC-DED processing.
This module chains sequential split operations for SBE, DBE, and TBE fault types to model the final trimming behavior of the LPDDR4 architecture.
Source code in src/ecc_analyzer/models/lpddr4/sec_ded_trim.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 51 52 53 54 55 | |
__init__(name)
Initializes the SecDedTrim component with predefined split 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_trim.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
configure_blocks()
Configures the root block as a collection of split operations.
Redistributes faults for both residual (SPFM) and latent (LFM) paths.
Source code in src/ecc_analyzer/models/lpddr4/sec_ded_trim.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | |