hdl.xfrm: preserve allow_reset_less when transforming ResetSignal.

Fixes #400.
This commit is contained in:
Adam Greig 2020-06-06 12:43:25 +01:00 committed by GitHub
parent 2f7c3bf443
commit 02e30b53cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 1 deletions

View file

@ -453,7 +453,8 @@ class DomainRenamer(FragmentTransformer, ValueTransformer, StatementTransformer)
def on_ResetSignal(self, value):
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
def map_domains(self, fragment, new_fragment):

View file

@ -74,6 +74,24 @@ class DomainRenamerTestCase(FHDLTestCase):
"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):
cd_sync = ClockDomain()
cd_pix = ClockDomain()