Refactor configuration library
The configuration library has been refactored to make use of nlohmann macros to reduce boilerplate code. The nlohmann parser callback is used to decide whether to include configuration json objects directly, or if they need to be loaded from a sperate file.
This commit is contained in:
212
tests/tests_configuration/reference.json
Normal file
212
tests/tests_configuration/reference.json
Normal file
@@ -0,0 +1,212 @@
|
||||
{
|
||||
"simulation": {
|
||||
"addressmapping": {
|
||||
"CONGEN": {
|
||||
"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": {
|
||||
"RAACDR": 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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user