1 """ Example 5: Making use of PyRTL and Introspection. """
3 from copy
import deepcopy
4 from nmigen
import Module
, Signal
5 from nmigen
.cli
import main
, verilog
8 from pipeline
import SimplePipeline
11 class SimplePipelineExample(SimplePipeline
):
12 """ A very simple pipeline to show how registers are inferred. """
14 def __init__(self
, pipe
):
15 SimplePipeline
.__init
__(self
, pipe
)
16 self
._loopback
= Signal(4)
20 self
.n
= ~self
._loopback
32 self
._pipe
.sync
+= self
._loopback
.eq(self
.n
+ 3)
38 self
.p
= SimplePipelineExample(self
.m
.d
)
40 def get_fragment(self
, platform
=None):
43 if __name__
== "__main__":
44 example
= PipeModule()
49 print(verilog
.convert(example
, ports
=[