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.