5 #include "fisch/vx/word_access/type/reset.h"
6 #include "halco/common/geometry.h"
7 #include "halco/hicann-dls/vx/highspeed_link.h"
11 #include "hate/visibility.h"
37 explicit PerfTest(
bool value =
false) SYMBOL_VISIBLE;
43 GENPYBIND(setter_for(enable))
44 void set_enable(
bool value) SYMBOL_VISIBLE;
50 GENPYBIND(getter_for(enable))
51 bool get_enable() const SYMBOL_VISIBLE;
53 bool operator==(
PerfTest const& other) const SYMBOL_VISIBLE;
54 bool operator!=(
PerfTest const& other) const SYMBOL_VISIBLE;
56 GENPYBIND(stringstream)
57 friend std::ostream& operator<<(std::ostream& os,
PerfTest const& config) SYMBOL_VISIBLE;
59 static
size_t constexpr config_size_in_words GENPYBIND(hidden) = 1;
60 static std::array<
halco::hicann_dls::vx::OmnibusAddress, config_size_in_words> addresses(
62 std::array<
fisch::vx::word_access_type::Omnibus, config_size_in_words> encode() const
63 SYMBOL_VISIBLE GENPYBIND(hidden);
64 void decode(std::array<
fisch::vx::word_access_type::Omnibus, config_size_in_words> const& data)
65 SYMBOL_VISIBLE GENPYBIND(hidden);
69 template <typename Archive>
70 void serialize(Archive& ar, std::uint32_t const version);
97 struct GENPYBIND(inline_base("*
")) Sent
98 : public halco::common::detail::RantWrapper<Sent, uint_fast32_t, 0xffffffff, 0>
100 constexpr explicit Sent(uintmax_t const val = 0) : rant_t(val) {}
104 struct GENPYBIND(inline_base("*
")) Received
105 : public halco::common::detail::RantWrapper<Received, uint_fast32_t, 0xffffffff, 0>
107 constexpr explicit Received(uintmax_t const val = 0) : rant_t(val) {}
111 struct GENPYBIND(inline_base("*
")) InOrder
112 : public halco::common::detail::RantWrapper<InOrder, uint_fast32_t, 0xffffffff, 0>
114 constexpr explicit InOrder(uintmax_t const val = 0) : rant_t(val) {}
118 struct GENPYBIND(inline_base("*
")) ErrorWord
119 : public halco::common::detail::RantWrapper<ErrorWord, uint_fast32_t, 0xffffffff, 0>
121 constexpr explicit ErrorWord(uintmax_t const val = 0) : rant_t(val) {}
125 PerfTestStatus() SYMBOL_VISIBLE;
131 GENPYBIND(setter_for(sent))
132 void set_sent(Sent value) SYMBOL_VISIBLE;
138 GENPYBIND(getter_for(sent))
139 Sent get_sent() const SYMBOL_VISIBLE;
145 GENPYBIND(setter_for(received))
146 void set_received(Received value) SYMBOL_VISIBLE;
152 GENPYBIND(getter_for(received))
153 Received get_received() const SYMBOL_VISIBLE;
159 GENPYBIND(setter_for(in_order))
160 void set_in_order(InOrder value) SYMBOL_VISIBLE;
166 GENPYBIND(getter_for(in_order))
167 InOrder get_in_order() const SYMBOL_VISIBLE;
173 GENPYBIND(setter_for(error_word))
174 void set_error_word(ErrorWord value) SYMBOL_VISIBLE;
180 GENPYBIND(getter_for(error_word))
181 ErrorWord get_error_word() const SYMBOL_VISIBLE;
183 bool operator==(PerfTestStatus const& other) const SYMBOL_VISIBLE;
184 bool operator!=(PerfTestStatus const& other) const SYMBOL_VISIBLE;
186 GENPYBIND(stringstream)
187 friend std::ostream& operator<<(std::ostream& os, PerfTestStatus const& config) SYMBOL_VISIBLE;
189 static size_t constexpr read_config_size_in_words GENPYBIND(hidden) = 4;
190 static size_t constexpr write_config_size_in_words GENPYBIND(hidden) = 0;
191 static std::array<halco::hicann_dls::vx::OmnibusAddress, read_config_size_in_words>
192 read_addresses(coordinate_type const& word) SYMBOL_VISIBLE GENPYBIND(hidden);
193 static std::array<halco::hicann_dls::vx::OmnibusAddress, write_config_size_in_words>
194 write_addresses(coordinate_type const& word) SYMBOL_VISIBLE GENPYBIND(hidden);
195 std::array<fisch::vx::word_access_type::Omnibus, write_config_size_in_words> encode() const
196 SYMBOL_VISIBLE GENPYBIND(hidden);
197 void decode(std::array<fisch::vx::word_access_type::Omnibus, read_config_size_in_words> const&
198 data) SYMBOL_VISIBLE GENPYBIND(hidden);
201 friend class cereal::access;
202 template <typename Archive>
203 void serialize(Archive& ar, std::uint32_t const version);
208 ErrorWord m_error_word;
211 EXTERN_INSTANTIATE_CEREAL_SERIALIZE(PerfTestStatus)
216 struct BackendContainerTrait<PerfTestStatus>
217 : public BackendContainerBase<PerfTestStatus, fisch::vx::word_access_type::Omnibus>
220 } // namespace detail
223 } // namespace haldls
227 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::PerfTestStatus::Sent)
228 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::PerfTestStatus::Received)
229 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::PerfTestStatus::InOrder)
230 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::PerfTestStatus::ErrorWord)
#define EXTERN_INSTANTIATE_CEREAL_SERIALIZE(CLASS_NAME)
Container for enabling highspeed perf test.
PerfTest(bool value=false) SYMBOL_VISIBLE
Construct perf test with enable value.
std::true_type is_leaf_node
halco::hicann_dls::vx::PerfTestOnFPGA coordinate_type
Container for perf test result readout.
std::true_type is_leaf_node
halco::hicann_dls::vx::PerfTestStatusOnFPGA coordinate_type
#define GENPYBIND_TAG_HALDLS_VX
Backend container trait base.