HALDLS
|
#include <synapse_driver.h>
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_words > | encode () 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_words > | addresses (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 |
Definition at line 69 of file synapse_driver.h.
typedef halco::hicann_dls::vx::SynapseDriverOnDLS haldls::vx::SynapseDriverConfig::coordinate_type |
Definition at line 72 of file synapse_driver.h.
typedef std::true_type haldls::vx::SynapseDriverConfig::is_leaf_node |
Definition at line 73 of file synapse_driver.h.
|
strong |
Enumerator | |
---|---|
disabled | |
excitatory | |
inhibitory | |
excitatory_and_inhibitory |
Definition at line 128 of file synapse_driver.h.
haldls::vx::SynapseDriverConfig::SynapseDriverConfig | ( | ) |
|
static |
void haldls::vx::SynapseDriverConfig::decode | ( | std::array< WordT, config_size_in_words > const & | data | ) |
std::array<WordT, config_size_in_words> haldls::vx::SynapseDriverConfig::encode | ( | ) | const |
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.
bool haldls::vx::SynapseDriverConfig::get_enable_charge_sharing | ( | ) | const |
Enable charge sharing for larger STP utilization values (broken).
bool haldls::vx::SynapseDriverConfig::get_enable_hagen_dac | ( | ) | const |
Enable the DAC converting a hagen activation to an STP voltage.
bool haldls::vx::SynapseDriverConfig::get_enable_hagen_modulation | ( | ) | const |
Enable modulation of pulse width proportional to event address.
Note:
enable_hagen_dac
enable_address_out
enable_stp
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.
bool haldls::vx::SynapseDriverConfig::get_enable_receiver | ( | ) | const |
Enable padi bus receiver.
bool haldls::vx::SynapseDriverConfig::get_enable_recovery | ( | ) | const |
Enable STP recovery circuit.
bool haldls::vx::SynapseDriverConfig::get_enable_renewing | ( | ) | const |
Enable renewing synapses for LIF sampling (broken due to faulty circuit).
bool haldls::vx::SynapseDriverConfig::get_enable_stp | ( | ) | const |
Enable STP circuit.
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.
Offset haldls::vx::SynapseDriverConfig::get_offset | ( | ) | const |
Calibration value for dacen pulse width.
Recovery haldls::vx::SynapseDriverConfig::get_recovery | ( | ) | const |
Set STP recovery time constant.
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
.
RowMode haldls::vx::SynapseDriverConfig::get_row_mode_bottom | ( | ) | const |
Set bottom row mode.
RowMode haldls::vx::SynapseDriverConfig::get_row_mode_top | ( | ) | const |
Set top row mode.
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.
Utilization haldls::vx::SynapseDriverConfig::get_utilization | ( | ) | const |
Set strength of STP utilization.
bool haldls::vx::SynapseDriverConfig::operator!= | ( | SynapseDriverConfig const & | other | ) | const |
bool haldls::vx::SynapseDriverConfig::operator== | ( | SynapseDriverConfig const & | other | ) | const |
void haldls::vx::SynapseDriverConfig::set_enable_address_out | ( | bool const | value | ) |
void haldls::vx::SynapseDriverConfig::set_enable_charge_sharing | ( | bool const | value | ) |
void haldls::vx::SynapseDriverConfig::set_enable_hagen_dac | ( | bool | value | ) |
void haldls::vx::SynapseDriverConfig::set_enable_hagen_modulation | ( | bool const | value | ) |
void haldls::vx::SynapseDriverConfig::set_enable_readout | ( | bool const | value | ) |
void haldls::vx::SynapseDriverConfig::set_enable_receiver | ( | bool const | value | ) |
void haldls::vx::SynapseDriverConfig::set_enable_recovery | ( | bool const | value | ) |
void haldls::vx::SynapseDriverConfig::set_enable_renewing | ( | bool const | value | ) |
void haldls::vx::SynapseDriverConfig::set_enable_stp | ( | bool const | value | ) |
void haldls::vx::SynapseDriverConfig::set_hagen_dac_offset | ( | HagenDACOffset | value | ) |
void haldls::vx::SynapseDriverConfig::set_offset | ( | Offset const | value | ) |
void haldls::vx::SynapseDriverConfig::set_recovery | ( | Recovery const | value | ) |
void haldls::vx::SynapseDriverConfig::set_row_address_compare_mask | ( | RowAddressCompareMask const | value | ) |
void haldls::vx::SynapseDriverConfig::set_row_mode_bottom | ( | RowMode | value | ) |
void haldls::vx::SynapseDriverConfig::set_row_mode_top | ( | RowMode | value | ) |
void haldls::vx::SynapseDriverConfig::set_select_target_voltages | ( | TargetVoltages const | value | ) |
void haldls::vx::SynapseDriverConfig::set_utilization | ( | Utilization const | value | ) |
|
friend |
Definition at line 295 of file synapse_driver.h.
|
friend |
|
staticconstexpr |
Definition at line 280 of file synapse_driver.h.
|
staticconstexpr |
Definition at line 75 of file synapse_driver.h.