ngc 1.5.0
 
Loading...
Searching...
No Matches
ngcbSIM.hpp
Go to the documentation of this file.
1
8#ifndef ngcbSIM_H
9#define ngcbSIM_H
10
11
12#ifndef __cplusplus
13#error This is a C++ include file and cannot be used from plain C
14#endif
15
16#include <ngc/core/ngcb.h>
17#include <ngc/core/ngcbAddr.h>
19
23#define ngcbSIM_UPDATE_STATUS 0x80000000
24
28#define ngcbSIM_LOCAL_SPACE (16 * 1024)
29
33#define ngcbSIM_CFG_SPACE 2048
34
39public:
41 ngcbSVSSIM();
42
44 virtual ~ngcbSVSSIM();
45
47 int Read(int addr, int *buffer, int size, int flags);
48
50 int Write(int addr, const int *buffer, int size, int flags);
51
52protected:
53
54private:
56 int page_;
57
59 int cmd_;
60
62 int supply_[12];
63
65 double rhum_;
66
68 double temp_;
69
71 double pressure_;
72
74 double ptemp_;
75
77 int sens2Active_;
78
80 int sens2Data_[3];
81
83 int sens2Reg_;
84
86 int ReadSens1_(int *r, int size, int flags);
87
89 int ReadSens2_(int *r, int size, int flags);
90
92 int ReadSVS_(int *r, int size, int flags);
93
95 int WriteSens1_(const int *r, int size, int flags);
96
98 int WriteSens2_(const int *r, int size, int flags);
99
101 int WriteSVS_(const int *r, int size, int flags);
102
104 int CRC_(const int *data, size_t size);
105
107 double Rand_(double min, double max);
108};
109
114public:
116 explicit ngcbSCASIM(int id);
117
119 virtual ~ngcbSCASIM();
120
122 void Reset();
123
125 int Read(const int *bufIn, int *bufOut);
126
128 int Write(const int *bufIn, int *bufOut);
129
130protected:
131
132private:
134 void Init_();
135
137 void Set_(int addr, int value);
138
140 char *mem_;
141
143 int memSize_;
144
146 int id_;
147};
148
152class ngcbSIM {
153public:
155 ngcbSIM();
156
158 explicit ngcbSIM(int master);
159
161 virtual ~ngcbSIM();
162
165
168
171
174
176 int Initialized() {return (initialized_);}
177
179 int Status();
180
182 void Timeout(int sconds);
183
185 void Reset();
186
188 void Read(int *buffer, int size);
189
191 int Write(const int *buffer, int size);
192
194 int Execute(int *fifoBuf, const int *buffer, int size, int length = 1);
195
197 void SyncStart(ngcbSIM *orig);
198
200 void SyncTrigger(ngcbSIM *orig);
201
203 void Pause();
204
206 int *Fifo();
207
210
213
216
218 void Verbose(const char *format, ...)
219 __attribute__ ((format(printf, 2, 3)));
220
222 void Log(const char *format, ...)
223 __attribute__ ((format(printf, 2, 3)));
224
225protected:
226
227private:
229 int initialized_;
230
232 int master_;
233
235 void Init_();
236
238 void Reset_();
239
241 int DownLink_(int hdr);
242
244 void Timeout_();
245
247 int WriteAddr_(int addr, const int *buffer, int size);
248
250 int ReadAddr_(int addr, int size);
251
253 int SeqInfinite_();
254
256 void SeqStart_();
257
259 void SeqTrigger_();
260
262 int productCode_;
263
265 int revision_;
266
268 int firmware_;
269
271 int btype_;
272
274 int tmo_;
275
277 int endian_;
278
280 int nUpStream_;
281
283 int *fifoInt_;
284
286 int *fifo_;
287
289 int regIfcStatus_;
290
292 int regStatus_;
293
295 int regId_;
296
298 int regCfg_;
299
301 int serNoSelect_;
302
304 int seqRegCtrl_;
305
307 int seqRegMode_;
308
310 int seqRegStatus_;
311
313 int seqRegMon_;
314
316 int break_;
317
319 int runCtrl_;
320
322 int paused_;
323
325 struct timeval startTime_;
326
328 struct timeval breakTime_;
329
331 double seqRunTime_;
332
334 double seqBreakTime_;
335
337 double seqWaitTime_;
338
340 int numWait_;
341
343 int waitCnt_;
344
346 double seqRunTimeExt_;
347
349 double seqBreakTimeExt_;
350
352 int *shiftRam_;
353
355 int *seqRam_;
356
358 int *patRamLow_;
359
361 int *patRamHigh_;
362
364 int patInitLow_;
365
367 int patInitHigh_;
368
370 int cldcRegBias_;
371
373 int cldcRegCtrl_;
374
376 int cldcRegTelChan_;
377
379 int cldcRegTelData_;
380
382 int cldcRegStatus_;
383
385 int cldcRegMon1_;
386
388 int cldcRegMon2_;
389
391 int cldcOffset1_;
392
394 int cldcOffset2_;
395
397 int cldcBias_[64];
398
400 int adcRegCtrl_;
401
403 int adcRegStatus_;
404
406 int adcRegDelay_;
407
409 int adcRegMon_;
410
412 int adcRegFowlerSize_;
413
415 int adcRegFowlerCnt_;
416
418 int adcRegFowlerMode_;
419
421 int adcRegSubSamp_;
422
424 int *lisaGain_;
425
427 void ShutterUpdate_();
428
430 int shutterRegCtrl_;
431
433 int shutterRegStatus_;
434
436 unsigned int shutterRegExp_;
437
439 int shutterRegEvt1_;
440
442 int shutterRegEvt2_;
443
445 int shutterRegEvt3_;
446
448 int shutterRegEvt4_;
449
451 struct timeval shutterStart_;
452
454 int shutterStatus_;
455
457 int shutterPaused_;
458
460 int rtms_[32];
461
463 int tsu_[16];
464
466 int pa_[32];
467
469 int temperature_;
470
472 int i2cPort_;
473
475 int preampRegCtrl_;
476
478 int aoRegCtrl_;
479
481 int aoRegDelay1_;
482
484 int aoRegDelay2_;
485
487 int aoRegDelay3_;
488
490 int aoRegDelay4_;
491
493 int aoRegDelay5_;
494
496 int aoRegSens3_;
497
499 int aoRegSens4_;
500
502 int aoRegSens5_;
503
505 int aoRegLevelIPhase_;
506
508 int aoRegLevelSPhase_;
509
511 int aoRegPhCtrl_;
512
514 int aoRegDim_;
515
517 int slxRegCmd_;
518
520 int slxRegStatus_;
521
523 int scaRegCmd_;
524
526 int scaRegStatus_;
527
529 int scaRegDelay_;
530
532 int scaRegDataCtrl_;
533
535 int scaRegCfgFifo_[ngcbSCAIO_FIFO_SIZE];
536
538 int scaRegRespFifo_[ngcbSCAIO_FIFO_SIZE];
539
541 int scaCfgFifoPtr_;
542
544 int scaRespFifoPtr_;
545
547 ngcbSCASIM *scasim_;
548
550 ngcbSVSSIM *svssim_;
551};
552
553#endif
Definition ngcbSIM.hpp:113
int Write(const int *bufIn, int *bufOut)
Write to memory.
Definition ngcbSCASIM.cpp:156
void Reset()
Reset.
Definition ngcbSCASIM.cpp:63
int Read(const int *bufIn, int *bufOut)
Read from memory.
Definition ngcbSCASIM.cpp:68
ngcbSCASIM(int id)
Constructor with ASIC-ID.
Definition ngcbSCASIM.cpp:35
virtual ~ngcbSCASIM()
Destructor.
Definition ngcbSCASIM.cpp:44
Definition ngcbSERVICE.hpp:36
Definition ngcbSIM.hpp:152
ngcbSIM * mod0
Pointer to first module.
Definition ngcbSIM.hpp:173
int * Fifo()
Pointer to result storage space (= RX-FIFO)
Definition ngcbSIM.cpp:2519
ngcbSIM()
Constructor for master.
Definition ngcbSIM.cpp:33
int Initialized()
Return initialization flag.
Definition ngcbSIM.hpp:176
void Reset()
Reset front-end.
Definition ngcbSIM.cpp:2289
int Execute(int *fifoBuf, const int *buffer, int size, int length=1)
Execute target operation or cut header and pass through.
Definition ngcbSIM.cpp:2367
void SyncStart(ngcbSIM *orig)
Synchronized start.
Definition ngcbSIM.cpp:2524
void Pause()
Pause sequencers.
Definition ngcbSIM.cpp:2584
ngcbSIM * mod[ngcbNUM_LINK]
Next modules on down-links.
Definition ngcbSIM.hpp:170
int verboseLevel
Verbose level.
Definition ngcbSIM.hpp:212
void Timeout(int sconds)
Set timeout.
Definition ngcbSIM.cpp:2294
int * localSpace
Local space.
Definition ngcbSIM.hpp:167
virtual ~ngcbSIM()
Destructor.
Definition ngcbSIM.cpp:48
int * cfgSpace
Configuration space.
Definition ngcbSIM.hpp:164
int Status()
Communication status.
Definition ngcbSIM.cpp:2284
void Verbose(const char *format,...) __attribute__((format(printf
Verbose output.
Definition ngcbSIM.cpp:2617
void SyncTrigger(ngcbSIM *orig)
Synchronized trigger.
Definition ngcbSIM.cpp:2554
void void Log(const char *format,...) __attribute__((format(printf
Log file output.
Definition ngcbSIM.cpp:2653
int logLevel
Log level.
Definition ngcbSIM.hpp:215
ngcbSERVICE * services
System services.
Definition ngcbSIM.hpp:209
void Read(int *buffer, int size)
Read buffer.
Definition ngcbSIM.cpp:2299
int Write(const int *buffer, int size)
Write buffer.
Definition ngcbSIM.cpp:2308
Definition ngcbSIM.hpp:38
ngcbSVSSIM()
Constructor.
Definition ngcbSVSSIM.cpp:34
int Read(int addr, int *buffer, int size, int flags)
Read.
Definition ngcbSVSSIM.cpp:64
int Write(int addr, const int *buffer, int size, int flags)
Write.
Definition ngcbSVSSIM.cpp:84
virtual ~ngcbSVSSIM()
Destructor.
Definition ngcbSVSSIM.cpp:56
#define ngcbSCAIO_FIFO_SIZE
Definition ngcbAddr.h:582
#define ngcbNUM_LINK
Definition ngcbAddr.h:22