behavior. A SystemC process (controller method) handles
the input/output protocol (behavior method) and calls the
requested operations, which are each implemented in its
own methods. These methods are overridden in the Scenario
Adapter class. Notice that, although scattered through a
class hierarchy and different methods, all operations (from
the handling of the component’s input/output protocol, to
the triggering of the aspects) executes inside the controller
SC_CTHREAD process. For the proposed scheme to work,
wait() statements are also used to schedule the operations
among the clock cycles, instead of defining explicit state
machines. If the latter is used, it would not be possible to
elegantly implement the structure described in figure 1, since
a state machine would require manual intervention to add the
operation defined by the scenario.
B. ADESD and classic AOP
Several previous works have already discussed aspectoriented
hardware design using SystemC and proposed
solutions based on classic AOP concepts using the well
known AspectC++ language. Indeed, AspectC++ provides
more powerful mechanisms for aspect implementation then
ADESD, especially when it comes to the definition of the
pointcut, however, this additional mechanisms are usually either
unnecessary or can be efficiently replaced. For example,
the aspects implemented in Déharbe and Medeiros [13] (section
III) could be more elegantly implemented using other
standard C++ features like inheritance and templates parameters.
In the scope of ADESD, we can say that scenario
adapters can be used to implement homogeneous crosscutting
behavior. A SystemC process (controller method) handlesthe input/output protocol (behavior method) and calls therequested operations, which are each implemented in itsown methods. These methods are overridden in the ScenarioAdapter class. Notice that, although scattered through aclass hierarchy and different methods, all operations (fromthe handling of the component’s input/output protocol, tothe triggering of the aspects) executes inside the controllerSC_CTHREAD process. For the proposed scheme to work,wait() statements are also used to schedule the operationsamong the clock cycles, instead of defining explicit statemachines. If the latter is used, it would not be possible toelegantly implement the structure described in figure 1, sincea state machine would require manual intervention to add theoperation defined by the scenario.B. ADESD and classic AOPSeveral previous works have already discussed aspectorientedhardware design using SystemC and proposedsolutions based on classic AOP concepts using the wellknown AspectC++ language. Indeed, AspectC++ providesmore powerful mechanisms for aspect implementation thenADESD, especially when it comes to the definition of thepointcut, however, this additional mechanisms are usually eitherunnecessary or can be efficiently replaced. For example,the aspects implemented in Déharbe and Medeiros [13] (sectionIII) could be more elegantly implemented using otherstandard C++ features like inheritance and templates parameters.In the scope of ADESD, we can say that scenarioadapters can be used to implement homogeneous crosscutting
การแปล กรุณารอสักครู่..
