back.pysim: undriven comb signals should return to reset value.
This commit is contained in:
parent
b58715c5dc
commit
b34c1a9ad0
|
@ -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():
|
||||||
|
|
|
@ -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():
|
||||||
|
|
Loading…
Reference in a new issue