summaryrefslogtreecommitdiff
path: root/archive/testing/async_reset.py
diff options
context:
space:
mode:
Diffstat (limited to 'archive/testing/async_reset.py')
-rw-r--r--archive/testing/async_reset.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/archive/testing/async_reset.py b/archive/testing/async_reset.py
new file mode 100644
index 0000000..4760df7
--- /dev/null
+++ b/archive/testing/async_reset.py
@@ -0,0 +1,21 @@
+from amaranth import *
+from amaranth.cli import main
+
+
+class ClockDivisor(Elaboratable):
+ def __init__(self, factor):
+ self.v = Signal(factor)
+ self.o = Signal()
+
+ def elaborate(self, platform):
+ m = Module()
+ m.d.sync += self.v.eq(self.v + 1)
+ m.d.comb += self.o.eq(self.v[-1])
+ return m
+
+
+if __name__ == "__main__":
+ m = Module()
+ m.domains.sync = sync = ClockDomain("sync", async_reset=True)
+ m.submodules.ctr = ctr = ClockDivisor(factor=16)
+ main(m, ports=[ctr.o, sync.clk]) \ No newline at end of file