4 #include "halco/common/typed_array.h" 
    5 #include "halco/hicann-dls/vx/capmem.h" 
    6 #include "halco/hicann-dls/vx/chip.h" 
    7 #include "halco/hicann-dls/vx/readout.h" 
   11 #include "hate/visibility.h" 
   15 class OmnibusChipOverJTAG;
 
   37     typedef 
halco::common::typed_array<
bool, 
halco::hicann_dls::vx::CapMemBlockOnDLS>
 
   40         GENPYBIND(opaque(false));
 
   41     typedef 
halco::common::
 
   42         typed_array<
bool, 
halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection>
 
   46     GENPYBIND(getter_for(cadc_v_ramp_mux), return_value_policy(reference_internal))
 
   48     GENPYBIND(setter_for(cadc_v_ramp_mux))
 
   52     GENPYBIND(getter_for(cadc_v_ramp_mux_to_pad))
 
   53     bool get_cadc_v_ramp_mux_to_pad() const SYMBOL_VISIBLE;
 
   54     GENPYBIND(setter_for(cadc_v_ramp_mux_to_pad))
 
   55     void set_cadc_v_ramp_mux_to_pad(
bool value) SYMBOL_VISIBLE;
 
   58     GENPYBIND(getter_for(capmem_i_out_mux), return_value_policy(reference_internal))
 
   60     GENPYBIND(setter_for(capmem_i_out_mux))
 
   67     GENPYBIND(getter_for(capmem_i_out_mux_to_capmem_intermediate_mux))
 
   68     bool get_capmem_i_out_mux_to_capmem_intermediate_mux() const SYMBOL_VISIBLE;
 
   69     GENPYBIND(setter_for(capmem_i_out_mux_to_capmem_intermediate_mux))
 
   70     void set_capmem_i_out_mux_to_capmem_intermediate_mux(
bool value) SYMBOL_VISIBLE;
 
   74     GENPYBIND(getter_for(capmem_intermediate_mux_to_pad))
 
   75     bool get_capmem_intermediate_mux_to_pad() const SYMBOL_VISIBLE;
 
   76     GENPYBIND(setter_for(capmem_intermediate_mux_to_pad))
 
   77     void set_capmem_intermediate_mux_to_pad(
bool value) SYMBOL_VISIBLE;
 
   80     GENPYBIND(getter_for(capmem_v_out_mux), return_value_policy(reference_internal))
 
   82     GENPYBIND(setter_for(capmem_v_out_mux))
 
   88     GENPYBIND(getter_for(capmem_v_out_mux_to_capmem_intermediate_mux))
 
   89     bool get_capmem_v_out_mux_to_capmem_intermediate_mux() const SYMBOL_VISIBLE;
 
   90     GENPYBIND(setter_for(capmem_v_out_mux_to_capmem_intermediate_mux))
 
   91     void set_capmem_v_out_mux_to_capmem_intermediate_mux(
bool value) SYMBOL_VISIBLE;
 
   94     GENPYBIND(getter_for(capmem_v_ref_mux), return_value_policy(reference_internal))
 
   96     GENPYBIND(setter_for(capmem_v_ref_mux))
 
  102     GENPYBIND(getter_for(capmem_v_ref_mux_to_capmem_intermediate_mux))
 
  103     bool get_capmem_v_ref_mux_to_capmem_intermediate_mux() const SYMBOL_VISIBLE;
 
  104     GENPYBIND(setter_for(capmem_v_ref_mux_to_capmem_intermediate_mux))
 
  105     void set_capmem_v_ref_mux_to_capmem_intermediate_mux(
bool value) SYMBOL_VISIBLE;
 
  108     GENPYBIND(getter_for(neuron_i_stim_mux), return_value_policy(reference_internal))
 
  110     GENPYBIND(setter_for(neuron_i_stim_mux))
 
  114     GENPYBIND(getter_for(neuron_i_stim_mux_to_pad))
 
  115     bool get_neuron_i_stim_mux_to_pad() const SYMBOL_VISIBLE;
 
  116     GENPYBIND(setter_for(neuron_i_stim_mux_to_pad))
 
  117     void set_neuron_i_stim_mux_to_pad(
bool value) SYMBOL_VISIBLE;
 
  122     GENPYBIND(getter_for(cadc_debug_acausal_to_synapse_intermediate_mux))
 
  123     bool get_cadc_debug_acausal_to_synapse_intermediate_mux() const SYMBOL_VISIBLE;
 
  124     GENPYBIND(setter_for(cadc_debug_acausal_to_synapse_intermediate_mux))
 
  125     void set_cadc_debug_acausal_to_synapse_intermediate_mux(
bool value) SYMBOL_VISIBLE;
 
  130     GENPYBIND(getter_for(cadc_debug_causal_to_synapse_intermediate_mux))
 
  131     bool get_cadc_debug_causal_to_synapse_intermediate_mux() const SYMBOL_VISIBLE;
 
  132     GENPYBIND(setter_for(cadc_debug_causal_to_synapse_intermediate_mux))
 
  133     void set_cadc_debug_causal_to_synapse_intermediate_mux(
bool value) SYMBOL_VISIBLE;
 
  138     GENPYBIND(getter_for(synin_debug_inhibitory_to_synapse_intermediate_mux))
 
  139     bool get_synin_debug_inhibitory_to_synapse_intermediate_mux() const SYMBOL_VISIBLE;
 
  140     GENPYBIND(setter_for(synin_debug_inhibitory_to_synapse_intermediate_mux))
 
  141     void set_synin_debug_inhibitory_to_synapse_intermediate_mux(
bool value) SYMBOL_VISIBLE;
 
  146     GENPYBIND(getter_for(synin_debug_excitatory_to_synapse_intermediate_mux))
 
  147     bool get_synin_debug_excitatory_to_synapse_intermediate_mux() const SYMBOL_VISIBLE;
 
  148     GENPYBIND(setter_for(synin_debug_excitatory_to_synapse_intermediate_mux))
 
  149     void set_synin_debug_excitatory_to_synapse_intermediate_mux(
bool value) SYMBOL_VISIBLE;
 
  154     GENPYBIND(getter_for(synapse_intermediate_mux_to_pad))
 
  155     bool get_synapse_intermediate_mux_to_pad() const SYMBOL_VISIBLE;
 
  156     GENPYBIND(setter_for(synapse_intermediate_mux_to_pad))
 
  157     void set_synapse_intermediate_mux_to_pad(
bool value) SYMBOL_VISIBLE;
 
  162     GENPYBIND(getter_for(buffer_to_pad), return_value_policy(reference_internal))
 
  163     buffer_type const& get_buffer_to_pad() const SYMBOL_VISIBLE;
 
  164     GENPYBIND(setter_for(buffer_to_pad))
 
  171     GENPYBIND(getter_for(debug_to_pad))
 
  172     bool get_debug_to_pad() const SYMBOL_VISIBLE;
 
  173     GENPYBIND(setter_for(debug_to_pad))
 
  174     void set_debug_to_pad(
bool value) SYMBOL_VISIBLE;
 
  179     GENPYBIND(stringstream)
 
  183     static 
size_t constexpr config_size_in_words GENPYBIND(hidden) = 2;
 
  185     template <typename AddressT>
 
  186     static std::array<AddressT, config_size_in_words> addresses(
coordinate_type const& coord)
 
  187         SYMBOL_VISIBLE GENPYBIND(hidden);
 
  189     template <typename WordT>
 
  190     std::array<WordT, config_size_in_words> encode() const SYMBOL_VISIBLE GENPYBIND(hidden);
 
  192     template <typename WordT>
 
  193     void decode(std::array<WordT, config_size_in_words> const& words) SYMBOL_VISIBLE
 
  198     template <class Archive>
 
  199     void serialize(Archive& ar, std::uint32_t const version) SYMBOL_VISIBLE;
 
  203     bool m_cadc_v_ramp_mux_to_pad;
 
  207     bool m_capmem_i_out_mux_to_inter;
 
  208     bool m_capmem_inter_mux_to_pad;
 
  210     bool m_capmem_v_out_mux_to_inter;
 
  212     bool m_capmem_v_ref_mux_to_inter;
 
  216     bool m_neuron_i_stim_mux_to_pad;
 
  219     bool m_cadc_debug_acausal_to_inter;
 
  220     bool m_cadc_debug_causal_to_inter;
 
  221     bool m_synin_debug_inhibitory_to_inter;
 
  222     bool m_synin_debug_excitatory_to_inter;
 
  223     bool m_synapse_inter_mux_to_pad;
 
  253         typedef 
halco::common::typed_array<
bool, 
halco::hicann_dls::vx::HemisphereOnDLS>
 
  257         GENPYBIND(getter_for(debug_plus))
 
  258         bool get_debug_plus() const SYMBOL_VISIBLE;
 
  259         GENPYBIND(setter_for(debug_plus))
 
  260         void set_debug_plus(
bool value) SYMBOL_VISIBLE;
 
  263         GENPYBIND(getter_for(debug_minus))
 
  264         bool get_debug_minus() const SYMBOL_VISIBLE;
 
  265         GENPYBIND(setter_for(debug_minus))
 
  266         void set_debug_minus(
bool value) SYMBOL_VISIBLE;
 
  271         GENPYBIND(getter_for(current_dac))
 
  272         bool get_current_dac() const SYMBOL_VISIBLE;
 
  273         GENPYBIND(setter_for(current_dac))
 
  274         void set_current_dac(
bool value) SYMBOL_VISIBLE;
 
  277         GENPYBIND(getter_for(synin_debug_inhibitory))
 
  278         bool get_synin_debug_inhibitory() const SYMBOL_VISIBLE;
 
  279         GENPYBIND(setter_for(synin_debug_inhibitory))
 
  280         void set_synin_debug_inhibitory(
bool value) SYMBOL_VISIBLE;
 
  283         GENPYBIND(getter_for(synin_debug_excitatory))
 
  284         bool get_synin_debug_excitatory() const SYMBOL_VISIBLE;
 
  285         GENPYBIND(setter_for(synin_debug_excitatory))
 
  286         void set_synin_debug_excitatory(
bool value) SYMBOL_VISIBLE;
 
  289         GENPYBIND(getter_for(cadc_debug_causal))
 
  290         bool get_cadc_debug_causal() const SYMBOL_VISIBLE;
 
  291         GENPYBIND(setter_for(cadc_debug_causal))
 
  292         void set_cadc_debug_causal(
bool value) SYMBOL_VISIBLE;
 
  295         GENPYBIND(getter_for(cadc_debug_acausal))
 
  296         bool get_cadc_debug_acausal() const SYMBOL_VISIBLE;
 
  297         GENPYBIND(setter_for(cadc_debug_acausal))
 
  298         void set_cadc_debug_acausal(
bool value) SYMBOL_VISIBLE;
 
  301         GENPYBIND(getter_for(synapse_driver_debug), return_value_policy(reference_internal))
 
  302         hemisphere_type const& get_synapse_driver_debug() const SYMBOL_VISIBLE;
 
  303         GENPYBIND(setter_for(synapse_driver_debug))
 
  307         GENPYBIND(getter_for(neuron_odd), return_value_policy(reference_internal))
 
  309         GENPYBIND(setter_for(neuron_odd))
 
  313         GENPYBIND(getter_for(neuron_even), return_value_policy(reference_internal))
 
  315         GENPYBIND(setter_for(neuron_even))
 
  321         GENPYBIND(stringstream)
 
  328         template <class Archive>
 
  329         void serialize(Archive& ar, std::uint32_t const version) SYMBOL_VISIBLE;
 
  334         bool m_synin_debug_inhibitory;
 
  335         bool m_synin_debug_excitatory;
 
  336         bool m_cadc_debug_causal;
 
  337         bool m_cadc_debug_acausal;
 
  347         halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection const& buffer) const
 
  350         halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection const& buffer,
 
  353     typedef 
halco::common::
 
  354         typed_array<
bool, 
halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection>
 
  359     GENPYBIND(getter_for(enable_buffer_to_pad), return_value_policy(reference_internal))
 
  361     GENPYBIND(setter_for(enable_buffer_to_pad))
 
  364     static 
size_t constexpr config_size_in_words GENPYBIND(hidden) = 2;
 
  366     template <typename AddressT>
 
  367     static std::array<AddressT, config_size_in_words> addresses(
coordinate_type const& block)
 
  370     template <typename WordT>
 
  371     std::array<WordT, config_size_in_words> encode() const GENPYBIND(hidden);
 
  373     template <typename WordT>
 
  374     void decode(std::array<WordT, config_size_in_words> const& data) GENPYBIND(hidden);
 
  376     GENPYBIND(stringstream)
 
  385     template <class Archive>
 
  386     void serialize(Archive& ar, std::uint32_t const version);
 
  388     halco::common::typed_array<
 
  390         halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection>
 
  403           PadMultiplexerConfig,
 
  404           fisch::vx::word_access_type::Omnibus,
 
  405           fisch::vx::word_access_type::OmnibusChipOverJTAG>
 
  411           ReadoutSourceSelection,
 
  412           fisch::vx::word_access_type::Omnibus,
 
  413           fisch::vx::word_access_type::OmnibusChipOverJTAG>
 
#define EXTERN_INSTANTIATE_CEREAL_SERIALIZE(CLASS_NAME)
A configuration container for the top-level readout mux, selecting the connections between an analog ...
PadMultiplexerConfig() SYMBOL_VISIBLE
Default constructor with all inputs disabled.
halco::common::typed_array< bool, halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection > buffer_type
std::true_type is_leaf_node
halco::common::typed_array< bool, halco::hicann_dls::vx::CapMemBlockOnDLS > capmem_quadrant_type
halco::common::typed_array< bool, halco::hicann_dls::vx::HemisphereOnDLS > hemisphere_type
halco::hicann_dls::vx::PadMultiplexerConfigOnDLS coordinate_type
Configuration container for the two mux and buffer blocks for voltage readout.
halco::common::typed_array< bool, halco::hicann_dls::vx::SourceMultiplexerOnReadoutSourceSelection > source_multiplexer_type
halco::hicann_dls::vx::ReadoutSourceSelectionOnDLS coordinate_type
std::true_type is_leaf_node
#define GENPYBIND_TAG_HALDLS_VX
SourceMultiplexer() SYMBOL_VISIBLE
Default constructor with all inputs disabled.
halco::common::typed_array< bool, halco::hicann_dls::vx::HemisphereOnDLS > hemisphere_type
Backend container trait base.