Non-Confidential | ![]() | 100965_1180_00_en | ||
| ||||
Home > SystemC Export with Multiple Instantiation > Scheduler API > Scheduler API - about |
This API makes modeling components and systems accessible in different environments, with or without a built-in scheduler. Examples are a SystemC environment or a standalone simulator.
The Fast Models Scheduler API is a C++ interface consisting of a set of abstract base classes. The header file that defines these classes is $PVLIB_HOME/include/fmruntime/sg/SGSchedulerInterfaceForComponents.h. This header file depends on other header files under $PVLIB_HOME/include.
All Scheduler API constructs are in the namespace sg
.
The interface decouples the modeling components from the scheduler implementation. The parts of the Scheduler API that the modeling components use are for the scheduler or scheduler adapter to implement. The parts that the scheduler or scheduler adapter use are for the modeling components to implement.
class SchedulerInterfaceForComponents
class SchedulerThread
createThread()
creates instances of. For example, CT core models use this
class. The scheduler implements it. Threads have co-routine semantics.class SchedulerRunnable
SchedulerThread
class. The modeling
components, which contain the thread functionality, implement it.class ThreadSignal
wait()
and
notify()
but no timing functions. The scheduler implements it.class Timer
createTimer()
creates instances of. The scheduler
implements it.class TimerCallback
Timer
class. The modeling components, which contain the functionality for the timer callback, implement it. Arm
deprecates this class.class SchedulerCallback
addCallback()
(asynchronous callbacks), implement it.class FrequencySource
class FrequencyObserver
FrequencySource
and changes to the frequency value. The scheduler implements
it for objects that have access to a FrequencySource
(Timer
and SchedulerThread
). Arm
deprecates this class.class SchedulerObject
getName()
.