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 <iostream>
3
#include <iomanip>
4
#include <limits>
5
6
ASIC_reg_mapping::ASIC_reg_mapping
():
REGS
(72)
7
{
8
}
9
10
void
ASIC_reg_mapping::set_board
(
const
FE_ASIC_reg_mapping
& fe_map,
const
ADC_ASIC_reg_mapping
& adc_map)
11
{
12
const
std::bitset<1152> fe_bits = fe_map.
get_bits
();
13
const
std::bitset<1152> adc_bits = adc_map.
get_bits
();
14
const
size_t
chip_bits_len = 144;
15
for
(
size_t
iChip=0; iChip < 8; iChip++)
16
{
17
std::bitset<chip_bits_len*2> chip_bits;
18
for
(
size_t
iBit=0; iBit < chip_bits_len; iBit++)
19
{
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
{
25
std::bitset<32> regBits;
26
for
(
size_t
iBit=0; iBit < 32; iBit++)
27
{
28
regBits[iBit] = chip_bits[iBit+iReg*32];
29
}
30
uint32_t regUInt = regBits.to_ulong();
31
REGS
[iChip*9+iReg] = regUInt;
32
}
// for iReg
33
}
// for iChip
34
}
// set_board
35
36
std::vector<uint32_t>
ASIC_reg_mapping::get_regs
()
const
37
{
38
return
REGS
;
39
}
40
41
void
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
{
47
uint32_t reg =
REGS
[i];
48
std::cout << std::hex << std::setfill(
'0'
) << std::setw(8) << reg << std::endl;
49
//std::cout << reg << std::endl;
50
}
51
}
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:94
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:36
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:10
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:73
Generated on
for DUNE-DAQ by
1.17.0