CDT I-BM API 1.0.0
Loading...
Searching...
No Matches
CdtCDRE.h
1#pragma once
2
3#include "CdtBaseAPI.h"
4#include "Utils.tpp"
5#include "cdtCDRESimPatterns.h"
6#include "cdtCascadeSimPatterns.h"
7
8#define MAX_CIPIX 6
9
10struct FwInfo {
11 std::string name;
12 int nCipix;
13};
14struct SimInfo {
15 bool enabled;
16 uint32_t cyclesPaused;
17};
18
19class CdtCDRE : public virtual CdtBaseAPI {
20 public:
21 CdtCDRE(std::string name);
22 uint8_t getMaxCipix() const;
23 std::string getFwAlias() const;
24 void fetchFwInfo();
25 RMMResult cipixRegRead(int cipixIdx, std::string reg);
26 RMMResult cipixRegWrite(int cipixIdx, std::string, uint8_t wdata);
27
28 using CipixPair = std::pair<std::string, uint8_t>;
29 using CipixVector = std::vector<CipixPair>;
30
31 using FwMap = std::map<std::string, FwInfo>;
32
33 static const CipixVector& getCipixMap();
34 rmmStatus writeSim(bool enable, uint32_t pause_cycles = 0);
35 rmmStatus readSimParams(SimInfo& simInfo);
36
37 protected:
38 uint8_t maxCipix;
39 std::string fwAlias = "Undefined";
40
41 private:
42 std::array<std::mutex, MAX_CIPIX> cipixControllerMutex;
43 RMMLog cdreLog;
44 rmmStatus getCipixRegAddr(std::string reg, uint8_t& address);
45 RMMResult cipixRegAccess(int cipixIdx, std::string reg, uint8_t opcode, uint8_t wdata = 0);
46 static const CipixVector cdt_cipix_map;
47 static const FwMap fwMap;
48};
CdtBaseAPI(RMMAPI *rmmApi, int ring, int node, std::string name, FENRegMap additional_reg_map)
Constructor for the Cdt class.
Definition CdtBaseAPI.cpp:14
RMMResult cipixRegWrite(int cipixIdx, std::string, uint8_t wdata)
Writes a value to a cipix register and returns the read value.
Definition CdtCDRE.cpp:82
rmmStatus readSimParams(SimInfo &simInfo)
Reads registers telling the simulation params.
Definition CdtCDRE.cpp:206
RMMResult cipixRegRead(int cipixIdx, std::string reg)
Reads a value from a cipix register.
Definition CdtCDRE.cpp:59
rmmStatus writeSim(bool enable, uint32_t pause_cycles=0)
Starts or stops simulated data.
Definition CdtCDRE.cpp:135
Definition CdtCDRE.h:10
Definition CdtCDRE.h:14