5 #include "halco/hicann-dls/vx/timing.h"
9 #include "hate/visibility.h"
17 class OmnibusChipOverJTAG;
33 struct GENPYBIND(inline_base("*
")) Value
34 : public halco::common::detail::RantWrapper<Value, uint64_t, 0x7ffffffffff, 0>
36 constexpr explicit Value(uintmax_t const val = 0) GENPYBIND(implicit_conversion) :
41 explicit SystimeSyncBase(Value const value = Value()) SYMBOL_VISIBLE;
43 GENPYBIND(getter_for(value))
44 Value get_value() const SYMBOL_VISIBLE;
45 GENPYBIND(setter_for(value))
46 void set_value(Value const& value) SYMBOL_VISIBLE;
48 bool operator==(SystimeSyncBase const& other) const SYMBOL_VISIBLE;
49 bool operator!=(SystimeSyncBase const& other) const SYMBOL_VISIBLE;
51 GENPYBIND(stringstream)
52 friend std::ostream& operator<<(std::ostream& os, SystimeSyncBase const& config) SYMBOL_VISIBLE;
54 static size_t constexpr config_size_in_words GENPYBIND(hidden) = 2;
55 template <typename AddressT>
56 static std::array<AddressT, config_size_in_words> addresses(coordinate_type const& word)
57 SYMBOL_VISIBLE GENPYBIND(hidden);
58 template <typename WordT>
59 std::array<WordT, config_size_in_words> encode() const SYMBOL_VISIBLE GENPYBIND(hidden);
60 template <typename WordT>
61 void decode(std::array<WordT, config_size_in_words> const& data) SYMBOL_VISIBLE
65 friend class cereal::access;
66 template <class Archive>
67 void serialize(Archive& ar, std::uint32_t const version) SYMBOL_VISIBLE;
73 EXTERN_INSTANTIATE_CEREAL_SERIALIZE(SystimeSyncBase)
79 struct BackendContainerTrait<SystimeSyncBase>
80 : public BackendContainerBase<
82 fisch::vx::word_access_type::Omnibus,
83 fisch::vx::word_access_type::OmnibusChipOverJTAG>
95 class GENPYBIND(visible) SystimeSync
98 typedef halco::hicann_dls::vx::SystimeSyncOnFPGA coordinate_type;
99 typedef std::true_type is_leaf_node;
101 SystimeSync(bool do_sync = true) SYMBOL_VISIBLE;
108 GENPYBIND(getter_for(do_sync))
109 bool get_do_sync() const SYMBOL_VISIBLE;
116 GENPYBIND(setter_for(do_sync))
117 void set_do_sync(bool value) SYMBOL_VISIBLE;
119 GENPYBIND(stringstream)
120 friend std::ostream& operator<<(std::ostream& os, SystimeSync const& systime_sync)
123 bool operator==(SystimeSync const& other) const SYMBOL_VISIBLE;
124 bool operator!=(SystimeSync const& other) const SYMBOL_VISIBLE;
126 static size_t constexpr read_config_size_in_words GENPYBIND(hidden) = 0;
127 static size_t constexpr write_config_size_in_words GENPYBIND(hidden) = 1;
128 static std::array<coordinate_type, read_config_size_in_words> read_addresses(
129 coordinate_type const& word) SYMBOL_VISIBLE GENPYBIND(hidden) SYMBOL_VISIBLE;
130 static std::array<coordinate_type, write_config_size_in_words> write_addresses(
131 coordinate_type const& word) SYMBOL_VISIBLE GENPYBIND(hidden) SYMBOL_VISIBLE;
132 std::array<fisch::vx::word_access_type::SystimeSync, write_config_size_in_words> encode() const
133 SYMBOL_VISIBLE GENPYBIND(hidden) SYMBOL_VISIBLE;
135 std::array<fisch::vx::word_access_type::SystimeSync, read_config_size_in_words> const& data)
136 SYMBOL_VISIBLE GENPYBIND(hidden);
141 friend class cereal::access;
142 template <class Archive>
143 void serialize(Archive& ar, std::uint32_t const version);
146 EXTERN_INSTANTIATE_CEREAL_SERIALIZE(SystimeSync)
151 struct BackendContainerTrait<SystimeSync>
152 : public BackendContainerBase<SystimeSync, fisch::vx::word_access_type::SystimeSync>
155 } // namespace detail
159 } // namespace haldls
163 HALCO_GEOMETRY_HASH_CLASS(haldls::vx::SystimeSyncBase::Value)
Container for configuring the initial counter value of the systime counter in the chip and in the FPG...
std::true_type is_leaf_node
halco::hicann_dls::vx::SystimeSyncBaseOnDLS coordinate_type
#define GENPYBIND_TAG_HALDLS_VX