back.pysim: undriven comb signals should return to reset value.

This commit is contained in:
whitequark 2018-12-14 09:12:38 +00:00
parent b58715c5dc
commit b34c1a9ad0
2 changed files with 8 additions and 2 deletions

View file

@ -326,8 +326,13 @@ class Simulator:
self._sync_signals.update(signals) self._sync_signals.update(signals)
self._domain_signals[domain].update(signals) self._domain_signals[domain].update(signals)
statements = []
for signal in fragment.iter_comb():
statements.append(signal.eq(signal.reset))
statements += fragment.statements
compiler = _StatementCompiler() compiler = _StatementCompiler()
funclet = compiler(fragment.statements) funclet = compiler(statements)
for signal in compiler.sensitivity: for signal in compiler.sensitivity:
self._add_funclet(signal, funclet) self._add_funclet(signal, funclet)
for domain, cd in fragment.domains.items(): for domain, cd in fragment.domains.items():

View file

@ -39,7 +39,8 @@ class Fragment:
yield domain, signal yield domain, signal
def iter_comb(self): def iter_comb(self):
yield from self.drivers[None] if None in self.drivers:
yield from self.drivers[None]
def iter_sync(self): def iter_sync(self):
for domain, signals in self.drivers.items(): for domain, signals in self.drivers.items():