Skip to content

Commit ce1f229

Browse files
authored
Merge pull request #11 from tukl-msd/feat/RefModeEnums
add RefMode enums for DDR4 and DDR5
2 parents bf31807 + 268146d commit ce1f229

File tree

2 files changed

+45
-20
lines changed

2 files changed

+45
-20
lines changed

include/DRAMUtils/DRAMUtils/memspec/standards/MemSpecDDR4.h

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,20 @@
4545

4646
namespace DRAMUtils::MemSpec {
4747

48+
enum class RefModeTypeDDR4
49+
{
50+
INVALID = -1,
51+
REF_MODE_1 = 1,
52+
REF_MODE_2 = 2,
53+
REF_MODE_4 = 4
54+
};
55+
NLOHMANN_JSON_SERIALIZE_ENUM(RefModeTypeDDR4, {
56+
{RefModeTypeDDR4::INVALID, nullptr},
57+
{RefModeTypeDDR4::REF_MODE_1, 1},
58+
{RefModeTypeDDR4::REF_MODE_2, 2},
59+
{RefModeTypeDDR4::REF_MODE_4, 4},
60+
})
61+
4862
struct MemArchitectureSpecTypeDDR4
4963
{
5064
uint64_t nbrOfChannels;
@@ -57,7 +71,7 @@ struct MemArchitectureSpecTypeDDR4
5771
uint64_t burstLength;
5872
uint64_t dataRate;
5973
uint64_t width;
60-
uint64_t RefMode;
74+
RefModeTypeDDR4 RefMode;
6175
std::optional<uint64_t> maxBurstLength;
6276
};
6377
NLOHMANN_JSONIFY_ALL_THINGS(MemArchitectureSpecTypeDDR4, nbrOfChannels, nbrOfDevices, nbrOfRanks, nbrOfBanks, nbrOfBankGroups, nbrOfRows, nbrOfColumns, burstLength, dataRate, width, RefMode, maxBurstLength)
@@ -78,11 +92,10 @@ struct MemTimingSpecTypeDDR4
7892
uint64_t WR;
7993
uint64_t XP;
8094
uint64_t XS;
81-
uint64_t REFM;
8295
uint64_t REFI;
83-
uint64_t RFC1;
84-
uint64_t RFC2;
85-
uint64_t RFC4;
96+
uint64_t RFC1; // RefModeTypeDDR4::REF_MODE_1 || RefModeTypeDDR4::INVALID
97+
uint64_t RFC2; // RefModeTypeDDR4::REF_MODE_2
98+
uint64_t RFC4; // RefModeTypeDDR4::REF_MODE_4
8699
uint64_t RP;
87100
uint64_t DQSCK;
88101
uint64_t CCD_S;
@@ -100,7 +113,7 @@ struct MemTimingSpecTypeDDR4
100113
uint64_t REFPDEN;
101114
uint64_t RTRS;
102115
};
103-
NLOHMANN_JSONIFY_ALL_THINGS(MemTimingSpecTypeDDR4, tCK, CKE, CKESR, RAS, RC, RCD, RL, RPRE, RTP, WL, WPRE, WR, XP, XS, REFM, REFI, RFC1, RFC2, RFC4, RP, DQSCK, CCD_S, CCD_L, FAW, RRD_S, RRD_L, WTR_S, WTR_L, XPDLL, XSDLL, AL, ACTPDEN, PRPDEN, REFPDEN, RTRS)
116+
NLOHMANN_JSONIFY_ALL_THINGS(MemTimingSpecTypeDDR4, tCK, CKE, CKESR, RAS, RC, RCD, RL, RPRE, RTP, WL, WPRE, WR, XP, XS, REFI, RFC1, RFC2, RFC4, RP, DQSCK, CCD_S, CCD_L, FAW, RRD_S, RRD_L, WTR_S, WTR_L, XPDLL, XSDLL, AL, ACTPDEN, PRPDEN, REFPDEN, RTRS)
104117

105118
struct MemPowerSpecTypeDDR4
106119
{
@@ -124,15 +137,15 @@ struct MemPowerSpecTypeDDR4
124137
double ipp2p;
125138
double ipp3p;
126139

127-
// MemArchitectureSpecTypeDDR4::RefMode==1
140+
// RefModeTypeDDR4::REF_MODE_1 || RefModeTypeDDR4::INVALID
128141
double idd5B;
129142
double ipp5B;
130143

131-
// MemArchitectureSpecTypeDDR4::RefMode==2
144+
// RefModeTypeDDR4::REF_MODE_2
132145
double idd5F2;
133146
double ipp5F2;
134147

135-
// MemArchitectureSpecTypeDDR4::RefMode==4
148+
// RefModeTypeDDR4::REF_MODE_4
136149
double idd5F4;
137150
double ipp5F4;
138151

include/DRAMUtils/DRAMUtils/memspec/standards/MemSpecDDR5.h

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,18 @@
4444

4545
namespace DRAMUtils::MemSpec {
4646

47+
enum class RefModeTypeDDR5
48+
{
49+
INVALID = -1,
50+
REF_MODE_1 = 1,
51+
REF_MODE_2 = 2,
52+
};
53+
NLOHMANN_JSON_SERIALIZE_ENUM(RefModeTypeDDR5, {
54+
{RefModeTypeDDR5::INVALID, nullptr},
55+
{RefModeTypeDDR5::REF_MODE_1, 1},
56+
{RefModeTypeDDR5::REF_MODE_2, 2},
57+
})
58+
4759
struct MemArchitectureSpecTypeDDR5
4860
{
4961
uint64_t nbrOfChannels;
@@ -59,7 +71,7 @@ struct MemArchitectureSpecTypeDDR5
5971
uint64_t burstLength;
6072
uint64_t dataRate;
6173
uint64_t width;
62-
uint64_t RefMode;
74+
RefModeTypeDDR5 RefMode;
6375
std::optional<uint64_t> maxBurstLength;
6476

6577
uint64_t cmdMode;
@@ -105,12 +117,12 @@ struct MemTimingSpecTypeDDR5
105117
uint64_t WTR_L;
106118
uint64_t WTR_M;
107119
uint64_t WTR_S;
108-
uint64_t RFC1_slr; // MemArchitectureSpecTypeDDR5::RefMode == 1
109-
uint64_t RFC2_slr; // MemArchitectureSpecTypeDDR5::RefMode == 2
110-
uint64_t RFC1_dlr; // MemArchitectureSpecTypeDDR5::RefMode == 1
111-
uint64_t RFC2_dlr; // MemArchitectureSpecTypeDDR5::RefMode == 2
112-
uint64_t RFC1_dpr; // MemArchitectureSpecTypeDDR5::RefMode == 1
113-
uint64_t RFC2_dpr; // MemArchitectureSpecTypeDDR5::RefMode == 2
120+
uint64_t RFC1_slr; // RefModeTypeDDR5::REF_MODE_1
121+
uint64_t RFC2_slr; // RefModeTypeDDR5::REF_MODE_2
122+
uint64_t RFC1_dlr; // RefModeTypeDDR5::REF_MODE_1
123+
uint64_t RFC2_dlr; // RefModeTypeDDR5::REF_MODE_2
124+
uint64_t RFC1_dpr; // RefModeTypeDDR5::REF_MODE_1
125+
uint64_t RFC2_dpr; // RefModeTypeDDR5::REF_MODE_2
114126
uint64_t RFCsb_slr;
115127
uint64_t RFCsb_dlr;
116128
uint64_t REFI1;
@@ -152,11 +164,11 @@ struct MemPowerSpecTypeDDR5
152164
double ipp2p;
153165
double ipp3p;
154166

155-
double idd5b; // MemArchitectureSpecTypeDDR5::RefMode == 1
156-
double idd5f; // MemArchitectureSpecTypeDDR5::RefMode == 2
167+
double idd5b; // RefModeTypeDDR5::REF_MODE_1
168+
double idd5f; // RefModeTypeDDR5::REF_MODE_2
157169

158-
double ipp5b; // MemArchitectureSpecTypeDDR5::RefMode == 1
159-
double ipp5f; // MemArchitectureSpecTypeDDR5::RefMode == 2
170+
double ipp5b; // RefModeTypeDDR5::REF_MODE_1
171+
double ipp5f; // RefModeTypeDDR5::REF_MODE_2
160172

161173
double vddq;
162174

0 commit comments

Comments
 (0)