2 #include "halco/hicann-dls/vx/v2/capmem.h"
3 #include "halco/hicann-dls/vx/v2/coordinates.h"
9 class OmnibusChipOverJTAG;
26 auto cls = pybind11::class_<::haldls::vx::v2::CapMemCell::value_type>(
27 parent,
"_CapMemCell_value_type");
29 pybind11::init<::haldls::vx::v2::CapMemCell::Value>(),
32 pybind11::init<::haldls::vx::v2::CapMemCell::DisableRefresh>(), pybind11::arg(
"value"));
33 parent.attr(
"CapMemCell").attr(
"value_type") = parent.attr(
"_CapMemCell_value_type");
54 GENPYBIND(implicit_conversion) :
59 struct GENPYBIND(inline_base("*
")) CapMemOffset
60 : public halco::common::detail::RantWrapper<CapMemOffset, uint_fast8_t, 63, 0>
62 constexpr explicit CapMemOffset(uintmax_t const val = 1) GENPYBIND(implicit_conversion) :
67 struct GENPYBIND(inline_base("*
")) CapMemSlope
68 : public halco::common::detail::RantWrapper<CapMemSlope, uint_fast8_t, 63, 0>
70 constexpr explicit CapMemSlope(uintmax_t const val = 11) GENPYBIND(implicit_conversion) :
75 struct GENPYBIND(inline_base("*
")) ReferenceControl
76 : public halco::common::detail::RantWrapper<ReferenceControl, uint_fast8_t, 63, 0>
78 constexpr explicit ReferenceControl(uintmax_t const val = 10)
79 GENPYBIND(implicit_conversion) :
84 struct GENPYBIND(inline_base("*
")) ResistorControl
85 : public halco::common::detail::RantWrapper<ResistorControl, uint_fast8_t, 63, 0>
87 constexpr explicit ResistorControl(uintmax_t const val = 40)
88 GENPYBIND(implicit_conversion) :
93 typedef halco::common::typed_array<CapMemAmplifier, halco::hicann_dls::vx::CapMemBlockOnDLS>
94 capmem_amplifier_type GENPYBIND(opaque, expose_as(_capmem_amplifier_type));
95 typedef halco::common::typed_array<CapMemOffset, halco::hicann_dls::vx::CapMemBlockOnDLS>
96 capmem_offset_type GENPYBIND(opaque, expose_as(_capmem_offset_type));
97 typedef halco::common::typed_array<CapMemSlope, halco::hicann_dls::vx::CapMemBlockOnDLS>
98 capmem_slope_type GENPYBIND(opaque, expose_as(_capmem_slope_type));
101 GENPYBIND(getter_for(enable_internal_reference))
102 bool const& get_enable_internal_reference() const SYMBOL_VISIBLE;
103 GENPYBIND(setter_for(enable_internal_reference))
104 void set_enable_internal_reference(bool value) SYMBOL_VISIBLE;
107 GENPYBIND(getter_for(enable_reference_output))
108 bool const& get_enable_reference_output() const SYMBOL_VISIBLE;
109 GENPYBIND(setter_for(enable_reference_output))
110 void set_enable_reference_output(bool value) SYMBOL_VISIBLE;
113 GENPYBIND(getter_for(enable_reference_input))
114 bool const& get_enable_reference_input() const SYMBOL_VISIBLE;
115 GENPYBIND(setter_for(enable_reference_input))
116 void set_enable_reference_input(bool value) SYMBOL_VISIBLE;
119 GENPYBIND(getter_for(capmem_amplifier), return_value_policy(reference_internal))
120 capmem_amplifier_type const& get_capmem_amplifier() const SYMBOL_VISIBLE;
121 GENPYBIND(setter_for(capmem_amplifier))
122 void set_capmem_amplifier(capmem_amplifier_type const& value) SYMBOL_VISIBLE;
125 GENPYBIND(getter_for(capmem_offset), return_value_policy(reference_internal))
126 capmem_offset_type const& get_capmem_offset() const SYMBOL_VISIBLE;
127 GENPYBIND(setter_for(capmem_offset))
128 void set_capmem_offset(capmem_offset_type const& value) SYMBOL_VISIBLE;
131 GENPYBIND(getter_for(capmem_slope), return_value_policy(reference_internal))
132 capmem_slope_type const& get_capmem_slope() const SYMBOL_VISIBLE;
133 GENPYBIND(setter_for(capmem_slope))
134 void set_capmem_slope(capmem_slope_type const& value) SYMBOL_VISIBLE;
137 GENPYBIND(getter_for(reference_control))
138 ReferenceControl get_reference_control() const SYMBOL_VISIBLE;
139 GENPYBIND(setter_for(reference_control))
140 void set_reference_control(ReferenceControl value) SYMBOL_VISIBLE;
143 GENPYBIND(getter_for(resistor_control))
144 ResistorControl get_resistor_control() const SYMBOL_VISIBLE;
145 GENPYBIND(setter_for(resistor_control))
146 void set_resistor_control(ResistorControl value) SYMBOL_VISIBLE;
150 GENPYBIND(getter_for(enable_reset))
151 bool const& get_enable_reset() const SYMBOL_VISIBLE;
152 GENPYBIND(setter_for(enable_reset))
153 void set_enable_reset(bool value) SYMBOL_VISIBLE;
155 bool operator==(ReferenceGeneratorConfig const& other) const SYMBOL_VISIBLE;
156 bool operator!=(ReferenceGeneratorConfig const& other) const SYMBOL_VISIBLE;
158 static size_t constexpr config_size_in_words GENPYBIND(hidden) = 9;
160 template <typename AddressT>
161 static std::array<AddressT, config_size_in_words> addresses(coordinate_type const& coord)
162 SYMBOL_VISIBLE GENPYBIND(hidden);
164 template <typename WordT>
165 std::array<WordT, config_size_in_words> encode() const SYMBOL_VISIBLE GENPYBIND(hidden);
167 template <typename WordT>
168 void decode(std::array<WordT, config_size_in_words> const& data) SYMBOL_VISIBLE
171 GENPYBIND(stringstream)
172 friend std::ostream& operator<<(std::ostream& os, ReferenceGeneratorConfig const& config)
176 friend class cereal::access;
177 template <class Archive>
178 void serialize(Archive& ar, std::uint32_t const version) SYMBOL_VISIBLE;
180 bool m_enable_internal_reference;
181 bool m_enable_reference_output;
182 bool m_enable_reference_input;
183 capmem_amplifier_type m_capmem_amplifier;
184 capmem_offset_type m_capmem_offset;
185 capmem_slope_type m_capmem_slope;
186 ReferenceControl m_reference_control;
187 ResistorControl m_resistor_control;
191 } // namespace haldls::vx::v2
193 namespace haldls::vx::detail {
196 struct BackendContainerTrait<v2::ReferenceGeneratorConfig>
197 : public BackendContainerBase<
198 v2::ReferenceGeneratorConfig,
199 fisch::vx::word_access_type::Omnibus,
200 fisch::vx::word_access_type::OmnibusChipOverJTAG>
203 } // namespace haldls::vx::detail
207 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::v2::ReferenceGeneratorConfig::CapMemAmplifier)
208 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::v2::ReferenceGeneratorConfig::CapMemOffset)
209 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::v2::ReferenceGeneratorConfig::CapMemSlope)
210 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::v2::ReferenceGeneratorConfig::ReferenceControl)
211 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::v2::ReferenceGeneratorConfig::ResistorControl)
215 EXTERN_INSTANTIATE_CEREAL_SERIALIZE(haldls::vx::v2::ReferenceGeneratorConfig)
#define CAPMEM_EXTERN_TEMPLATE(Coordinates)
#define CAPMEM_HALCO_GEOMETRY_HASH(Coordinates)
ReferenceGeneratorConfig() SYMBOL_VISIBLE
Default config of reference generator.
std::true_type is_leaf_node
halco::hicann_dls::vx::ReferenceGeneratorConfigOnDLS coordinate_type
#define GENPYBIND_TAG_HALDLS_VX_V2
constexpr CapMemAmplifier(uintmax_t const val=40)