DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
wibmod
src
WIB1
ASIC_reg_mapping.cpp
Go to the documentation of this file.
1
#include "
wibmod/WIB1/ASIC_reg_mapping.hh
"
2
#include <iomanip>
3
#include <iostream>
4
#include <limits>
5
6
ASIC_reg_mapping::ASIC_reg_mapping
()
7
:
REGS
(72)
8
{
9
}
10
11
void
12
ASIC_reg_mapping::set_board
(
const
FE_ASIC_reg_mapping
& fe_map,
const
ADC_ASIC_reg_mapping
& adc_map)
13
{
14
const
std::bitset<1152> fe_bits = fe_map.
get_bits
();
15
const
std::bitset<1152> adc_bits = adc_map.
get_bits
();
16
const
size_t
chip_bits_len = 144;
17
for
(
size_t
iChip = 0; iChip < 8; iChip++) {
18
std::bitset<chip_bits_len * 2> chip_bits;
19
for
(
size_t
iBit = 0; iBit < chip_bits_len; iBit++) {
20
chip_bits[iBit] = adc_bits[iChip * chip_bits_len + iBit];
21
chip_bits[iBit + chip_bits_len] = fe_bits[iChip * chip_bits_len + iBit];
22
}
23
for
(
size_t
iReg = 0; iReg < 9; iReg++) {
24
std::bitset<32> regBits;
25
for
(
size_t
iBit = 0; iBit < 32; iBit++) {
26
regBits[iBit] = chip_bits[iBit + iReg * 32];
27
}
28
uint32_t regUInt = regBits.to_ulong();
29
REGS
[iChip * 9 + iReg] = regUInt;
30
}
// for iReg
31
}
// for iChip
32
}
// set_board
33
34
std::vector<uint32_t>
35
ASIC_reg_mapping::get_regs
()
const
36
{
37
return
REGS
;
38
}
39
40
void
41
ASIC_reg_mapping::print
()
const
42
{
43
std::cout <<
"ASIC_reg_mapping (hex):"
<< std::endl;
44
45
for
(uint32_t i = 0; i <
REGS
.size(); ++i) {
46
uint32_t reg =
REGS
[i];
47
std::cout << std::hex << std::setfill(
'0'
) << std::setw(8) << reg << std::endl;
48
// std::cout << reg << std::endl;
49
}
50
}
ASIC_reg_mapping.hh
ADC_ASIC_reg_mapping
Definition
ADC_ASIC_reg_mapping.hh:7
ADC_ASIC_reg_mapping::get_bits
std::bitset< 1152 > get_bits() const
Definition
ADC_ASIC_reg_mapping.cpp:158
ASIC_reg_mapping::ASIC_reg_mapping
ASIC_reg_mapping()
Definition
ASIC_reg_mapping.cpp:6
ASIC_reg_mapping::REGS
std::vector< uint32_t > REGS
Definition
ASIC_reg_mapping.hh:17
ASIC_reg_mapping::get_regs
std::vector< uint32_t > get_regs() const
Definition
ASIC_reg_mapping.cpp:35
ASIC_reg_mapping::print
void print() const
Definition
ASIC_reg_mapping.cpp:41
ASIC_reg_mapping::set_board
void set_board(const FE_ASIC_reg_mapping &fe_map, const ADC_ASIC_reg_mapping &adc_map)
Definition
ASIC_reg_mapping.cpp:12
FE_ASIC_reg_mapping
Definition
FE_ASIC_reg_mapping.hh:7
FE_ASIC_reg_mapping::get_bits
std::bitset< 1152 > get_bits() const
Definition
FE_ASIC_reg_mapping.cpp:105
Generated on
for DUNE-DAQ by
1.18.0