HALDLS
haldls::vx::PadMultiplexerConfig Class Reference

A configuration container for the top-level readout mux, selecting the connections between an analog readout pad and different components on the chip. More...

#include <readout.h>

Public Types

typedef halco::common::typed_array< bool, halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection > buffer_type
 
typedef halco::common::typed_array< bool, halco::hicann_dls::vx::CapMemBlockOnDLS > capmem_quadrant_type
 
typedef halco::hicann_dls::vx::PadMultiplexerConfigOnDLS coordinate_type
 
typedef halco::common::typed_array< bool, halco::hicann_dls::vx::HemisphereOnDLS > hemisphere_type
 
typedef std::true_type is_leaf_node
 

Public Member Functions

 PadMultiplexerConfig () SYMBOL_VISIBLE
 Default constructor with all inputs disabled. More...
 
template<typename WordT >
void decode (std::array< WordT, config_size_in_words > const &words) SYMBOL_VISIBLE
 
template<typename WordT >
std::array< WordT, config_size_in_wordsencode () const SYMBOL_VISIBLE
 
bool get_cadc_debug_acausal_to_synapse_intermediate_mux () const SYMBOL_VISIBLE
 Enable connection of acausal CADC debug line to intermediate mux. More...
 
bool get_cadc_debug_causal_to_synapse_intermediate_mux () const SYMBOL_VISIBLE
 Enable connection of causal CADC debug line to intermediate mux. More...
 
bool get_cadc_v_ramp_mux_to_pad () const SYMBOL_VISIBLE
 Enable connection of cadc_v_ramp_mux to pad. More...
 
bool get_capmem_i_out_mux_to_capmem_intermediate_mux () const SYMBOL_VISIBLE
 Enable connection of capmem_i_out_mux to intermediate mux. More...
 
bool get_capmem_intermediate_mux_to_pad () const SYMBOL_VISIBLE
 Enable connection of CapMem intermediate mux to pad. More...
 
bool get_capmem_v_out_mux_to_capmem_intermediate_mux () const SYMBOL_VISIBLE
 Enable connection of capmem_v_out_mux to intermediate mux. More...
 
bool get_capmem_v_ref_mux_to_capmem_intermediate_mux () const SYMBOL_VISIBLE
 Enable connection of capmem_v_ref_mux to intermediate mux. More...
 
bool get_debug_to_pad () const SYMBOL_VISIBLE
 Enable connection of debug lines to pad. More...
 
bool get_neuron_i_stim_mux_to_pad () const SYMBOL_VISIBLE
 Enable connection of neuron unbuffered membrane access neuron_i_stim_mux to pad. More...
 
bool get_synapse_intermediate_mux_to_pad () const SYMBOL_VISIBLE
 Enable connection of synapse intermediate mux to pad. More...
 
bool get_synin_debug_excitatory_to_synapse_intermediate_mux () const SYMBOL_VISIBLE
 Enable connection of excitatory synaptic input debug line to intermediate mux. More...
 
bool get_synin_debug_inhibitory_to_synapse_intermediate_mux () const SYMBOL_VISIBLE
 Enable connection of inhibitory synaptic input debug line to intermediate mux. More...
 
bool operator!= (PadMultiplexerConfig const &other) const SYMBOL_VISIBLE
 
bool operator== (PadMultiplexerConfig const &other) const SYMBOL_VISIBLE
 
 return_value_policy (reference_internal)) buffer_type const &get_buffer_to_pad() const SYMBOL_VISIBLE
 
 return_value_policy (reference_internal)) capmem_quadrant_type const &get_cadc_v_ramp_mux() const SYMBOL_VISIBLE
 
 return_value_policy (reference_internal)) capmem_quadrant_type const &get_capmem_i_out_mux() const SYMBOL_VISIBLE
 
 return_value_policy (reference_internal)) capmem_quadrant_type const &get_capmem_v_out_mux() const SYMBOL_VISIBLE
 
 return_value_policy (reference_internal)) capmem_quadrant_type const &get_capmem_v_ref_mux() const SYMBOL_VISIBLE
 
 return_value_policy (reference_internal)) hemisphere_type const &get_neuron_i_stim_mux() const SYMBOL_VISIBLE
 
void set_buffer_to_pad (buffer_type const &value) SYMBOL_VISIBLE
 
void set_cadc_debug_acausal_to_synapse_intermediate_mux (bool value) SYMBOL_VISIBLE
 
void set_cadc_debug_causal_to_synapse_intermediate_mux (bool value) SYMBOL_VISIBLE
 
void set_cadc_v_ramp_mux (capmem_quadrant_type const &value) SYMBOL_VISIBLE
 
void set_cadc_v_ramp_mux_to_pad (bool value) SYMBOL_VISIBLE
 
void set_capmem_i_out_mux (capmem_quadrant_type const &value) SYMBOL_VISIBLE
 
void set_capmem_i_out_mux_to_capmem_intermediate_mux (bool value) SYMBOL_VISIBLE
 
void set_capmem_intermediate_mux_to_pad (bool value) SYMBOL_VISIBLE
 
void set_capmem_v_out_mux (capmem_quadrant_type const &value) SYMBOL_VISIBLE
 
void set_capmem_v_out_mux_to_capmem_intermediate_mux (bool value) SYMBOL_VISIBLE
 
void set_capmem_v_ref_mux (capmem_quadrant_type const &value) SYMBOL_VISIBLE
 
void set_capmem_v_ref_mux_to_capmem_intermediate_mux (bool value) SYMBOL_VISIBLE
 
void set_debug_to_pad (bool value) SYMBOL_VISIBLE
 
void set_neuron_i_stim_mux (hemisphere_type const &value) SYMBOL_VISIBLE
 
void set_neuron_i_stim_mux_to_pad (bool value) SYMBOL_VISIBLE
 
void set_synapse_intermediate_mux_to_pad (bool value) SYMBOL_VISIBLE
 
void set_synin_debug_excitatory_to_synapse_intermediate_mux (bool value) SYMBOL_VISIBLE
 
void set_synin_debug_inhibitory_to_synapse_intermediate_mux (bool value) SYMBOL_VISIBLE
 

Static Public Member Functions

template<typename AddressT >
static std::array< AddressT, config_size_in_wordsaddresses (coordinate_type const &coord) SYMBOL_VISIBLE
 

Static Public Attributes

static constexpr size_t config_size_in_words = 2
 

Friends

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

Detailed Description

A configuration container for the top-level readout mux, selecting the connections between an analog readout pad and different components on the chip.

There are two equal instances of this mux on the chip, one for each of the two pads.

Definition at line 27 of file readout.h.

Member Typedef Documentation

◆ buffer_type

typedef halco::common:: typed_array<bool, halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection> haldls::vx::PadMultiplexerConfig::buffer_type

Definition at line 43 of file readout.h.

◆ capmem_quadrant_type

typedef halco::common::typed_array<bool, halco::hicann_dls::vx::CapMemBlockOnDLS> haldls::vx::PadMultiplexerConfig::capmem_quadrant_type

Definition at line 38 of file readout.h.

◆ coordinate_type

typedef halco::hicann_dls::vx::PadMultiplexerConfigOnDLS haldls::vx::PadMultiplexerConfig::coordinate_type

Definition at line 30 of file readout.h.

◆ hemisphere_type

typedef halco::common::typed_array<bool, halco::hicann_dls::vx::HemisphereOnDLS> haldls::vx::PadMultiplexerConfig::hemisphere_type

Definition at line 39 of file readout.h.

◆ is_leaf_node

Definition at line 32 of file readout.h.

Constructor & Destructor Documentation

◆ PadMultiplexerConfig()

haldls::vx::PadMultiplexerConfig::PadMultiplexerConfig ( )

Default constructor with all inputs disabled.

Member Function Documentation

◆ addresses()

template<typename AddressT >
static std::array<AddressT, config_size_in_words> haldls::vx::PadMultiplexerConfig::addresses ( coordinate_type const &  coord)
static

◆ decode()

template<typename WordT >
void haldls::vx::PadMultiplexerConfig::decode ( std::array< WordT, config_size_in_words > const &  words)

◆ encode()

template<typename WordT >
std::array<WordT, config_size_in_words> haldls::vx::PadMultiplexerConfig::encode ( ) const

◆ get_cadc_debug_acausal_to_synapse_intermediate_mux()

bool haldls::vx::PadMultiplexerConfig::get_cadc_debug_acausal_to_synapse_intermediate_mux ( ) const

Enable connection of acausal CADC debug line to intermediate mux.

To reach the pad, the connection between the synapse intermediate mux and the pad has to be enabled as well.

◆ get_cadc_debug_causal_to_synapse_intermediate_mux()

bool haldls::vx::PadMultiplexerConfig::get_cadc_debug_causal_to_synapse_intermediate_mux ( ) const

Enable connection of causal CADC debug line to intermediate mux.

To reach the pad, the connection between the synapse intermediate mux and the pad has to be enabled as well.

◆ get_cadc_v_ramp_mux_to_pad()

bool haldls::vx::PadMultiplexerConfig::get_cadc_v_ramp_mux_to_pad ( ) const

Enable connection of cadc_v_ramp_mux to pad.

◆ get_capmem_i_out_mux_to_capmem_intermediate_mux()

bool haldls::vx::PadMultiplexerConfig::get_capmem_i_out_mux_to_capmem_intermediate_mux ( ) const

Enable connection of capmem_i_out_mux to intermediate mux.

To reach the pad, the connection between the CapMem intermediate mux and the pad has to be enabled as well.

◆ get_capmem_intermediate_mux_to_pad()

bool haldls::vx::PadMultiplexerConfig::get_capmem_intermediate_mux_to_pad ( ) const

Enable connection of CapMem intermediate mux to pad.

The intermediate mux selects between different capmem-specific sources.

◆ get_capmem_v_out_mux_to_capmem_intermediate_mux()

bool haldls::vx::PadMultiplexerConfig::get_capmem_v_out_mux_to_capmem_intermediate_mux ( ) const

Enable connection of capmem_v_out_mux to intermediate mux.

To reach the pad, the connection between the CapMem intermediate mux and the pad has to be enabled as well.

◆ get_capmem_v_ref_mux_to_capmem_intermediate_mux()

bool haldls::vx::PadMultiplexerConfig::get_capmem_v_ref_mux_to_capmem_intermediate_mux ( ) const

Enable connection of capmem_v_ref_mux to intermediate mux.

To reach the pad, the connection between the CapMem intermediate mux and the pad has to be enabled as well.

◆ get_debug_to_pad()

bool haldls::vx::PadMultiplexerConfig::get_debug_to_pad ( ) const

Enable connection of debug lines to pad.

Enabling this connection on pad 0 connects the debug_plus line to that pad, enabling this connection on pad 1 connects the debug_minus line to that pad.

◆ get_neuron_i_stim_mux_to_pad()

bool haldls::vx::PadMultiplexerConfig::get_neuron_i_stim_mux_to_pad ( ) const

Enable connection of neuron unbuffered membrane access neuron_i_stim_mux to pad.

◆ get_synapse_intermediate_mux_to_pad()

bool haldls::vx::PadMultiplexerConfig::get_synapse_intermediate_mux_to_pad ( ) const

Enable connection of synapse intermediate mux to pad.

The intermediate mux selects between different sources in the synapse array, namely the debug lines at the synaptic input and the correlation readout.

◆ get_synin_debug_excitatory_to_synapse_intermediate_mux()

bool haldls::vx::PadMultiplexerConfig::get_synin_debug_excitatory_to_synapse_intermediate_mux ( ) const

Enable connection of excitatory synaptic input debug line to intermediate mux.

To reach the pad, the connection between the synapse intermediate mux and the pad has to be enabled as well.

◆ get_synin_debug_inhibitory_to_synapse_intermediate_mux()

bool haldls::vx::PadMultiplexerConfig::get_synin_debug_inhibitory_to_synapse_intermediate_mux ( ) const

Enable connection of inhibitory synaptic input debug line to intermediate mux.

To reach the pad, the connection between the synapse intermediate mux and the pad has to be enabled as well.

◆ operator!=()

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

◆ operator==()

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

◆ return_value_policy() [1/6]

haldls::vx::PadMultiplexerConfig::return_value_policy ( reference_internal  ) const &

◆ return_value_policy() [2/6]

haldls::vx::PadMultiplexerConfig::return_value_policy ( reference_internal  ) const &

◆ return_value_policy() [3/6]

haldls::vx::PadMultiplexerConfig::return_value_policy ( reference_internal  ) const &

◆ return_value_policy() [4/6]

haldls::vx::PadMultiplexerConfig::return_value_policy ( reference_internal  ) const &

◆ return_value_policy() [5/6]

haldls::vx::PadMultiplexerConfig::return_value_policy ( reference_internal  ) const &

◆ return_value_policy() [6/6]

haldls::vx::PadMultiplexerConfig::return_value_policy ( reference_internal  ) const &

◆ set_buffer_to_pad()

void haldls::vx::PadMultiplexerConfig::set_buffer_to_pad ( buffer_type const &  value)

◆ set_cadc_debug_acausal_to_synapse_intermediate_mux()

void haldls::vx::PadMultiplexerConfig::set_cadc_debug_acausal_to_synapse_intermediate_mux ( bool  value)

◆ set_cadc_debug_causal_to_synapse_intermediate_mux()

void haldls::vx::PadMultiplexerConfig::set_cadc_debug_causal_to_synapse_intermediate_mux ( bool  value)

◆ set_cadc_v_ramp_mux()

void haldls::vx::PadMultiplexerConfig::set_cadc_v_ramp_mux ( capmem_quadrant_type const &  value)

◆ set_cadc_v_ramp_mux_to_pad()

void haldls::vx::PadMultiplexerConfig::set_cadc_v_ramp_mux_to_pad ( bool  value)

◆ set_capmem_i_out_mux()

void haldls::vx::PadMultiplexerConfig::set_capmem_i_out_mux ( capmem_quadrant_type const &  value)

◆ set_capmem_i_out_mux_to_capmem_intermediate_mux()

void haldls::vx::PadMultiplexerConfig::set_capmem_i_out_mux_to_capmem_intermediate_mux ( bool  value)

◆ set_capmem_intermediate_mux_to_pad()

void haldls::vx::PadMultiplexerConfig::set_capmem_intermediate_mux_to_pad ( bool  value)

◆ set_capmem_v_out_mux()

void haldls::vx::PadMultiplexerConfig::set_capmem_v_out_mux ( capmem_quadrant_type const &  value)

◆ set_capmem_v_out_mux_to_capmem_intermediate_mux()

void haldls::vx::PadMultiplexerConfig::set_capmem_v_out_mux_to_capmem_intermediate_mux ( bool  value)

◆ set_capmem_v_ref_mux()

void haldls::vx::PadMultiplexerConfig::set_capmem_v_ref_mux ( capmem_quadrant_type const &  value)

◆ set_capmem_v_ref_mux_to_capmem_intermediate_mux()

void haldls::vx::PadMultiplexerConfig::set_capmem_v_ref_mux_to_capmem_intermediate_mux ( bool  value)

◆ set_debug_to_pad()

void haldls::vx::PadMultiplexerConfig::set_debug_to_pad ( bool  value)

◆ set_neuron_i_stim_mux()

void haldls::vx::PadMultiplexerConfig::set_neuron_i_stim_mux ( hemisphere_type const &  value)

◆ set_neuron_i_stim_mux_to_pad()

void haldls::vx::PadMultiplexerConfig::set_neuron_i_stim_mux_to_pad ( bool  value)

◆ set_synapse_intermediate_mux_to_pad()

void haldls::vx::PadMultiplexerConfig::set_synapse_intermediate_mux_to_pad ( bool  value)

◆ set_synin_debug_excitatory_to_synapse_intermediate_mux()

void haldls::vx::PadMultiplexerConfig::set_synin_debug_excitatory_to_synapse_intermediate_mux ( bool  value)

◆ set_synin_debug_inhibitory_to_synapse_intermediate_mux()

void haldls::vx::PadMultiplexerConfig::set_synin_debug_inhibitory_to_synapse_intermediate_mux ( bool  value)

Friends And Related Function Documentation

◆ cereal::access

friend class cereal::access
friend

Definition at line 197 of file readout.h.

◆ operator<<

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

Member Data Documentation

◆ config_size_in_words

constexpr size_t haldls::vx::PadMultiplexerConfig::config_size_in_words = 2
staticconstexpr

Definition at line 183 of file readout.h.


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