hdl.xfrm: preserve allow_reset_less when transforming ResetSignal.
Fixes #400.
This commit is contained in:
parent
2f7c3bf443
commit
02e30b53cc
|
@ -453,7 +453,8 @@ class DomainRenamer(FragmentTransformer, ValueTransformer, StatementTransformer)
|
||||||
|
|
||||||
def on_ResetSignal(self, value):
|
def on_ResetSignal(self, value):
|
||||||
if value.domain in self.domain_map:
|
if value.domain in self.domain_map:
|
||||||
return ResetSignal(self.domain_map[value.domain])
|
return ResetSignal(self.domain_map[value.domain],
|
||||||
|
allow_reset_less=value.allow_reset_less)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def map_domains(self, fragment, new_fragment):
|
def map_domains(self, fragment, new_fragment):
|
||||||
|
|
|
@ -74,6 +74,24 @@ class DomainRenamerTestCase(FHDLTestCase):
|
||||||
"pix": cd_pix,
|
"pix": cd_pix,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def test_rename_cd_preserves_allow_reset_less(self):
|
||||||
|
cd_pix = ClockDomain(reset_less=True)
|
||||||
|
|
||||||
|
f = Fragment()
|
||||||
|
f.add_domains(cd_pix)
|
||||||
|
f.add_statements(
|
||||||
|
self.s1.eq(ResetSignal(allow_reset_less=True)),
|
||||||
|
)
|
||||||
|
|
||||||
|
f = DomainRenamer("pix")(f)
|
||||||
|
f = DomainLowerer()(f)
|
||||||
|
self.assertRepr(f.statements, """
|
||||||
|
(
|
||||||
|
(eq (sig s1) (const 1'd0))
|
||||||
|
)
|
||||||
|
""")
|
||||||
|
|
||||||
|
|
||||||
def test_rename_cd_subfragment(self):
|
def test_rename_cd_subfragment(self):
|
||||||
cd_sync = ClockDomain()
|
cd_sync = ClockDomain()
|
||||||
cd_pix = ClockDomain()
|
cd_pix = ClockDomain()
|
||||||
|
|
Loading…
Reference in a new issue