Abstract class template of a clock tree element that depends on another clock tree element.
A DependentElement clock tree element depends on another clock tree element.
The dependent clock tree element must be of the same type or of a more restrictive type. Restriction requirements (Dependent -> {Source types}): ElementNonBlockingCannotFail -> {ElementNonBlockingCannotFail} ElementNonBlockingMayFail -> {ElementNonBlockingCannotFail} ElementBlocking -> {ElementNonBlockingCannotFail, ElementNonBlockingMayFail}
Class implementations of DependentElement must override the DoEnable function, the DoDisable function can be overridden to disable the dependent clock tree element to save power.
Template argument ElementType can be of class ElementBlocking, ElementNonBlockingCannotFail or ElementNonBlockingMightFail.
Public Member Functions | |
| template<typename SourceType > | |
| constexpr | DependentElement (SourceType &source) |
Create a dependent clock tree element that depends on source. | |
Protected Member Functions | |
| template<typename SourceType > | |
| void | SetSource (SourceType &source) |
| Element & | source () |
Private Member Functions | |
| Status | DoAcquireLocked () final |
| Status | DoReleaseLocked () final |