| class Value:
# …
def get(self):
return SimAwaitable(self)
def set(self, value):
return SimAwaitable(self.eq(value))
def changed(self, value=None):
return SimAwaitable(SimTrigger(self, value))
async def wait(self, value):
if (await self.get()) != value:
await self.changed(value)
async def bench_inc_cnt():
# Increment counter on both edges
await Passive()
while True:
await clk.changed()
await cnt.set((await cnt.get()) + 1)
async def bench_await_cnt_4():
await cnt.wait(4)
print('cnt is 4')
await cnt.wait(4)
print('cnt is still 4')
await cnt_4.set(1)
await cnt.changed(4)
print('cnt is 4 again')
await cnt_4.set(0)
|