back.pysim: fix behavior of initial cycle for sync processes.

The current behavior was introduced in 65702719, which was a wrong
fix for an issue that was actually fixed in 12e04e4e. This commit
effectively reverts 65702719 and 1782b841.
This commit is contained in:
whitequark 2019-01-22 17:51:44 +00:00
parent 1782b841b2
commit 7b25665fde
3 changed files with 4 additions and 7 deletions

View file

@ -414,13 +414,13 @@ class Simulator:
process = self._check_process(process)
def sync_process():
try:
result = None
cmd = None
while True:
self._process_loc[sync_process] = self._name_process(process)
cmd = process.send(result)
if cmd is None:
cmd = Tick(domain)
result = yield cmd
self._process_loc[sync_process] = self._name_process(process)
cmd = process.send(result)
except StopIteration:
pass
sync_process = sync_process()

View file

@ -72,9 +72,9 @@ class FIFOInterface:
def read(self):
"""Read method for simulation."""
assert (yield self.readable)
yield self.re.eq(1)
yield
assert (yield self.readable)
value = (yield self.dout)
yield self.re.eq(0)
return value

View file

@ -279,9 +279,6 @@ class SimulatorIntegrationTestCase(FHDLTestCase):
with self.assertSimulation(self.m) as sim:
sim.add_clock(1e-6, domain="sync")
def process():
self.assertEqual((yield self.count), 4)
self.assertEqual((yield self.sync.clk), 0)
yield
self.assertEqual((yield self.count), 4)
self.assertEqual((yield self.sync.clk), 1)
yield