HALDLS
haldls::vx::ShiftRegister Class Reference

Container for configuration of the 24-bit wide shift register controlling six VDD switches, the selection of the ADC source, ADC power down and reset pins, six LEDs, routing two DAC channels to a differential debug line and the CapMem reference current connection. More...

#include <spi.h>

+ Inheritance diagram for haldls::vx::ShiftRegister:
+ Collaboration diagram for haldls::vx::ShiftRegister:

Public Types

enum class  AnalogReadoutMux1Input { off , readout_chain_0 , readout_chain_1 , mux_rfu_0 }
 
enum class  AnalogReadoutMux2Input { off , v_reset , vdd_res_meas , mux_dac_25 }
 
enum class  AnalogReadoutMux3Input { off , i_ref , mux_rfu_1 , mux_rfu_2 }
 
typedef halco::hicann_dls::vx::ShiftRegisterOnBoard coordinate_type
 
typedef std::true_type is_leaf_node
 

Public Member Functions

 ShiftRegister () SYMBOL_VISIBLE
 Default constructor. More...
 
void decode (std::array< fisch::vx::word_access_type::SPIShiftRegister, read_config_size_in_words > const &data) SYMBOL_VISIBLE
 
std::array< fisch::vx::word_access_type::SPIShiftRegister, write_config_size_in_wordsencode () const SYMBOL_VISIBLE
 
bool get_enable_adc_power_down () const SYMBOL_VISIBLE
 Get enable value of the ADC power-down pin. More...
 
bool get_enable_adc_reset () const SYMBOL_VISIBLE
 Get enable value of the ADC reset pin. More...
 
bool get_enable_dac_to_readout_0 () const SYMBOL_VISIBLE
 Get enable value for the DAC-powered Readout0 debug line. More...
 
bool get_enable_dac_to_readout_1 () const SYMBOL_VISIBLE
 Get enable value for the DAC-powered Readout1 debug line. More...
 
bool get_enable_i_ref_board () const SYMBOL_VISIBLE
 Get enable value for connecting the DAC generating the CapMem reference current to the chip carrier board. More...
 
bool get_enable_led (halco::hicann_dls::vx::LEDOnBoard const &coord) const SYMBOL_VISIBLE
 Get enable value for the specified LED. More...
 
bool get_enable_measure_i_ref () const SYMBOL_VISIBLE
 Get enable value for connecting the CapMem reference current to ground via a 2.2MOhm resistor for a current measurement with the ADC. More...
 
bool get_enable_vdd (halco::hicann_dls::vx::VDDOnBoard const &coord) const SYMBOL_VISIBLE
 Get enable value for the specified VDD line. More...
 
AnalogReadoutMux1Input get_select_analog_readout_mux_1_input () const SYMBOL_VISIBLE
 Get the source selection for the first analog readout MUX. More...
 
AnalogReadoutMux2Input get_select_analog_readout_mux_2_input () const SYMBOL_VISIBLE
 Get the source selection for the second analog readout MUX. More...
 
AnalogReadoutMux3Input get_select_analog_readout_mux_3_input () const SYMBOL_VISIBLE
 Get the source selection for the third analog readout MUX. More...
 
bool operator!= (ShiftRegister const &other) const SYMBOL_VISIBLE
 
bool operator== (ShiftRegister const &other) const SYMBOL_VISIBLE
 
void set_enable_adc_power_down (bool value) SYMBOL_VISIBLE
 Get enable value of the ADC power-down pin. More...
 
void set_enable_adc_reset (bool value) SYMBOL_VISIBLE
 Set enable value of the ADC reset pin. More...
 
void set_enable_dac_to_readout_0 (bool value) SYMBOL_VISIBLE
 Set enable value for the DAC-powered Readout0 debug line. More...
 
void set_enable_dac_to_readout_1 (bool value) SYMBOL_VISIBLE
 Set enable value for the DAC-powered Readout0 debug line. More...
 
void set_enable_i_ref_board (bool value) SYMBOL_VISIBLE
 Set enable value for connecting the DAC generating the CapMem reference current to the chip carrier board. More...
 
void set_enable_led (halco::hicann_dls::vx::LEDOnBoard const &coord, bool value) SYMBOL_VISIBLE
 Get enable value for the specified LED. More...
 
void set_enable_measure_i_ref (bool value) SYMBOL_VISIBLE
 Set enable value for connecting the CapMem reference current to ground via a 2.2MOhm resistor for a current measurement with the ADC. More...
 
void set_enable_vdd (halco::hicann_dls::vx::VDDOnBoard const &coord, bool value) SYMBOL_VISIBLE
 Set enable value for the specified VDD line. More...
 
void set_select_analog_readout_mux_1_input (AnalogReadoutMux1Input value) SYMBOL_VISIBLE
 Set the source selection for the first analog readout MUX. More...
 
void set_select_analog_readout_mux_2_input (AnalogReadoutMux2Input value) SYMBOL_VISIBLE
 Set the source selection for the second analog readout MUX. More...
 
void set_select_analog_readout_mux_3_input (AnalogReadoutMux3Input value) SYMBOL_VISIBLE
 Set the source selection for the third analog readout MUX. More...
 

Static Public Member Functions

static std::array< halco::hicann_dls::vx::SPIShiftRegisterOnBoard, read_config_size_in_wordsread_addresses (coordinate_type const &coord) SYMBOL_VISIBLE
 
static std::array< halco::hicann_dls::vx::SPIShiftRegisterOnBoard, write_config_size_in_wordswrite_addresses (coordinate_type const &coord) SYMBOL_VISIBLE
 

Static Public Attributes

static constexpr size_t read_config_size_in_words = 0
 
static constexpr size_t write_config_size_in_words = 1
 

Friends

class cereal::access
 
std::ostream & operator<< (std::ostream &os, ShiftRegister const &config) SYMBOL_VISIBLE
 

Detailed Description

Container for configuration of the 24-bit wide shift register controlling six VDD switches, the selection of the ADC source, ADC power down and reset pins, six LEDs, routing two DAC channels to a differential debug line and the CapMem reference current connection.

Information about the routing can be found in the xBoard wiki under https://brainscales-r.kip.uni-heidelberg.de/projects/symap2ic/wiki/xboard.

Definition at line 31 of file spi.h.

Member Typedef Documentation

◆ coordinate_type

typedef halco::hicann_dls::vx::ShiftRegisterOnBoard haldls::vx::ShiftRegister::coordinate_type

Definition at line 34 of file spi.h.

◆ is_leaf_node

Definition at line 35 of file spi.h.

Member Enumeration Documentation

◆ AnalogReadoutMux1Input

Enumerator
off 
readout_chain_0 
readout_chain_1 
mux_rfu_0 

Definition at line 37 of file spi.h.

◆ AnalogReadoutMux2Input

Enumerator
off 
v_reset 
vdd_res_meas 
mux_dac_25 

Definition at line 45 of file spi.h.

◆ AnalogReadoutMux3Input

Enumerator
off 
i_ref 
mux_rfu_1 
mux_rfu_2 

Definition at line 53 of file spi.h.

Constructor & Destructor Documentation

◆ ShiftRegister()

haldls::vx::ShiftRegister::ShiftRegister ( )

Default constructor.

Member Function Documentation

◆ decode()

void haldls::vx::ShiftRegister::decode ( std::array< fisch::vx::word_access_type::SPIShiftRegister, read_config_size_in_words > const &  data)

◆ encode()

std::array<fisch::vx::word_access_type::SPIShiftRegister, write_config_size_in_words> haldls::vx::ShiftRegister::encode ( ) const

◆ get_enable_adc_power_down()

bool haldls::vx::ShiftRegister::get_enable_adc_power_down ( ) const

Get enable value of the ADC power-down pin.

The behavior can be controlled in the ADC container.

See also
ADC
Returns
Boolean value

◆ get_enable_adc_reset()

bool haldls::vx::ShiftRegister::get_enable_adc_reset ( ) const

Get enable value of the ADC reset pin.

See also
ADC
Returns
Boolean value

◆ get_enable_dac_to_readout_0()

bool haldls::vx::ShiftRegister::get_enable_dac_to_readout_0 ( ) const

Get enable value for the DAC-powered Readout0 debug line.

Returns
Boolean value

◆ get_enable_dac_to_readout_1()

bool haldls::vx::ShiftRegister::get_enable_dac_to_readout_1 ( ) const

Get enable value for the DAC-powered Readout1 debug line.

Returns
Boolean value

◆ get_enable_i_ref_board()

bool haldls::vx::ShiftRegister::get_enable_i_ref_board ( ) const

Get enable value for connecting the DAC generating the CapMem reference current to the chip carrier board.

Returns
Boolean value

◆ get_enable_led()

bool haldls::vx::ShiftRegister::get_enable_led ( halco::hicann_dls::vx::LEDOnBoard const &  coord) const

Get enable value for the specified LED.

Parameters
coordCoordinate of LED to get enable value for
Returns
Boolean value

◆ get_enable_measure_i_ref()

bool haldls::vx::ShiftRegister::get_enable_measure_i_ref ( ) const

Get enable value for connecting the CapMem reference current to ground via a 2.2MOhm resistor for a current measurement with the ADC.

Returns
Boolean value

◆ get_enable_vdd()

bool haldls::vx::ShiftRegister::get_enable_vdd ( halco::hicann_dls::vx::VDDOnBoard const &  coord) const

Get enable value for the specified VDD line.

Parameters
coordCoordinate of VDD line to get enable value for
Returns
Boolean value

◆ get_select_analog_readout_mux_1_input()

AnalogReadoutMux1Input haldls::vx::ShiftRegister::get_select_analog_readout_mux_1_input ( ) const

Get the source selection for the first analog readout MUX.

Returns
Selected input

◆ get_select_analog_readout_mux_2_input()

AnalogReadoutMux2Input haldls::vx::ShiftRegister::get_select_analog_readout_mux_2_input ( ) const

Get the source selection for the second analog readout MUX.

Returns
Selected input

◆ get_select_analog_readout_mux_3_input()

AnalogReadoutMux3Input haldls::vx::ShiftRegister::get_select_analog_readout_mux_3_input ( ) const

Get the source selection for the third analog readout MUX.

Returns
Selected input

◆ operator!=()

bool haldls::vx::ShiftRegister::operator!= ( ShiftRegister const &  other) const

◆ operator==()

bool haldls::vx::ShiftRegister::operator== ( ShiftRegister const &  other) const

◆ read_addresses()

static std::array<halco::hicann_dls::vx::SPIShiftRegisterOnBoard, read_config_size_in_words> haldls::vx::ShiftRegister::read_addresses ( coordinate_type const &  coord)
static

◆ set_enable_adc_power_down()

void haldls::vx::ShiftRegister::set_enable_adc_power_down ( bool  value)

Get enable value of the ADC power-down pin.

The behavior can be controlled in the ADC container.

See also
ADC
Parameters
valueBoolean value

◆ set_enable_adc_reset()

void haldls::vx::ShiftRegister::set_enable_adc_reset ( bool  value)

Set enable value of the ADC reset pin.

See also
ADC
Parameters
valueBoolean value

◆ set_enable_dac_to_readout_0()

void haldls::vx::ShiftRegister::set_enable_dac_to_readout_0 ( bool  value)

Set enable value for the DAC-powered Readout0 debug line.

Parameters
valueBoolean value

◆ set_enable_dac_to_readout_1()

void haldls::vx::ShiftRegister::set_enable_dac_to_readout_1 ( bool  value)

Set enable value for the DAC-powered Readout0 debug line.

Parameters
valueBoolean value

◆ set_enable_i_ref_board()

void haldls::vx::ShiftRegister::set_enable_i_ref_board ( bool  value)

Set enable value for connecting the DAC generating the CapMem reference current to the chip carrier board.

Parameters
valueBoolean value

◆ set_enable_led()

void haldls::vx::ShiftRegister::set_enable_led ( halco::hicann_dls::vx::LEDOnBoard const &  coord,
bool  value 
)

Get enable value for the specified LED.

Parameters
coordCoordinate of LED to set enable value for
valueBoolean value

◆ set_enable_measure_i_ref()

void haldls::vx::ShiftRegister::set_enable_measure_i_ref ( bool  value)

Set enable value for connecting the CapMem reference current to ground via a 2.2MOhm resistor for a current measurement with the ADC.

Parameters
valueBoolean value

◆ set_enable_vdd()

void haldls::vx::ShiftRegister::set_enable_vdd ( halco::hicann_dls::vx::VDDOnBoard const &  coord,
bool  value 
)

Set enable value for the specified VDD line.

Parameters
coordCoordinate of VDD line to set enable value for
valueBoolean value

◆ set_select_analog_readout_mux_1_input()

void haldls::vx::ShiftRegister::set_select_analog_readout_mux_1_input ( AnalogReadoutMux1Input  value)

Set the source selection for the first analog readout MUX.

Parameters
valueInput to be selected

◆ set_select_analog_readout_mux_2_input()

void haldls::vx::ShiftRegister::set_select_analog_readout_mux_2_input ( AnalogReadoutMux2Input  value)

Set the source selection for the second analog readout MUX.

Parameters
valueInput to be selected

◆ set_select_analog_readout_mux_3_input()

void haldls::vx::ShiftRegister::set_select_analog_readout_mux_3_input ( AnalogReadoutMux3Input  value)

Set the source selection for the third analog readout MUX.

Parameters
valueInput to be selected

◆ write_addresses()

static std::array<halco::hicann_dls::vx::SPIShiftRegisterOnBoard, write_config_size_in_words> haldls::vx::ShiftRegister::write_addresses ( coordinate_type const &  coord)
static

Friends And Related Function Documentation

◆ cereal::access

friend class cereal::access
friend

Definition at line 247 of file spi.h.

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
ShiftRegister const &  config 
)
friend

Member Data Documentation

◆ read_config_size_in_words

constexpr size_t haldls::vx::ShiftRegister::read_config_size_in_words = 0
staticconstexpr

Definition at line 235 of file spi.h.

◆ write_config_size_in_words

constexpr size_t haldls::vx::ShiftRegister::write_config_size_in_words = 1
staticconstexpr

Definition at line 234 of file spi.h.


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