add more code
[nmigen-type-annotations.git] / nmigen / hdl / ir.pyi
1 from typing import Optional, Generator, Any, Tuple, Iterable, Union
2 from .ast import Signal, Statement
3 from .cd import ClockDomain
4 # noinspection PyProtectedMember
5 from .dsl import FSM
6
7 __all__ = ["Fragment", "Instance", "DriverConflict"]
8
9
10 class DriverConflict(UserWarning):
11 pass
12
13
14 # noinspection PyShadowingBuiltins
15 class Fragment:
16 @staticmethod
17 def get(obj: Any, platform: Any) -> 'Fragment':
18 ...
19
20 def add_ports(self, *ports: Any, dir: str) -> None:
21 ...
22
23 def iter_ports(self,
24 dir: Optional[str] = None) -> Generator[Signal, None, None]:
25 ...
26
27 def add_driver(self,
28 signal: Signal, domain: Optional[str] = None) -> None:
29 ...
30
31 def iter_drivers(self) -> Generator[Tuple[Optional[str], Signal],
32 None, None]:
33 ...
34
35 def iter_comb(self) -> Generator[Signal, None, None]:
36 ...
37
38 def iter_sync(self) -> Generator[Tuple[str, Signal], None, None]:
39 ...
40
41 def iter_signals(self) -> Iterable[Signal]:
42 ...
43
44 def add_domains(self,
45 *domains: Union[Iterable[ClockDomain],
46 ClockDomain]) -> None:
47 ...
48
49 def iter_domains(self) -> Generator[str, None, None]:
50 ...
51
52 def add_statements(self,
53 *stmts: Union[Iterable[Statement],
54 Statement]) -> None:
55 ...
56
57 def add_subfragment(self,
58 subfragment: 'Fragment',
59 name: Optional[str] = None) -> None:
60 ...
61
62 def find_subfragment(self, name_or_index: Union[int, str]) -> 'Fragment':
63 ...
64
65 def find_generated(self, *path: Union[int, str]) -> FSM:
66 ...
67
68 def elaborate(self, platform: Any) -> 'Fragment':
69 ...
70
71 def prepare(self,
72 ports: Iterable[Signal] = (),
73 ensure_sync_exists: bool = True) -> 'Fragment':
74 ...
75
76
77 class Instance(Fragment):
78 # noinspection PyShadowingBuiltins
79 def __init__(self, type: str, **kwargs: Any):
80 ...