sim: raise an exception on add_clock
conflict with comb driver.
This commit is contained in:
parent
66ad0a207e
commit
f5a8c07d54
|
@ -616,6 +616,10 @@ class PySimEngine(BaseEngine):
|
|||
testbench.reset()
|
||||
|
||||
def add_clock_process(self, clock, *, phase, period):
|
||||
slot = self.state.get_signal(clock)
|
||||
if self.state.slots[slot].is_comb:
|
||||
raise DriverConflict("Clock signal is already driven by combinational logic")
|
||||
|
||||
self._processes.add(PyClockProcess(self._state, clock,
|
||||
phase=phase, period=period))
|
||||
|
||||
|
|
|
@ -1497,6 +1497,15 @@ class SimulatorRegressionTestCase(FHDLTestCase):
|
|||
sim.add_testbench(testbench)
|
||||
sim.run()
|
||||
|
||||
def test_comb_clock_conflict(self):
|
||||
c = Signal()
|
||||
m = Module()
|
||||
m.d.comb += ClockSignal().eq(c)
|
||||
sim = Simulator(m)
|
||||
with self.assertRaisesRegex(DriverConflict,
|
||||
r"^Clock signal is already driven by combinational logic$"):
|
||||
sim.add_clock(1e-6)
|
||||
|
||||
def test_sample(self):
|
||||
m = Module()
|
||||
m.domains.sync = cd_sync = ClockDomain()
|
||||
|
|
Loading…
Reference in a new issue