HAL  v4.5.0-83-g30c8f0afc
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
hal::NetlistSimulatorControllerPlugin Class Reference

#include </home/runner/work/hal/hal/plugins/simulator/netlist_simulator_controller/include/netlist_simulator_controller/plugin_netlist_simulator_controller.h>

Inheritance diagram for hal::NetlistSimulatorControllerPlugin:
Inheritance graph
Collaboration diagram for hal::NetlistSimulatorControllerPlugin:
Collaboration graph

Public Member Functions

std::string get_name () const override
 
std::string get_version () const override
 
std::string get_description () const override
 
void on_unload () override
 
void on_load () override
 
std::unique_ptr< NetlistSimulatorControllercreate_simulator_controller (const std::string &nam=std::string(), const std::string &workdir=std::string()) const
 
std::unique_ptr< NetlistSimulatorControllerrestore_simulator_controller (Netlist *nl, const std::string &filename) const
 
std::shared_ptr< NetlistSimulatorControllersimulator_controller_by_id (u32 id) const
 
- Public Member Functions inherited from hal::BasePluginInterface
 BasePluginInterface ()=default
 
virtual ~BasePluginInterface ()
 
virtual void initialize ()
 
virtual std::set< std::string > get_dependencies () const
 
template<typename... Args>
void log (const Args &... args) const
 
virtual void initialize_logging ()
 
virtual std::vector< AbstractExtensionInterface * > get_extensions () const
 
template<typename T >
T * get_first_extension () const
 
void delete_extension (AbstractExtensionInterface *aeif)
 

Static Public Attributes

static SimulationSettingssSimulationSettings = nullptr
 
static SimulatorSerializersSimulatorSerializer = nullptr
 

Additional Inherited Members

- Protected Attributes inherited from hal::BasePluginInterface
std::vector< AbstractExtensionInterface * > m_extensions
 

Detailed Description

The plugin that provides the simulation controller and the registry of simulation engines.

Definition at line 88 of file plugin_netlist_simulator_controller.h.

Member Function Documentation

◆ create_simulator_controller()

std::unique_ptr< NetlistSimulatorController > hal::NetlistSimulatorControllerPlugin::create_simulator_controller ( const std::string &  nam = std::string(),
const std::string &  workdir = std::string() 
) const

Create a netlist simulator controller instance.

Returns
The simulator instance.

Definition at line 123 of file plugin_netlist_simulator_controller.cpp.

References hal::NetlistSimulatorController::get_working_directory(), hal::NetlistSimulatorController::is_legal_directory_name(), and log_warning.

Referenced by hal::PYBIND11_PLUGIN().

◆ get_description()

std::string hal::NetlistSimulatorControllerPlugin::get_description ( ) const
overridevirtual

Get short description for plugin.

Returns
The short description for the plugin.

Reimplemented from hal::BasePluginInterface.

Definition at line 118 of file plugin_netlist_simulator_controller.cpp.

◆ get_name()

std::string hal::NetlistSimulatorControllerPlugin::get_name ( ) const
overridevirtual

Get the name of the plugin.

Returns
The name of the plugin.

Implements hal::BasePluginInterface.

Definition at line 108 of file plugin_netlist_simulator_controller.cpp.

Referenced by hal::PYBIND11_PLUGIN().

◆ get_version()

std::string hal::NetlistSimulatorControllerPlugin::get_version ( ) const
overridevirtual

Get the version of the plugin.

Returns
The version of the plugin.

Implements hal::BasePluginInterface.

Definition at line 113 of file plugin_netlist_simulator_controller.cpp.

Referenced by hal::PYBIND11_PLUGIN().

◆ on_load()

◆ on_unload()

void hal::NetlistSimulatorControllerPlugin::on_unload ( )
overridevirtual

◆ restore_simulator_controller()

std::unique_ptr< NetlistSimulatorController > hal::NetlistSimulatorControllerPlugin::restore_simulator_controller ( Netlist nl,
const std::string &  filename 
) const

Restore controller with waveform data from previous simulation.

Parameters
[in]nlThe netlist the simulation was performed with.
[in]filenameFull path and filename of 'netlist_simulator_controller.json'.
Returns
The simulator instance.

Definition at line 136 of file plugin_netlist_simulator_controller.cpp.

References hal::NetlistSimulatorController::get_working_directory().

Referenced by hal::PYBIND11_PLUGIN(), and hal::SimulatorSerializer::restore().

◆ simulator_controller_by_id()

std::shared_ptr< NetlistSimulatorController > hal::NetlistSimulatorControllerPlugin::simulator_controller_by_id ( u32  id) const

Share netlist simulator controller instance addressed by id

Parameters
[in]idController-Id
Returns
Shared pointer to simulator

Definition at line 148 of file plugin_netlist_simulator_controller.cpp.

References hal::NetlistSimulatorControllerMap::controller(), hal::NetlistSimulatorControllerMap::instance(), and log_warning.

Referenced by hal::PYBIND11_PLUGIN().

Member Data Documentation

◆ sSimulationSettings

◆ sSimulatorSerializer

SimulatorSerializer * hal::NetlistSimulatorControllerPlugin::sSimulatorSerializer = nullptr
static

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