def create_cbdata(self): cbdata = pyvpi.CbData() cbdata.reason = cons.cbValueChange cbdata.reg = self.reg cbdata.edge = self.edge cbdata.trgobj = self.reg.handle cbdata.callback = NegEdgeFunc cbdata.wait_ev = Wait_Event(Simtime.value) return cbdata
def create_cbdata(self): cbdata = pyvpi.CbData() cbdata.reason = cons.cbReadWriteSynch cbdata.time = pyvpi.Time(cons.vpiSimTime) cbdata.time.low = 0 cbdata.time.high = 0 setAbsTime(cbdata, self.t, self.unit) cbdata.callback = TimerFunc cbdata.wait_ev = Wait_Event(Simtime.value) return cbdata
def run_sim(t, unit=None): cbdata = pyvpi.CbData() cbdata.reason = cons.cbAfterDelay cbdata.callback = _pyinteractive_cb setAbsTime(cbdata, t, unit) pyvpi.registerCb(cbdata) pyvpi.printf("Register runtime = %d\n" % cbdata.time.time) time.sleep(0.1) pyinteractive_lock = sys.modules['__main__'].__dict__['pyinteractive_lock'] pyinteractive_lock.set() time.sleep(0.1)
def test_normal(): """ """ global call pyvpi.printf("error start!\n") cb = pyvpi.CbData(cons.cbValueChange, trgobj=pyvpi.handleByName("test.o", 0), value=pyvpi.Value(cons.vpiBinStrVal)) cb.user_data = 1 def callback(arg): pyvpi.printf("%s : " % arg.time.low) pyvpi.printf("%s : " % arg.value.value) pyvpi.printf("%s\n" % "callback is run...") if cb.user_data == 3: pyvpi.removeCb(arg) cb.user_data += 1 cb.callback = callback pyvpi.registerCb(cb)
#! python import pyvpi import pyvpi_cons as cons import random import unittest import sys import socket import select host = "localhost" port = 9999 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((host,port)) trgobj=pyvpi.handleByName("test.clk",0) cb = pyvpi.CbData(trgobj=trgobj) val = pyvpi.Value() cb.reason = cons.cbValueChange cb.value = val cb.user_data = [s,0] def callback(arg) : cb.user_data[0].send("%s\n" % cb.user_data[1]) infds,outfds,errfds = select.select([cb.user_data[0],],[],[],0) if len(infds) > 0 : buf = cb.user_data[0].recv(8196) print buf cb.user_data[1] += 1 cb.callback = callback cb_h = pyvpi.registerCb(cb)