HALDLS
haldls::vx::SynapseDriverConfig Class Reference

#include <synapse_driver.h>

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

Classes

struct  HagenDACOffset
 
struct  Offset
 
struct  Recovery
 
struct  RowAddressCompareMask
 
struct  TargetVoltages
 
struct  Utilization
 

Public Types

typedef halco::hicann_dls::vx::SynapseDriverOnDLS coordinate_type
 
typedef std::true_type is_leaf_node
 
enum class  RowMode { disabled , excitatory , inhibitory , excitatory_and_inhibitory }
 

Public Member Functions

 SynapseDriverConfig () SYMBOL_VISIBLE
 
template<typename WordT >
void decode (std::array< WordT, config_size_in_words > const &data) SYMBOL_VISIBLE
 
template<typename WordT >
std::array< WordT, config_size_in_wordsencode () const SYMBOL_VISIBLE
 
bool get_enable_address_out () const SYMBOL_VISIBLE
 This enables sending the five lower bits of an address to the synapses. More...
 
bool get_enable_charge_sharing () const SYMBOL_VISIBLE
 Enable charge sharing for larger STP utilization values (broken). More...
 
bool get_enable_hagen_dac () const SYMBOL_VISIBLE
 Enable the DAC converting a hagen activation to an STP voltage. More...
 
bool get_enable_hagen_modulation () const SYMBOL_VISIBLE
 Enable modulation of pulse width proportional to event address. More...
 
bool get_enable_readout () const SYMBOL_VISIBLE
 Enable readout source follower and connect to readout line. More...
 
bool get_enable_receiver () const SYMBOL_VISIBLE
 Enable padi bus receiver. More...
 
bool get_enable_recovery () const SYMBOL_VISIBLE
 Enable STP recovery circuit. More...
 
bool get_enable_renewing () const SYMBOL_VISIBLE
 Enable renewing synapses for LIF sampling (broken due to faulty circuit). More...
 
bool get_enable_stp () const SYMBOL_VISIBLE
 Enable STP circuit. More...
 
HagenDACOffset get_hagen_dac_offset () const SYMBOL_VISIBLE
 Output voltage offset for the hagen mode DAC. More...
 
Offset get_offset () const SYMBOL_VISIBLE
 Calibration value for dacen pulse width. More...
 
Recovery get_recovery () const SYMBOL_VISIBLE
 Set STP recovery time constant. More...
 
RowAddressCompareMask get_row_address_compare_mask () const SYMBOL_VISIBLE
 Set row select address compare mask. More...
 
RowMode get_row_mode_bottom () const SYMBOL_VISIBLE
 Set bottom row mode. More...
 
RowMode get_row_mode_top () const SYMBOL_VISIBLE
 Set top row mode. More...
 
TargetVoltages get_select_target_voltages () const SYMBOL_VISIBLE
 Select a pair of STP target voltages (vrecover, vcharge). More...
 
Utilization get_utilization () const SYMBOL_VISIBLE
 Set strength of STP utilization. More...
 
bool operator!= (SynapseDriverConfig const &other) const SYMBOL_VISIBLE
 
bool operator== (SynapseDriverConfig const &other) const SYMBOL_VISIBLE
 
void set_enable_address_out (bool const value) SYMBOL_VISIBLE
 
void set_enable_charge_sharing (bool const value) SYMBOL_VISIBLE
 
void set_enable_hagen_dac (bool value) SYMBOL_VISIBLE
 
void set_enable_hagen_modulation (bool const value) SYMBOL_VISIBLE
 
void set_enable_readout (bool const value) SYMBOL_VISIBLE
 
void set_enable_receiver (bool const value) SYMBOL_VISIBLE
 
void set_enable_recovery (bool const value) SYMBOL_VISIBLE
 
void set_enable_renewing (bool const value) SYMBOL_VISIBLE
 
void set_enable_stp (bool const value) SYMBOL_VISIBLE
 
void set_hagen_dac_offset (HagenDACOffset value) SYMBOL_VISIBLE
 
void set_offset (Offset const value) SYMBOL_VISIBLE
 
void set_recovery (Recovery const value) SYMBOL_VISIBLE
 
void set_row_address_compare_mask (RowAddressCompareMask const value) SYMBOL_VISIBLE
 
void set_row_mode_bottom (RowMode value) SYMBOL_VISIBLE
 
void set_row_mode_top (RowMode value) SYMBOL_VISIBLE
 
void set_select_target_voltages (TargetVoltages const value) SYMBOL_VISIBLE
 
void set_utilization (Utilization const value) SYMBOL_VISIBLE
 

Static Public Member Functions

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

Static Public Attributes

static constexpr size_t config_size_in_words = 3
 
constexpr static auto unsupported_read_targets
 

Friends

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

Detailed Description

Definition at line 69 of file synapse_driver.h.

Member Typedef Documentation

◆ coordinate_type

typedef halco::hicann_dls::vx::SynapseDriverOnDLS haldls::vx::SynapseDriverConfig::coordinate_type

Definition at line 72 of file synapse_driver.h.

◆ is_leaf_node

Definition at line 73 of file synapse_driver.h.

Member Enumeration Documentation

◆ RowMode

Enumerator
disabled 
excitatory 
inhibitory 
excitatory_and_inhibitory 

Definition at line 128 of file synapse_driver.h.

Constructor & Destructor Documentation

◆ SynapseDriverConfig()

haldls::vx::SynapseDriverConfig::SynapseDriverConfig ( )

Member Function Documentation

◆ addresses()

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

◆ decode()

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

◆ encode()

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

◆ get_enable_address_out()

bool haldls::vx::SynapseDriverConfig::get_enable_address_out ( ) const

This enables sending the five lower bits of an address to the synapses.

The MSB is always sent. This mode must be disabled for HAGEN operation.

◆ get_enable_charge_sharing()

bool haldls::vx::SynapseDriverConfig::get_enable_charge_sharing ( ) const

Enable charge sharing for larger STP utilization values (broken).

◆ get_enable_hagen_dac()

bool haldls::vx::SynapseDriverConfig::get_enable_hagen_dac ( ) const

Enable the DAC converting a hagen activation to an STP voltage.

◆ get_enable_hagen_modulation()

bool haldls::vx::SynapseDriverConfig::get_enable_hagen_modulation ( ) const

Enable modulation of pulse width proportional to event address.

Note:

  • Hagen DAC must also be enabled through enable_hagen_dac
  • Address forwarding must be disabled through enable_address_out
  • STP circuit must be enabled through enable_stp

◆ get_enable_readout()

bool haldls::vx::SynapseDriverConfig::get_enable_readout ( ) const

Enable readout source follower and connect to readout line.

The readout is shared between all instances of a vertical half. Connecting multiple instances is non-destructive but will result in faulty readings. Also note that an additional buffer per half must be biased to drive the signals further down to the readout chain.

◆ get_enable_receiver()

bool haldls::vx::SynapseDriverConfig::get_enable_receiver ( ) const

Enable padi bus receiver.

◆ get_enable_recovery()

bool haldls::vx::SynapseDriverConfig::get_enable_recovery ( ) const

Enable STP recovery circuit.

◆ get_enable_renewing()

bool haldls::vx::SynapseDriverConfig::get_enable_renewing ( ) const

Enable renewing synapses for LIF sampling (broken due to faulty circuit).

◆ get_enable_stp()

bool haldls::vx::SynapseDriverConfig::get_enable_stp ( ) const

Enable STP circuit.

◆ get_hagen_dac_offset()

HagenDACOffset haldls::vx::SynapseDriverConfig::get_hagen_dac_offset ( ) const

Output voltage offset for the hagen mode DAC.

While the STP offsets also affect hagen usage, this setting allows calibration of dacen pulse timings in hagen mode across a larger range.

◆ get_offset()

Offset haldls::vx::SynapseDriverConfig::get_offset ( ) const

Calibration value for dacen pulse width.

◆ get_recovery()

Recovery haldls::vx::SynapseDriverConfig::get_recovery ( ) const

Set STP recovery time constant.

◆ get_row_address_compare_mask()

RowAddressCompareMask haldls::vx::SynapseDriverConfig::get_row_address_compare_mask ( ) const

Set row select address compare mask.

The incoming row select address allows to individually address a single synapse driver. For this purpose, the events row select address (5 bit) is compared to the synapse driver index (static). The padi bus receiver can be configured to ignore (parts of) the row select address by zeroing (parts of) the row_address_compare_mask.

◆ get_row_mode_bottom()

RowMode haldls::vx::SynapseDriverConfig::get_row_mode_bottom ( ) const

Set bottom row mode.

◆ get_row_mode_top()

RowMode haldls::vx::SynapseDriverConfig::get_row_mode_top ( ) const

Set top row mode.

◆ get_select_target_voltages()

TargetVoltages haldls::vx::SynapseDriverConfig::get_select_target_voltages ( ) const

Select a pair of STP target voltages (vrecover, vcharge).

Each synapse driver is provided with two sets of the STP target voltages, to allow for two different parameterizations within a single array. Note that although there are only two logical arrays of synapse drivers per chip, even and odd synapse drivers are fed with disjunct analog parameters provided by the east and west capmem instances, respectively.

◆ get_utilization()

Utilization haldls::vx::SynapseDriverConfig::get_utilization ( ) const

Set strength of STP utilization.

◆ operator!=()

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

◆ operator==()

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

◆ set_enable_address_out()

void haldls::vx::SynapseDriverConfig::set_enable_address_out ( bool const  value)

◆ set_enable_charge_sharing()

void haldls::vx::SynapseDriverConfig::set_enable_charge_sharing ( bool const  value)

◆ set_enable_hagen_dac()

void haldls::vx::SynapseDriverConfig::set_enable_hagen_dac ( bool  value)

◆ set_enable_hagen_modulation()

void haldls::vx::SynapseDriverConfig::set_enable_hagen_modulation ( bool const  value)

◆ set_enable_readout()

void haldls::vx::SynapseDriverConfig::set_enable_readout ( bool const  value)

◆ set_enable_receiver()

void haldls::vx::SynapseDriverConfig::set_enable_receiver ( bool const  value)

◆ set_enable_recovery()

void haldls::vx::SynapseDriverConfig::set_enable_recovery ( bool const  value)

◆ set_enable_renewing()

void haldls::vx::SynapseDriverConfig::set_enable_renewing ( bool const  value)

◆ set_enable_stp()

void haldls::vx::SynapseDriverConfig::set_enable_stp ( bool const  value)

◆ set_hagen_dac_offset()

void haldls::vx::SynapseDriverConfig::set_hagen_dac_offset ( HagenDACOffset  value)

◆ set_offset()

void haldls::vx::SynapseDriverConfig::set_offset ( Offset const  value)

◆ set_recovery()

void haldls::vx::SynapseDriverConfig::set_recovery ( Recovery const  value)

◆ set_row_address_compare_mask()

void haldls::vx::SynapseDriverConfig::set_row_address_compare_mask ( RowAddressCompareMask const  value)

◆ set_row_mode_bottom()

void haldls::vx::SynapseDriverConfig::set_row_mode_bottom ( RowMode  value)

◆ set_row_mode_top()

void haldls::vx::SynapseDriverConfig::set_row_mode_top ( RowMode  value)

◆ set_select_target_voltages()

void haldls::vx::SynapseDriverConfig::set_select_target_voltages ( TargetVoltages const  value)

◆ set_utilization()

void haldls::vx::SynapseDriverConfig::set_utilization ( Utilization const  value)

Friends And Related Function Documentation

◆ cereal::access

friend class cereal::access
friend

Definition at line 295 of file synapse_driver.h.

◆ operator<<

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

Member Data Documentation

◆ config_size_in_words

constexpr size_t haldls::vx::SynapseDriverConfig::config_size_in_words = 3
staticconstexpr

Definition at line 280 of file synapse_driver.h.

◆ unsupported_read_targets

constexpr static auto haldls::vx::SynapseDriverConfig::unsupported_read_targets
staticconstexpr
Initial value:
= {
hxcomm::vx::Target::simulation}

Definition at line 75 of file synapse_driver.h.


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