Skip to content

lpddr5_system

Top-level system model for the LPDDR5 hardware architecture.

Lpddr5System

Bases: SystemBase

Coordinates the connection of all sub-components and defines the overall system layout for LPDDR5.

Source code in src/ecc_analyzer/models/lpddr5/lpddr5_system.py
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Lpddr5System(SystemBase):
    """Coordinates the connection of all sub-components and defines the overall system layout for LPDDR5."""

    def configure_system(self):
        """Defines the hierarchical structure of the LPDDR5 system.

        Constructs the main DRAM processing chain (Sources -> SEC -> TRIM -> BUS -> LINK -> SEC-DED -> TRIM)
        and merges it with other hardware components.
        """
        main_chain = PipelineBlock(
            "DRAM_Path",
            [
                Events("DRAM_Sources"),
                Sec("SEC"),
                DramTrim("TRIM"),
                BusTrim("BUS"),
                LinkEcc("LINK-ECC"),
                SecDed("SEC-DED"),
                SecDedTrim("SEC-DED-TRIM"),
            ],
        )

        self.system_layout = SumBlock(self.name, [main_chain, OtherComponents("Other_HW")])

configure_system()

Defines the hierarchical structure of the LPDDR5 system.

Constructs the main DRAM processing chain (Sources -> SEC -> TRIM -> BUS -> LINK -> SEC-DED -> TRIM) and merges it with other hardware components.

Source code in src/ecc_analyzer/models/lpddr5/lpddr5_system.py
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def configure_system(self):
    """Defines the hierarchical structure of the LPDDR5 system.

    Constructs the main DRAM processing chain (Sources -> SEC -> TRIM -> BUS -> LINK -> SEC-DED -> TRIM)
    and merges it with other hardware components.
    """
    main_chain = PipelineBlock(
        "DRAM_Path",
        [
            Events("DRAM_Sources"),
            Sec("SEC"),
            DramTrim("TRIM"),
            BusTrim("BUS"),
            LinkEcc("LINK-ECC"),
            SecDed("SEC-DED"),
            SecDedTrim("SEC-DED-TRIM"),
        ],
    )

    self.system_layout = SumBlock(self.name, [main_chain, OtherComponents("Other_HW")])