{ "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, "tCK": 625 } }, "simconfig": { "AddressOffset": 0, "CheckTLM2Protocol": false, "DatabaseRecording": true, "Debug": false, "EnableWindowing": false, "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 } ] } }