7 #include "hate/visibility.h"
11 class OmnibusChipOverJTAG;
41 struct GENPYBIND(inline_base("*
")) ReadDelay
42 : public halco::common::detail::
43 RantWrapper<ReadDelay, uint_fast16_t, hate::math::pow(2, 8) - 1, 0>
45 constexpr explicit ReadDelay(uintmax_t const val = 120) GENPYBIND(implicit_conversion) :
53 struct GENPYBIND(inline_base("*
")) AddressSetupTime
54 : public halco::common::detail::
55 RantWrapper<AddressSetupTime, uint_fast16_t, hate::math::pow(2, 4) - 1, 0>
57 constexpr explicit AddressSetupTime(uintmax_t const val = 11)
58 GENPYBIND(implicit_conversion) :
66 struct GENPYBIND(inline_base("*
")) EnableWidth
67 : public halco::common::detail::
68 RantWrapper<EnableWidth, uint_fast16_t, hate::math::pow(2, 4) - 1, 0>
70 constexpr explicit EnableWidth(uintmax_t const val = 11) GENPYBIND(implicit_conversion) :
76 SRAMTimingConfig() SYMBOL_VISIBLE;
78 GENPYBIND(getter_for(read_delay))
79 ReadDelay get_read_delay() const SYMBOL_VISIBLE;
80 GENPYBIND(setter_for(read_delay))
81 void set_read_delay(ReadDelay value) SYMBOL_VISIBLE;
83 GENPYBIND(getter_for(address_setup_time))
84 AddressSetupTime get_address_setup_time() const SYMBOL_VISIBLE;
85 GENPYBIND(setter_for(address_setup_time))
86 void set_address_setup_time(AddressSetupTime value) SYMBOL_VISIBLE;
88 GENPYBIND(getter_for(enable_width))
89 EnableWidth get_enable_width() const SYMBOL_VISIBLE;
90 GENPYBIND(setter_for(enable_width))
91 void set_enable_width(EnableWidth value) SYMBOL_VISIBLE;
93 bool operator==(SRAMTimingConfig const& other) const GENPYBIND(hidden) SYMBOL_VISIBLE;
94 bool operator!=(SRAMTimingConfig const& other) const GENPYBIND(hidden) SYMBOL_VISIBLE;
96 static size_t constexpr config_size_in_words GENPYBIND(hidden) = 2;
97 template <typename WordT>
98 std::array<WordT, config_size_in_words> encode() const SYMBOL_VISIBLE GENPYBIND(hidden);
99 template <typename WordT>
100 void decode(std::array<WordT, config_size_in_words> const& data) SYMBOL_VISIBLE
104 friend class cereal::access;
105 template <typename Archive>
106 void serialize(Archive& ar, std::uint32_t) SYMBOL_VISIBLE;
108 ReadDelay m_read_delay;
109 AddressSetupTime m_address_setup_time;
110 EnableWidth m_enable_width;
113 } // namespace detail
115 EXTERN_INSTANTIATE_CEREAL_SERIALIZE(detail::SRAMTimingConfig)
118 } // namespace haldls
Configuration of full-custom SRAM timing.
std::true_type is_leaf_node
#define GENPYBIND_TAG_HALDLS_VX