Example #1
0
 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
Example #2
0
 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
Example #3
0
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)
Example #4
0
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)
Example #5
0
#! 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)