[19] (the process of adding the same behavior for all
classes). Heterogeneous crosscutting [19](when concern is
specific to a certain component or family of components) can
be easily implemented with standard OOP (e.g. inheritance).
Additionally the implementation of ADESD’s mechanisms
can be realized using only standard SystemC features.
Previous works focus on tools and languages which were
deployed only for software development (e.g. AspectC++),
which limits its use for the generation of synthesizable
hardware.
V. SCHEDULER IMPLEMENTATION
Our case study is based on a previous implementation
of the EPOS scheduler described by [1], which described
a task scheduling suitable for hardware and software implementation.
However, the original VHDL implementation
was not susceptible to the same mechanisms that render its
software counterpart flexible and reusable. The new Systembased
hardware scheduler is described below.
Figure 2 shows a simplified view of the task scheduling
model. In this design, the task is represented by the
class Thread and defines the execution flow of the task,
implementing the traditional functionality (e.g. suspend and
resume operations). The classes Scheduler and SchedulingCriteria
define the structure that realizes the task scheduling.
Traditional design and implementations of scheduling
algorithms are usually done by a hierarchy of specialized
classes of an abstract scheduler class, which can be further
specialized to bring new scheduling policies to the system.
In order to reduce the complexity of maintenance of the code