sim.core: warn when driving a clock domain not in the simulation.
Closes #566.
This commit is contained in:
parent
ac13a5b3c9
commit
7e2b72826f
|
@ -1,4 +1,5 @@
|
|||
import inspect
|
||||
import warnings
|
||||
|
||||
from .._utils import deprecated
|
||||
from ..hdl.cd import *
|
||||
|
@ -112,7 +113,13 @@ class Simulator:
|
|||
in this case.
|
||||
"""
|
||||
if isinstance(domain, ClockDomain):
|
||||
pass
|
||||
if (domain.name in self._fragment.domains and
|
||||
domain is not self._fragment.domains[domain.name]):
|
||||
warnings.warn("Adding a clock process that drives a clock domain object "
|
||||
"named {!r}, which is distinct from an identically named domain "
|
||||
"in the simulated design"
|
||||
.format(domain.name),
|
||||
UserWarning, stacklevel=2)
|
||||
elif domain in self._fragment.domains:
|
||||
domain = self._fragment.domains[domain]
|
||||
elif if_exists:
|
||||
|
|
|
@ -851,3 +851,12 @@ class SimulatorRegressionTestCase(FHDLTestCase):
|
|||
r"^Value defined at .+?/test_sim\.py:\d+ is 4294967327 bits wide, "
|
||||
r"which is unlikely to simulate in reasonable time$"):
|
||||
Simulator(dut)
|
||||
|
||||
def test_bug_566(self):
|
||||
dut = Module()
|
||||
dut.d.sync += Signal().eq(0)
|
||||
sim = Simulator(dut)
|
||||
with self.assertWarnsRegex(UserWarning,
|
||||
r"^Adding a clock process that drives a clock domain object named 'sync', "
|
||||
r"which is distinct from an identically named domain in the simulated design$"):
|
||||
sim.add_clock(1e-6, domain=ClockDomain("sync"))
|
||||
|
|
Loading…
Reference in a new issue