from .ast import Signal, Statement
from .cd import ClockDomain
# noinspection PyProtectedMember
-from .dsl import FSM
+from .dsl import FSM, Module
+from abc import ABCMeta, abstractmethod
-__all__ = ["Fragment", "Instance", "DriverConflict"]
+__all__ = ["Fragment", "Instance", "DriverConflict", "Elaboratable"]
+
+
+class Elaboratable(metaclass=ABCMeta):
+ @abstractmethod
+ def elaborate(self, platform: Any) -> Module:
+ ...
class DriverConflict(UserWarning):