Change clockworks module, because clock domain names are not propagated up the hierarchy anymore (RFC59).

This commit is contained in:
Bastian Löher
2024-07-21 00:56:43 +02:00
parent 06ceaf0862
commit 4084affd5d
19 changed files with 24 additions and 19 deletions

View File

@@ -19,7 +19,7 @@ class SOC(wiring.Component):
count = Signal(5)
# Instantiate the clockwork with a divider of 2^21
cw = Clockworks(slow=21)
cw = Clockworks(m, slow=21)
# Add the clockwork to the top module. If this is not done,
# the logic will not be instantiated.

View File

@@ -12,7 +12,7 @@ class SOC(Elaboratable):
m = Module()
cw = Clockworks(slow=21)
cw = Clockworks(m, slow=21)
m.submodules.cw = cw
sequence = [

View File

@@ -16,7 +16,7 @@ class SOC(Elaboratable):
m = Module()
cw = Clockworks(slow=21)
cw = Clockworks(m, slow=21)
m.submodules.cw = cw
# Instruction sequence to be executed

View File

@@ -16,7 +16,7 @@ class SOC(Elaboratable):
m = Module()
cw = Clockworks(slow=21, sim_slow=10)
cw = Clockworks(m, slow=21, sim_slow=10)
m.submodules.cw = cw
# Instruction sequence to be executed

View File

@@ -16,7 +16,7 @@ class SOC(Elaboratable):
m = Module()
cw = Clockworks(slow=21, sim_slow=10)
cw = Clockworks(m, slow=21, sim_slow=10)
m.submodules.cw = cw
# Instruction sequence to be executed

View File

@@ -38,7 +38,7 @@ class SOC(Elaboratable):
m = Module()
cw = Clockworks(slow=21, sim_slow=10)
cw = Clockworks(m, slow=21, sim_slow=10)
m.submodules.cw = cw
# Program counter

View File

@@ -30,7 +30,7 @@ class SOC(Elaboratable):
m = Module()
cw = Clockworks(slow=21, sim_slow=10)
cw = Clockworks(m, slow=21, sim_slow=10)
m.submodules.cw = cw
# Program counter

View File

@@ -31,7 +31,7 @@ class SOC(Elaboratable):
m = Module()
cw = Clockworks(slow=21, sim_slow=10)
cw = Clockworks(m, slow=21, sim_slow=10)
m.submodules.cw = cw
# Program counter

View File

@@ -28,7 +28,7 @@ class SOC(Elaboratable):
m = Module()
cw = Clockworks(slow=21, sim_slow=10)
cw = Clockworks(m, slow=21, sim_slow=10)
m.submodules.cw = cw
# Program counter

View File

@@ -17,7 +17,7 @@ class SOC(Elaboratable):
def elaborate(self, platform):
m = Module()
cw = Clockworks(slow=19, sim_slow=10)
cw = Clockworks(m, slow=19, sim_slow=10)
memory = DomainRenamer("slow")(Memory())
cpu = DomainRenamer("slow")(CPU())
m.submodules.cw = cw

View File

@@ -17,7 +17,7 @@ class SOC(Elaboratable):
def elaborate(self, platform):
m = Module()
cw = Clockworks(slow=19, sim_slow=10)
cw = Clockworks(m, slow=19, sim_slow=10)
memory = DomainRenamer("slow")(Memory())
cpu = DomainRenamer("slow")(CPU())
m.submodules.cw = cw

View File

@@ -17,7 +17,7 @@ class SOC(Elaboratable):
def elaborate(self, platform):
m = Module()
cw = Clockworks()
cw = Clockworks(m)
memory = DomainRenamer("slow")(Memory())
cpu = DomainRenamer("slow")(CPU())
m.submodules.cw = cw

View File

@@ -17,7 +17,7 @@ class SOC(Elaboratable):
def elaborate(self, platform):
m = Module()
cw = Clockworks()
cw = Clockworks(m)
memory = DomainRenamer("slow")(Memory())
cpu = DomainRenamer("slow")(CPU())
m.submodules.cw = cw

View File

@@ -17,7 +17,7 @@ class SOC(Elaboratable):
def elaborate(self, platform):
m = Module()
cw = Clockworks()
cw = Clockworks(m)
memory = DomainRenamer("slow")(Memory())
cpu = DomainRenamer("slow")(CPU())
m.submodules.cw = cw

View File

@@ -17,7 +17,7 @@ class SOC(Elaboratable):
def elaborate(self, platform):
m = Module()
cw = Clockworks()
cw = Clockworks(m)
memory = DomainRenamer("slow")(Memory())
cpu = DomainRenamer("slow")(CPU())
m.submodules.cw = cw

View File

@@ -22,7 +22,7 @@ class SOC(Elaboratable):
print("clock frequency = {}".format(clk_frequency))
m = Module()
cw = Clockworks()
cw = Clockworks(m)
memory = DomainRenamer("slow")(Mem())
cpu = DomainRenamer("slow")(CPU())
uart_tx = DomainRenamer("slow")(

View File

@@ -22,7 +22,7 @@ class SOC(Elaboratable):
print("clock frequency = {}".format(clk_frequency))
m = Module()
cw = Clockworks()
cw = Clockworks(m)
memory = DomainRenamer("slow")(Mem())
cpu = DomainRenamer("slow")(CPU())
uart_tx = DomainRenamer("slow")(

View File

@@ -4,11 +4,16 @@ from amaranth.lib.wiring import In, Out
# This module handles clock division and provides a new 'slow' clock domain
clockworks_domain_name = "slow"
class Clockworks(wiring.Component):
o_slow: Out(1)
def __init__(self, slow=0, sim_slow=None):
def __init__(self, module, slow=0, sim_slow=None):
# Since amaranth 0.6 clock domains do not propagate upwards (RFC59)
module.domains += ClockDomain(clockworks_domain_name)
# Since the module provides a new clock domain, which is accessible
# via the top level module, we don't need to explicitly provide the

View File

@@ -21,7 +21,7 @@ class SOC(Elaboratable):
simulation = platform is None
m = Module()
cw = Clockworks()
cw = Clockworks(m)
memory = DomainRenamer("slow")(Mem(simulation=simulation))
cpu = DomainRenamer("slow")(CPU())
uart_tx = DomainRenamer("slow")(