Skip to content

Commit

Permalink
hdl.xfrm: preserve allow_reset_less when transforming ResetSignal.
Browse files Browse the repository at this point in the history
Fixes #400.
  • Loading branch information
adamgreig committed Jun 6, 2020
1 parent 2f7c3bf commit 02e30b5
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
3 changes: 2 additions & 1 deletion nmigen/hdl/xfrm.py
Expand Up @@ -453,7 +453,8 @@ def on_ClockSignal(self, value):

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):
Expand Down
18 changes: 18 additions & 0 deletions nmigen/test/test_hdl_xfrm.py
Expand Up @@ -74,6 +74,24 @@ def test_rename_cd(self):
"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()
Expand Down

0 comments on commit 02e30b5

Please sign in to comment.