6 const std::string& data_group,
7 const std::string& addr_group,
11 : m_component(
std::move(component)), m_data_group(data_group), m_addr_group(addr_group), m_clock_bf(clock_bf.clone()), m_enable_bf(enable_bf.clone()), m_is_write(is_write)
22 return component->
get_type() == m_type;
27 if (m_component !=
nullptr)
29 std::vector<GateTypeComponent*> res = m_component->get_components(filter);
32 if (filter(m_component.get()))
34 res.push_back(m_component.get());
39 res.push_back(m_component.get());
55 m_data_group = data_group;
65 m_addr_group = addr_group;
75 m_clock_bf = clock_bf.
clone();
85 m_enable_bf = enable_bf.
clone();
95 m_is_write = is_write;
BooleanFunction clone() const
virtual ComponentType get_type() const =0
void set_enable_function(const BooleanFunction &enable_bf)
void set_address_group(const std::string &addr_group)
void set_write_port(bool is_write)
const std::string & get_data_group() const
ComponentType get_type() const override
std::vector< GateTypeComponent * > get_components(const std::function< bool(const GateTypeComponent *)> &filter=nullptr) const override
const BooleanFunction & get_enable_function() const
bool is_write_port() const
static bool is_class_of(const GateTypeComponent *component)
const BooleanFunction & get_clock_function() const
const std::string & get_address_group() const
void set_clock_function(const BooleanFunction &clock_bf)
void set_data_group(const std::string &data_group)
RAMPortComponent(std::unique_ptr< GateTypeComponent > component, const std::string &data_group, const std::string &addr_group, const BooleanFunction &clock_bf, const BooleanFunction &enable_bf, bool is_write)