API Reference: calix

template<typename TL>
struct AddPickle

Add pickle support to list of classes.

Template Parameters

TL – Type list of classes to add pickle support for

template<typename ...Ts>
struct ccalix::AddPickle<hate::type_list<Ts...>>
#include <pickle.h>

Public Static Functions

static inline void apply(pybind11::module &parent, std::vector<std::string> const &container_names)

Add pickle support to list of classes.

Note

Specified name list has to match type list of wrapped types.

Template Parameters

T – Type of wrapped object

Parameters
  • parent – Pybind11 module

  • name – Name of object in python module

Private Static Functions

template<size_t I, size_t... Is>
static inline void apply_impl(pybind11::module &parent, std::vector<std::string> const &container_names, std::index_sequence<I, Is...>)
template<typename T>
static inline void apply_single(pybind11::module &parent, std::string const &name)

Add pickle support to single class.

Note

Specified name has to match object of correct wrapped type.

Template Parameters

T – Type of wrapped object

Parameters
  • parent – Pybind11 module

  • name – Name of object in python module

struct ccalix::CADCCalibOptions : public ccalix::CalibOptions

Further configuration parameters for the CADC calibration, that are not directly calibration targets.

Public Functions

CADCCalibOptions() = default

Public Members

bool calibrate_offsets = {true}

Private Functions

template<typename Archive>
void serialize(Archive &ar, std::uint32_t)

Friends

friend class cereal::access
friend std::ostream & operator<< (std::ostream &os, CADCCalibOptions const &options) SYMBOL_VISIBLE
struct CalibOptions
#include <calib_options.h>

Subclassed by ccalix::CADCCalibOptions, ccalix::CorrelationCalibOptions, ccalix::HagenCalibOptions, ccalix::HagenSyninCalibOptions, ccalix::NeuronCalibOptions, ccalix::STPCalibOptions, ccalix::SpikingCalibOptions, ccalix::SynapseDriverCalibOptions

struct ccalix::CorrelationCalibOptions : public ccalix::CalibOptions

Public Types

enum class Branches

Values:

enumerator CAUSAL
enumerator ACAUSAL
enumerator BOTH

Public Functions

CorrelationCalibOptions() = default
void check () const SYMBOL_VISIBLE

Check if given parameters are in a valid range.

Public Members

Branches branches = {Branches::BOTH}
bool calibrate_synapses = {false}
haldls::vx::v3::SynapseCorrelationCalibQuad::AmpCalib default_amp_calib = {0}
haldls::vx::v3::SynapseCorrelationCalibQuad::TimeCalib default_time_calib = {0}
double time_constant_priority = {0.3}
PotentialInVolt v_res_meas = {PotentialInVolt(0.9)}
PotentialInVolt v_reset = {PotentialInVolt(1.85)}

Private Functions

template<typename Archive>
void serialize(Archive &ar, std::uint32_t)

Friends

friend class cereal::access
friend std::ostream & operator<< (std::ostream &os, CorrelationCalibOptions const &options) SYMBOL_VISIBLE
struct ccalix::HagenCalibOptions : public ccalix::CalibOptions

Public Functions

HagenCalibOptions() = default

Public Members

CADCCalibOptions cadc_options

Further options for CADC calibration.

bool neuron_disable_leakage = {true}

Decide whether the neuron leak bias currents are set to zero after calibration.

This is done by default, which disables leakage entirely. Note that even if the leak bias is set to zero, some pseudo-leakage may occur through the synaptic input OTAs.

NeuronCalibOptions neuron_options

Further options for neuron calibration.

SynapseDriverCalibOptions synapse_driver_options

Further options for synapse driver calibration.

Private Functions

template<typename Archive>
void serialize(Archive &ar, std::uint32_t)

Friends

friend class cereal::access
friend std::ostream & operator<< (std::ostream &os, HagenCalibOptions const &options) SYMBOL_VISIBLE
struct ccalix::HagenSyninCalibOptions : public ccalix::CalibOptions

Public Functions

HagenSyninCalibOptions() = default

Public Members

CADCCalibOptions cadc_options

Further options for CADC calibration.

SynapseDriverCalibOptions synapse_driver_options

Further options for synapse driver calibration.

Private Functions

template<typename Archive>
void serialize(Archive &ar, std::uint32_t)

Friends

friend class cereal::access
friend std::ostream & operator<< (std::ostream &os, HagenSyninCalibOptions const &options) SYMBOL_VISIBLE
struct ccalix::NeuronCalibOptions : public ccalix::CalibOptions

Public Functions

NeuronCalibOptions() = default

Public Members

std::optional<halco::hicann_dls::vx::v3::AtomicNeuronOnDLS> readout_neuron = {std::nullopt}

Private Functions

template<typename Archive>
void serialize(Archive &ar, std::uint32_t)

Friends

friend class cereal::access
friend std::ostream & operator<< (std::ostream &os, NeuronCalibOptions const &options) SYMBOL_VISIBLE
struct ccalix::PotentialInVolt : public halco::common::detail::BaseType<PotentialInVolt, double>
#include <types.h>

Public Functions

inline explicit constexpr PotentialInVolt(value_type const value = 0.)
struct ccalix::SpikingCalibOptions : public ccalix::CalibOptions

Public Functions

SpikingCalibOptions(CADCCalibOptions cadc_options = CADCCalibOptions(), NeuronCalibOptions neuron_options = NeuronCalibOptions(), CorrelationCalibOptions correlation_options = CorrelationCalibOptions(), STPCalibOptions stp_options = STPCalibOptions(), std::optional<bool> refine_potentials = std::nullopt)

Public Members

CADCCalibOptions cadc_options
CorrelationCalibOptions correlation_options
NeuronCalibOptions neuron_options
std::optional<bool> refine_potentials = std::nullopt
STPCalibOptions stp_options

Private Functions

template<typename Archive>
void serialize(Archive &ar, std::uint32_t)

Friends

friend class cereal::access
friend std::ostream & operator<< (std::ostream &os, SpikingCalibOptions const &options) SYMBOL_VISIBLE
struct ccalix::STPCalibOptions : public ccalix::CalibOptions

Public Types

typedef halco::common::typed_array<haldls::vx::v3::CapMemCell::Value, halco::hicann_dls::vx::v3::CapMemBlockOnDLS> ValuePerQuadrant

Public Functions

STPCalibOptions () SYMBOL_VISIBLE

Public Members

ValuePerQuadrant i_ramp
ValuePerQuadrant v_stp

Private Functions

template<typename Archive>
void serialize(Archive &ar, std::uint32_t)

Friends

friend class cereal::access
friend std::ostream & operator<< (std::ostream &os, STPCalibOptions const &options) SYMBOL_VISIBLE
struct ccalix::SynapseDriverCalibOptions : public ccalix::CalibOptions

Public Functions

SynapseDriverCalibOptions() = default

Public Members

haldls::vx::v3::SynapseQuad::Label offset_test_activation{haldls::vx::v3::SynapseQuad::Label(haldls::vx::v3::PADIEvent::HagenActivation(3))}

Private Functions

template<typename Archive>
void serialize(Archive &ar, std::uint32_t)

Friends

friend class cereal::access
friend std::ostream & operator<< (std::ostream &os, SynapseDriverCalibOptions const &options) SYMBOL_VISIBLE
namespace ccalix

Functions

std::ostream & operator<< (std::ostream &os, CorrelationCalibOptions::Branches const &value) SYMBOL_VISIBLE
namespace ccalix::detail

Variables

static std::vector<std::string> const pickle_type_names = {"CADCCalibOptions", "CorrelationCalibOptions", "HagenCalibOptions", "HagenSyninCalibOptions", "NeuronCalibOptions", "SpikingCalibOptions", "SynapseDriverCalibOptions", "STPCalibOptions"}
namespace hagen
namespace ccalix::hagen::multiplication

Functions

SYMBOL_VISIBLE void send_vectors (stadls::vx::v3::PlaybackProgramBuilder &builder, const pybind11::array_t< uint_fast16_t > &vector, const size_t num_sends, const size_t wait_period, const halco::hicann_dls::vx::v3::SynramOnDLS synram_coord, const size_t synram_selection_bit)

Generate events for the given vector in hagen mode.

Parameters
  • builder – Builder to append writes to

  • vector – Array containing the input vector

  • num_sends – Number of repeats of the whole vector

  • wait_period – Wait time between two successive events

  • synram_coord – Coordinate of synapse array to target with the events

  • synram_selection_bit – Determines which bit in the event label selects the synram

namespace ccalix::hagen::multiplication::detail

Functions

haldls::vx::v3::SpikePack1ToChip prepare_event(const haldls::vx::v3::SynapseQuad::Label address, const halco::hicann_dls::vx::v3::SynapseDriverOnSynapseDriverBlock target_driver, const halco::hicann_dls::vx::v3::SynramOnDLS synram_coord, const size_t synram_selection_bit)

Return a spike pack to chip, containing an event reaching the desired synapse driver on the desired synram.

Parameters
  • address – Address that is sent to the driver. The MSB reaches the synapses, the lower 5 bit encode the desired activation.

  • target_driver – Coordinate of target synapse driver.

  • synram_coord – Coordinate of target synapse array.

  • synram_selection_bit – Bit position that selects synapse array.

Returns

Spike packet to chip.

namespace ccalix::helpers

Functions

std::string get_repo_state()
template<typename builder_t>
void write_capmem_row(builder_t &builder, const halco::hicann_dls::vx::v3::CapMemRowOnCapMemBlock row, const pybind11::array_t<uint_fast16_t> &values)

Attach write commands for a single, full row of non-global capmem cells to a given builder.

Template Parameters

builder_t – Type of the builder in use

Parameters
  • builder – Builder writes are appended to

  • row – Capmem row to be written

  • values – Array of payload data to be written to the given capmem row

template SYMBOL_VISIBLE void write_capmem_row (stadls::vx::v3::PlaybackProgramBuilder &, const halco::hicann_dls::vx::v3::CapMemRowOnCapMemBlock, const pybind11::array_t< uint_fast16_t > &)
template SYMBOL_VISIBLE void write_capmem_row (stadls::vx::v3::PlaybackProgramBuilderDumper &, const halco::hicann_dls::vx::v3::CapMemRowOnCapMemBlock, const pybind11::array_t< uint_fast16_t > &)
namespace spiking
namespace ccalix::spiking::correlation_measurement

Functions

SYMBOL_VISIBLE pybind11::array_t< uint_fast16_t > evaluate_correlation (std::vector< stadls::vx::v3::ContainerTicket > tickets)

Evaluate correlation reads in given list of tickets.

Parameters

List – of read tickets, as returned by the read_correlation() function.

Returns

Numpy array containing all reads. It will be shaped (4, 256, 2) for the entries in a quad, the rows, and the causal/acausal correlation.

SYMBOL_VISIBLE std::vector< stadls::vx::v3::ContainerTicket > read_correlation (stadls::vx::v3::PlaybackProgramBuilder &builder, const halco::hicann_dls::vx::v3::SynapseQuadColumnOnDLS quad, const halco::hicann_dls::vx::v3::SynramOnDLS synram)

Read CADCs in given quad column.

Returns a list of tickets for each row.

Parameters
  • builder – Builder to append reads to.

  • quad – Quad coordinate to be read.

  • synram – Synram to be used.

Returns

List of read tickets, ordered [causal row 0, acausal row 0, causal row 1, …]

SYMBOL_VISIBLE void reset_correlation (stadls::vx::v3::PlaybackProgramBuilder &builder, const halco::hicann_dls::vx::v3::SynapseQuadColumnOnDLS quad, const halco::hicann_dls::vx::v3::SynramOnDLS synram)

Reset all synapse correlations in given quad.

Parameters
  • builder – Builder to append instructions to.

  • quad – Quad column to be reset.

  • synram – Target synram coordinate.

SYMBOL_VISIBLE void send_postpulse (stadls::vx::v3::PlaybackProgramBuilder &builder, const halco::hicann_dls::vx::v3::SynapseQuadColumnOnDLS quad, const halco::hicann_dls::vx::v3::SynramOnDLS synram)

Reset the given quad of neurons, sending an STDP postpulse to synapses.

Parameters
  • builder – Builder to append instructions to.

  • quad – Quad column to reset neurons in.

  • synram – Target synram coordinate.

SYMBOL_VISIBLE void send_prepulse (stadls::vx::v3::PlaybackProgramBuilder &builder, const halco::hicann_dls::vx::v3::SynramOnDLS synram, const haldls::vx::v3::SynapseQuad::Label address)

Send a PADI event to all drivers, i.e.

an STDP prepulse to all synapses.

Parameters
  • builder – Builder to append instructions to.

  • synram – Synram coordinate of synapses to stimulate.

  • address – Address to be sent to synapses.

namespace cereal
namespace halco
namespace common
namespace detail
namespace std

STL namespace.

file cadc_calib_options.h
#include “ccalix/calib_options.h
#include “ccalix/cerealization.h
#include “”
#include <>
#include <>
file calib_options.h
#include “ccalix/genpybind.h
file ccalix.h
#include “ccalix/calib_options.h
#include “ccalix/genpybind.h
#include “ccalix/helpers.h
#include “”
#include “”
file cerealization.h
#include “”
#include <>

Defines

CCALIX_EXTERN_INSTANTIATE_CEREAL_SERIALIZE(CLASS_NAME)
file correlation_calib_options.h
#include “ccalix/calib_options.h
#include “ccalix/cerealization.h
#include “ccalix/types.h
#include “”
#include “”
#include <>
#include <>
file genpybind.h

Defines

GENPYBIND(...)
GENPYBIND_MANUAL(...)
GENPYBIND_MODULE
GENPYBIND_TAG_CCALIX
file multiplication.h
#include “ccalix/genpybind.h
#include “”
#include “”
#include “”
#include “”
#include “”
#include <>
file hagen_calib_options.h
#include “ccalix/calib_options.h
#include “ccalix/cerealization.h
#include “”
#include <>
file hagen_synin_calib_options.h
#include “ccalix/calib_options.h
#include “ccalix/cerealization.h
#include “”
#include <>
#include <>
file helpers.h
#include “ccalix/genpybind.h
#include “”
#include “”
#include “”
#include <>
#include <>
file neuron_calib_options.h
#include “ccalix/calib_options.h
#include “ccalix/cerealization.h
#include “”
#include “”
#include <>
file pickle.h
#include “”
#include “”
#include <>
#include <>
#include <>
#include <>
file correlation_measurement.h
#include “ccalix/genpybind.h
#include “”
#include “”
#include “”
#include “”
#include “”
#include “”
#include “”
#include <>
file spiking_calib_options.h
#include “ccalix/calib_options.h
#include “ccalix/cerealization.h
#include “”
#include <>
#include <>
file stp_calib_options.h
#include “ccalix/calib_options.h
#include “ccalix/cerealization.h
#include “”
#include “”
#include “”
file synapse_driver_calib_options.h
#include “ccalix/calib_options.h
#include “ccalix/cerealization.h
#include “”
#include “”
#include “”
#include <>
file types.h
#include “ccalix/genpybind.h
#include “”
dir /jenkins/jenlib_workspaces_f9/doc_gerrit_documentation-brainscales2-dependencies.ZG9jX2dlcnJpdF9kb2N1bWVudGF0aW9uLWJyYWluc2NhbGVzMi1kZXBlbmRlbmNpZXMjMTM5MDE.x/calix
dir /jenkins/jenlib_workspaces_f9/doc_gerrit_documentation-brainscales2-dependencies.ZG9jX2dlcnJpdF9kb2N1bWVudGF0aW9uLWJyYWluc2NhbGVzMi1kZXBlbmRlbmNpZXMjMTM5MDE.x/calix/include/ccalix
dir /jenkins/jenlib_workspaces_f9/doc_gerrit_documentation-brainscales2-dependencies.ZG9jX2dlcnJpdF9kb2N1bWVudGF0aW9uLWJyYWluc2NhbGVzMi1kZXBlbmRlbmNpZXMjMTM5MDE.x/calix/include/ccalix/hagen
dir /jenkins/jenlib_workspaces_f9/doc_gerrit_documentation-brainscales2-dependencies.ZG9jX2dlcnJpdF9kb2N1bWVudGF0aW9uLWJyYWluc2NhbGVzMi1kZXBlbmRlbmNpZXMjMTM5MDE.x/calix/include
dir /jenkins/jenlib_workspaces_f9/doc_gerrit_documentation-brainscales2-dependencies.ZG9jX2dlcnJpdF9kb2N1bWVudGF0aW9uLWJyYWluc2NhbGVzMi1kZXBlbmRlbmNpZXMjMTM5MDE.x/calix/include/ccalix/spiking