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

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

Inheritance diagram for hal::SimulationEngineEventDriven:
Inheritance graph
Collaboration diagram for hal::SimulationEngineEventDriven:
Collaboration graph

Public Member Functions

 SimulationEngineEventDriven (const std::string &nam)
 
virtual bool inputEvent (const SimulationInputNetEvent &netEv)=0
 
virtual std::vector< WaveEventget_simulation_events (u32 netId) const
 
- Public Member Functions inherited from hal::SimulationEngine
 SimulationEngine (const std::string &nam)
 
virtual ~SimulationEngine ()
 
std::string name () const
 
State state () const
 
int get_state () const
 
std::string get_working_directory () const
 
void set_working_directory (const std::string &workDir)
 
bool clock_events_required () const
 
bool can_share_memory () const
 
bool install_saleae_parser (std::string dirname) const
 
virtual void setResultFilename (const std::string filename)
 
std::string get_result_filename () const
 
virtual bool finalize ()
 
virtual void failed ()
 
virtual void set_engine_property (const std::string &key, const std::string &value)
 
virtual std::string get_engine_property (const std::string &key)
 
virtual const std::unordered_map< std::string, std::string > & get_engine_properties () const
 
virtual SimulationInputget_simulation_input () const
 

Additional Inherited Members

- Public Types inherited from hal::SimulationEngine
enum  State { Failed = -1 , Done = 0 , Running = 1 , Preparing = 2 }
 
- Protected Attributes inherited from hal::SimulationEngine
bool mRequireClockEvents
 
bool mCanShareMemory
 
std::string mResultFilename
 
State mState
 
std::unordered_map< std::string, std::string > mProperties
 
SimulationInputmSimulationInput
 
std::string mWorkDir
 

Detailed Description

The base class for simulation engines that run inside HAL and produce their events directly.

Definition at line 228 of file simulation_engine.h.

Constructor & Destructor Documentation

◆ SimulationEngineEventDriven()

hal::SimulationEngineEventDriven::SimulationEngineEventDriven ( const std::string &  nam)

Definition at line 79 of file simulation_engine.cpp.

References hal::SimulationEngine::mCanShareMemory.

Member Function Documentation

◆ get_simulation_events()

std::vector< WaveEvent > hal::SimulationEngineEventDriven::get_simulation_events ( u32  netId) const
virtual

Get vector of simulated events for net

Parameters
[in]netId- The net for which events where simulated
Returns
Vector of events

Reimplemented in hal::NetlistSimulator.

Definition at line 84 of file simulation_engine.cpp.

◆ inputEvent()

virtual bool hal::SimulationEngineEventDriven::inputEvent ( const SimulationInputNetEvent netEv)
pure virtual

Must be implemented by derived class

Passes an event to engine to trigger simulation

Parameters
[in]netEvinput event asigning input values (0,1,X,Z) for nets and providing number of cycles to simulate
Returns
true if event was handled successfully, false otherwise

Implemented in hal::NetlistSimulator.

Referenced by hal::SimulationThread::run().


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