{
    "simulation": {
        "addressmapping": {
            "BANKGROUP_BIT": [
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31,
                32
            ],
            "BANK_BIT": [
                13,
                14,
                15
            ],
            "BYTE_BIT": [
                0,
                1
            ],
            "COLUMN_BIT": [
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12
            ],
            "RANK_BIT": [
                33
            ],
            "ROW_BIT": [
                16
            ]
        },
        "mcconfig": {
            "Arbiter": "Simple",
            "CmdMux": "Oldest",
            "HighWatermark": 0,
            "LowWatermark": 0,
            "MaxActiveTransactions": 128,
            "PagePolicy": "Open",
            "PowerDownPolicy": "NoPowerDown",
            "RefreshMaxPostponed": 0,
            "RefreshMaxPulledin": 0,
            "RefreshPolicy": "AllBank",
            "RequestBufferSize": 8,
            "RespQueue": "Fifo",
            "Scheduler": "FrFcfs",
            "SchedulerBuffer": "Bankwise"
        },
        "memspec": {
            "memarchitecturespec": {
                "RAADEC": 1,
                "RAAIMT": 32,
                "RAAMMT": 96,
                "burstLength": 16,
                "cmdMode": 1,
                "dataRate": 2,
                "nbrOfBankGroups": 8,
                "nbrOfBanks": 16,
                "nbrOfChannels": 2,
                "nbrOfColumns": 2048,
                "nbrOfDIMMRanks": 1,
                "nbrOfDevices": 8,
                "nbrOfLogicalRanks": 1,
                "nbrOfPhysicalRanks": 1,
                "nbrOfRanks": 1,
                "nbrOfRows": 65536,
                "refMode": 1,
                "width": 4
            },
            "memoryId": "JEDEC_2x8x2Gbx4_DDR5-3200A",
            "memoryType": "DDR5",
            "memtimingspec": {
                "ACTPDEN": 2,
                "CCD_L_WR2_slr": 16,
                "CCD_L_WR_slr": 32,
                "CCD_L_slr": 8,
                "CCD_S_WR_slr": 8,
                "CCD_S_slr": 8,
                "CCD_WR_dlr": 0,
                "CCD_WR_dpr": 0,
                "CCD_dlr": 0,
                "CPDED": 8,
                "FAW_dlr": 0,
                "FAW_slr": 32,
                "PD": 12,
                "PPD": 2,
                "PRPDEN": 2,
                "RAS": 52,
                "RCD": 22,
                "RDDQS": 0,
                "REFI1": 6240,
                "REFI2": 3120,
                "REFISB": 1560,
                "REFPDEN": 2,
                "REFSBRD_dlr": 0,
                "REFSBRD_slr": 48,
                "RFC1_dlr": 0,
                "RFC1_dpr": 0,
                "RFC1_slr": 312,
                "RFC2_dlr": 0,
                "RFC2_dpr": 0,
                "RFC2_slr": 208,
                "RFCsb_dlr": 0,
                "RFCsb_slr": 184,
                "RL": 22,
                "RP": 22,
                "RPRE": 1,
                "RPST": 0,
                "RRD_L_slr": 8,
                "RRD_S_slr": 8,
                "RRD_dlr": 0,
                "RTP": 12,
                "RTRS": 2,
                "WL": 20,
                "WPRE": 2,
                "WPST": 0,
                "WR": 48,
                "WTR_L": 16,
                "WTR_S": 4,
                "XP": 12,
                "clkMhz": 1600
            }
        },
        "simconfig": {
            "AddressOffset": 0,
            "CheckTLM2Protocol": false,
            "DatabaseRecording": true,
            "Debug": false,
            "EnableWindowing": false,
            "ErrorCSVFile": "error.csv",
            "ErrorChipSeed": 42,
            "PowerAnalysis": false,
            "SimulationName": "ddr5",
            "SimulationProgressBar": true,
            "StoreMode": "NoStorage",
            "ThermalSimulation": false,
            "UseMalloc": false,
            "WindowSize": 1000
        },
        "simulationid": "std::string_simulationId",
        "tracesetup": [
            {
                "clkMhz": 100,
                "name": "mytrace.stl"
            },
            {
                "addressDistribution": "random",
                "clkMhz": 100,
                "name": "MyTestGen",
                "numRequests": 1000,
                "rwRatio": 0.5
            },
            {
                "clkMhz": 100,
                "maxPendingReadRequests": 8,
                "name": "MyTestGen",
                "states": [
                    {
                        "addressDistribution": "sequential",
                        "addressIncrement": 256,
                        "id": 0,
                        "maxAddress": 1024,
                        "numRequests": 1000,
                        "rwRatio": 0.5
                    },
                    {
                        "addressDistribution": "sequential",
                        "addressIncrement": 512,
                        "id": 1,
                        "maxAddress": 2048,
                        "minAddress": 1024,
                        "numRequests": 100,
                        "rwRatio": 0.75
                    }
                ],
                "transitions": [
                    {
                        "from": 0,
                        "probability": 1.0,
                        "to": 1
                    }
                ]
            },
            {
                "clkMhz": 100,
                "name": "MyTestHammer",
                "numRequests": 4000,
                "rowIncrement": 2097152
            }
        ]
    }
}