DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ASIC_reg_mapping Class Reference

#include <ASIC_reg_mapping.hh>

Public Member Functions

 ASIC_reg_mapping ()
 
void set_board (const FE_ASIC_reg_mapping &fe_map, const ADC_ASIC_reg_mapping &adc_map)
 
std::vector< uint32_t > get_regs () const
 
void print () const
 

Private Attributes

std::vector< uint32_t > REGS
 

Detailed Description

Definition at line 9 of file ASIC_reg_mapping.hh.

Constructor & Destructor Documentation

◆ ASIC_reg_mapping()

ASIC_reg_mapping::ASIC_reg_mapping ( )

Definition at line 6 of file ASIC_reg_mapping.cpp.

6 : REGS(72)
7{
8}
std::vector< uint32_t > REGS

Member Function Documentation

◆ get_regs()

std::vector< uint32_t > ASIC_reg_mapping::get_regs ( ) const

Definition at line 36 of file ASIC_reg_mapping.cpp.

37{
38 return REGS;
39}

◆ print()

void ASIC_reg_mapping::print ( ) const

Definition at line 41 of file ASIC_reg_mapping.cpp.

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}

◆ set_board()

void ASIC_reg_mapping::set_board ( const FE_ASIC_reg_mapping & fe_map,
const ADC_ASIC_reg_mapping & adc_map )

Definition at line 10 of file ASIC_reg_mapping.cpp.

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
std::bitset< 1152 > get_bits() const
std::bitset< 1152 > get_bits() const

Member Data Documentation

◆ REGS

std::vector<uint32_t> ASIC_reg_mapping::REGS
private

Definition at line 17 of file ASIC_reg_mapping.hh.


The documentation for this class was generated from the following files: