HAL  v4.5.0-251-g305763a14
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
hal::FFComponent Class Reference

#include <hal_core/netlist/gate_library/gate_type_component/ff_component.h>

Inheritance diagram for hal::FFComponent:
Inheritance graph
Collaboration diagram for hal::FFComponent:
Collaboration graph

Public Member Functions

ComponentType get_type () const override
 
std::vector< GateTypeComponent * > get_components (const std::function< bool(const GateTypeComponent *)> &filter=nullptr) const override
 
BooleanFunction get_next_state_function () const
 
void set_next_state_function (const BooleanFunction &next_state_bf)
 
BooleanFunction get_clock_function () const
 
void set_clock_function (const BooleanFunction &clock_bf)
 
BooleanFunction get_async_reset_function () const
 
void set_async_reset_function (const BooleanFunction &async_reset_bf)
 
BooleanFunction get_async_set_function () const
 
void set_async_set_function (const BooleanFunction &async_set_bf)
 
const std::pair< AsyncSetResetBehavior, AsyncSetResetBehavior > & get_async_set_reset_behavior () const
 
void set_async_set_reset_behavior (const AsyncSetResetBehavior behav_state, const AsyncSetResetBehavior behav_neg_state)
 
- Public Member Functions inherited from hal::GateTypeComponent
virtual ~GateTypeComponent ()=default
 
template<typename T >
T * convert_to ()
 
template<typename T >
const T * convert_to () const
 
GateTypeComponent * get_component (const std::function< bool(const GateTypeComponent *)> &filter=nullptr) const
 
template<typename T >
T * get_component_as (const std::function< bool(const GateTypeComponent *)> &filter=nullptr)
 

Static Public Member Functions

static std::unique_ptr< FFComponent > create (std::unique_ptr< GateTypeComponent > component, const BooleanFunction &next_state_bf, const BooleanFunction &clock_bf)
 
static bool is_class_of (const GateTypeComponent *component)
 

Additional Inherited Members

- Public Types inherited from hal::GateTypeComponent
enum class  ComponentType {
  lut , ff , latch , ram ,
  mac , init , state , ram_port ,
  state_table
}
 

Detailed Description

A gate type component that describes a flip-flop, i.e., its next state, clock, and asynchronous set and reset behavior.

Definition at line 39 of file ff_component.h.

Member Function Documentation

◆ create()

std::unique_ptr< FFComponent > hal::FFComponent::create ( std::unique_ptr< GateTypeComponent >  component,
const BooleanFunction &  next_state_bf,
const BooleanFunction &  clock_bf 
)
static

Create a new FFComponent with given child component and the Boolean functions describing the next state and the clock signal.

Parameters
[in]component- Another component to be added as a child component.
[in]next_state_bf- The function describing the internal state.
[in]clock_bf- The function describing the clock input.
Returns
The FFComponent.

Definition at line 12 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::GateLibraryWizard::setComponents().

◆ get_async_reset_function()

BooleanFunction hal::FFComponent::get_async_reset_function ( ) const

Get the Boolean function describing the asynchronous reset behavior of the flip-flop. Returns an empty function if asynchronous reset is not supported by the flip-flop.

Returns
The function describing the asynchronous reset behavior.

Definition at line 70 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::gate_type_components_init().

◆ get_async_set_function()

BooleanFunction hal::FFComponent::get_async_set_function ( ) const

Get the Boolean function describing the asynchronous set behavior of the flip-flop. Returns an empty function if asynchronous set is not supported by the flip-flop.

Returns
The function describing the asynchronous set behavior.

Definition at line 80 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::gate_type_components_init().

◆ get_async_set_reset_behavior()

const std::pair< AsyncSetResetBehavior, AsyncSetResetBehavior > & hal::FFComponent::get_async_set_reset_behavior ( ) const

Get the behavior of the internal state and the negated internal state when both asynchronous set and reset are active at the same time.

Returns
The values specifying the behavior for the internal and negated internal state.

Definition at line 90 of file ff_component.cpp.

Referenced by hal::gate_type_components_init().

◆ get_clock_function()

BooleanFunction hal::FFComponent::get_clock_function ( ) const

Get the Boolean function describing the clock input of the flip-flop.

Returns
The function describing the clock input.

Definition at line 60 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::gate_type_components_init().

◆ get_components()

std::vector< GateTypeComponent * > hal::FFComponent::get_components ( const std::function< bool(const GateTypeComponent *)> &  filter = nullptr) const
overridevirtual

Get the sub-components of the gate type component. A user-defined filter may be applied to the result vector, but is disabled by default.

Parameters
[in]filter- The user-defined filter function applied to all candidate components.
Returns
The sub-components of the gate type component.

Implements hal::GateTypeComponent.

Definition at line 27 of file ff_component.cpp.

◆ get_next_state_function()

BooleanFunction hal::FFComponent::get_next_state_function ( ) const

Get the Boolean function describing the next internal state of the flip-flop.

Returns
The function describing the internal state.

Definition at line 50 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::gate_type_components_init().

◆ get_type()

FFComponent::ComponentType hal::FFComponent::get_type ( ) const
overridevirtual

Get the type of the gate type component.

Returns
The type of the gate type component.

Implements hal::GateTypeComponent.

Definition at line 17 of file ff_component.cpp.

◆ is_class_of()

bool hal::FFComponent::is_class_of ( const GateTypeComponent *  component)
static

Check whether a component is a FFComponent.

Parameters
[in]component- The component to check.
Returns
true if component is a FFComponent, false otherwise.

Definition at line 22 of file ff_component.cpp.

References hal::GateTypeComponent::get_type().

Referenced by hal::gate_type_components_init(), hal::FlipFlopWizardPage::setData(), and hal::GatelibraryFrameFF::update().

◆ set_async_reset_function()

void hal::FFComponent::set_async_reset_function ( const BooleanFunction &  async_reset_bf)

Set the Boolean function describing the asynchronous reset behavior of the flip-flop.

Parameters
[in]async_reset_bf- The function describing the asynchronous reset behavior.

Definition at line 75 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::gate_type_components_init(), and hal::GateLibraryWizard::setComponents().

◆ set_async_set_function()

void hal::FFComponent::set_async_set_function ( const BooleanFunction &  async_set_bf)

Set the Boolean function describing the asynchronous set behavior of the flip-flop.

Parameters
[in]async_set_bf- The function describing the asynchronous set behavior.

Definition at line 85 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::gate_type_components_init(), and hal::GateLibraryWizard::setComponents().

◆ set_async_set_reset_behavior()

void hal::FFComponent::set_async_set_reset_behavior ( const AsyncSetResetBehavior  behav_state,
const AsyncSetResetBehavior  behav_neg_state 
)

Set the behavior of the internal state and the negated internal state when both asynchronous set and reset are active at the same time.

Parameters
[in]behav_state- The behavior of the internal state.
[in]behav_neg_state- The behavior of the negated internal state.

Definition at line 95 of file ff_component.cpp.

Referenced by hal::gate_type_components_init(), and hal::GateLibraryWizard::setComponents().

◆ set_clock_function()

void hal::FFComponent::set_clock_function ( const BooleanFunction &  clock_bf)

Set the Boolean function describing the clock input of the flip-flop.

Parameters
[in]clock_bf- The function describing the clock input.

Definition at line 65 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::gate_type_components_init().

◆ set_next_state_function()

void hal::FFComponent::set_next_state_function ( const BooleanFunction &  next_state_bf)

Set the Boolean function describing the next internal state of the flip-flop.

Parameters
[in]next_state_bf- The function describing the internal state.

Definition at line 55 of file ff_component.cpp.

References hal::BooleanFunction::clone().

Referenced by hal::gate_type_components_init().


The documentation for this class was generated from the following files: