add Elaboratable
[nmigen-type-annotations.git] / nmigen / hdl / ir.pyi
index 6ae482f7a96856fe0b7576c54d304ee616439183..e2321ccda3c3173b562bcd844d7f3f08e0d7b81c 100644 (file)
@@ -2,9 +2,16 @@ from typing import Optional, Generator, Any, Tuple, Iterable, Union
 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):