-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathutilities.h
More file actions
50 lines (27 loc) · 1.54 KB
/
utilities.h
File metadata and controls
50 lines (27 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef UTILITIES_H
#define UTILITIES_H
#include <string>
#include "ddr5spd_structs.h"
namespace utilities {
// 0.30% per the rounding algorithm per JESD400-5B
constexpr unsigned int correctionFactor = 3;
constexpr double S10E6 = 1000000.0;
constexpr double S10E9 = 1000000000.0;
unsigned short Crc16(unsigned char bytes[], unsigned int length);
unsigned short TimeToTicksDDR5(const unsigned int ticks, const unsigned int minCycleTime);
unsigned short TimeToTicksDDR5_RFC(const unsigned int time, const unsigned int minCycleTime);
unsigned short TicksToTimeDDR5(const unsigned int ticks, const unsigned int minCycleTime);
unsigned short TicksToTimeDDR5_RFC(const unsigned int ticks, const unsigned int minCycleTime);
unsigned short TicksToTimeDDR5Middle(const unsigned int ticks, const unsigned int minCycleTime);
void SetCLSupportedDDR5(ddr5_structs::CAS &, unsigned short cl, bool supported);
bool IsCLSupportedDDR5(const ddr5_structs::CAS &, unsigned short cl);
unsigned short ConvertByteToVoltageDDR5(const unsigned char val);
unsigned char ConvertVoltageToByteDDR5(const unsigned short voltage);
void SetBit(unsigned char &bits, const unsigned short bitNumber, const bool value);
bool GetBit(unsigned char bits, unsigned short bitNumber);
void SetCString(const std::string value, const size_t maxLength, char *destination);
unsigned short convert_date_byte(const unsigned char);
unsigned char convert_to_date_byte(const unsigned short);
unsigned int round_frequency(const unsigned int frequency);
} // namespace utilities
#endif // UTILITIES_H