34 #include <unordered_map>
86 static std::unique_ptr<LUTComponent>
create(std::unordered_map<std::string, LUTOutputConfig> configs = {});
192 explicit LUTComponent(std::unordered_map<std::string, LUTOutputConfig> configs);
195 std::unordered_map<std::string, LUTOutputConfig> m_output_pin_configs;
const LUTOutputConfig * get_output_pin_config(const std::string &pin_name) const
const std::unordered_map< std::string, LUTOutputConfig > & get_output_pin_configs() const
static std::unique_ptr< LUTComponent > create(std::unordered_map< std::string, LUTOutputConfig > configs={})
Result< std::string > get_init_string(const Gate *gate, const std::string &pin_name) const
Result< std::monostate > set_init_string(Gate *gate, const std::string &pin_name, const std::string &hex) const
static Result< std::string > extract_init_slice(const std::string &full_hex, u32 bit_offset, u32 bit_count)
ComponentType get_type() const override
std::vector< GateTypeComponent * > get_components(const std::function< bool(const GateTypeComponent *)> &filter=nullptr) const override
static Result< std::string > splice_init_slice(const std::string &full_hex, const std::string &slice_hex, u32 bit_offset, u32 bit_count)
static bool is_class_of(const GateTypeComponent *component)
LUTOutputConfig(std::string init_identifier, u32 bit_offset, u32 bit_count, bool is_ascending, std::vector< std::string > input_pins)
std::vector< std::string > input_pins
std::string init_identifier