История изменений
Исправление Virtuos86, (текущая версия) :
gen_before = misc.is_ch_active(dut, report, channel)
помещает инстанс класса (корутину) cocotb.RunningCoroutine
в переменную.
yield gen_after
— вызывает метод send
корутины, передавая в него саму корутину.
def send(self, value):
try:
return self._coro.send(value)
...
raise
except ReturnValue as e:
self.retval = e.retval
Дальше, как видно, корутина (value) передается в изначальный генератор is_ch_active
, вход происходит в точку, где находится первая инструкция yield (yield одновременно может отдавать значение из генератора, и принимать). Эта точка — yield posedge(dut.itfc_clk)
(можно посмотреть:
val = yield posedge(dut.itfc_clk)
if val is not None: print val
).
Дальше доходит до первого raise ReturnValue...
и т.д.
Исходная версия Virtuos86, :
gen_before = misc.is_ch_active(dut, report, channel)
помещает инстанс класса (корутину) cocotb.RunningCoroutine
в переменную.
yield gen_after
— вызывает метод send
корутины, передавая в него саму корутину.
def send(self, value):
try:
return self._coro.send(value)
...
raise
except ReturnValue as e:
self.retval = e.retval
Дальше, как видно, корутина (value) передается в изначальный генератор is_ch_active
, вход происходит в точку, где находится первая инструкция yield (yield одновременно может отдавать значение из генератора, и принимать). Эта точка — yield posedge(dut.itfc_clk)
(можно посмотреть:
val = yield posedge(dut.itfc_clk)
if val is not None: print val[/сщву]
).
Дальше доходит до первого raise ReturnValue...
и т.д.