hdl.ir: resolve hierarchy conflicts before creating missing domains.
Otherwise, code such as:
m.submodules.a = (something with cd_sync)
m.submodules.b = (something with cd_sync)
m.d.b_sync += x.eq(y)
causes an assertion failure.
Fixes #304 (again).
This commit is contained in:
parent
7cb3095334
commit
a7be3b480a
2 changed files with 29 additions and 2 deletions
|
|
@ -408,6 +408,22 @@ class FragmentDomainsTestCase(FHDLTestCase):
|
|||
None: SignalSet((ResetSignal("b_sync"),))
|
||||
}))
|
||||
|
||||
def test_domain_conflict_rename_drivers(self):
|
||||
cda = ClockDomain("sync")
|
||||
cdb = ClockDomain("sync")
|
||||
s = Signal()
|
||||
|
||||
fa = Fragment()
|
||||
fa.add_domains(cda)
|
||||
fb = Fragment()
|
||||
fb.add_domains(cdb)
|
||||
f = Fragment()
|
||||
f.add_subfragment(fa, "a")
|
||||
f.add_subfragment(fb, "b")
|
||||
f.add_driver(s, "b_sync")
|
||||
|
||||
f._propagate_domains(lambda name: ClockDomain(name))
|
||||
|
||||
def test_propagate_down(self):
|
||||
cd = ClockDomain()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue