def __init__(self, val=None): """ Construct a signal. val -- initial value """ self._init = deepcopy(val) self._val = deepcopy(val) self._next = deepcopy(val) self._min = self._max = None self._name = self._driven = None self._read = self._used = False self._inList = False self._nrbits = 0 self._numeric = True self._printVcd = self._printVcdStr if isinstance(val, bool): self._type = bool self._setNextVal = self._setNextBool self._printVcd = self._printVcdBit self._nrbits = 1 elif isinstance(val, integer_types): self._type = integer_types self._setNextVal = self._setNextInt elif isinstance(val, fixbv): self._type = fixbv if val._val is None: raise ValueError("fixbv has not been initialized correctly") self._W = val._W self._nrbits = val._nrbits self._setNextVal = self._setNextFixbv if self._nrbits: self._printVcd = self._printVcdVec else: self._printVcd = self._printVcdHex elif isinstance(val, intbv): self._type = intbv self._min = val._min self._max = val._max self._nrbits = val._nrbits self._setNextVal = self._setNextIntbv if self._nrbits: self._printVcd = self._printVcdVec else: self._printVcd = self._printVcdHex else: self._type = type(val) if isinstance(val, EnumItemType): self._setNextVal = self._setNextNonmutable else: self._setNextVal = self._setNextMutable if hasattr(val, '_nrbits'): self._nrbits = val._nrbits self._eventWaiters = _WaiterList() self._posedgeWaiters = _PosedgeWaiterList(self) self._negedgeWaiters = _NegedgeWaiterList(self) self._code = "" self._slicesigs = [] self._tracing = 0 _signals.append(self)
def __init__(self, val=None): """ Construct a signal. val -- initial value """ self._init = deepcopy(val) self._val = deepcopy(val) self._next = deepcopy(val) self._min = self._max = None self._name = self._read = self._driven = None self._used = False self._inList = False self._nrbits = 0 self._numeric = True self._printVcd = self._printVcdStr if isinstance(val, bool): self._type = bool self._setNextVal = self._setNextBool self._printVcd = self._printVcdBit self._nrbits = 1 elif isinstance(val, integer_types): self._type = integer_types self._setNextVal = self._setNextInt elif isinstance(val, intbv): self._type = intbv self._min = val._min self._max = val._max self._nrbits = val._nrbits self._setNextVal = self._setNextIntbv if self._nrbits: self._printVcd = self._printVcdVec else: self._printVcd = self._printVcdHex else: self._type = type(val) if isinstance(val, EnumItemType): self._setNextVal = self._setNextNonmutable else: self._setNextVal = self._setNextMutable if hasattr(val, '_nrbits'): self._nrbits = val._nrbits self._eventWaiters = _WaiterList() self._posedgeWaiters = _PosedgeWaiterList(self) self._negedgeWaiters = _NegedgeWaiterList(self) self._code = "" self._slicesigs = [] self._tracing = 0 _signals.append(self)
def __init__(self, val=None): """ Construct a signal. val -- initial value """ self._next = self._val = self._init = copy(val) self._min = self._max = None self._name = self._read = self._driven = None self._used = False self._inList = False self._nrbits = 0 self._printVcd = self._printVcdStr if isinstance(val, bool): self._type = bool self._setNextVal = self._setNextBool self._printVcd = self._printVcdBit self._nrbits = 1 elif isinstance(val, (int, long)): self._type = (int, long) self._setNextVal = self._setNextInt elif isinstance(val, intbv): self._type = intbv self._min = val._min self._max = val._max self._nrbits = val._nrbits self._setNextVal = self._setNextIntbv if self._nrbits: self._printVcd = self._printVcdVec else: self._printVcd = self._printVcdHex elif val is None: self._type = None self._setNextVal = self._setNext else: self._type = type(val) self._setNextVal = self._setNextType if hasattr(val, '_nrbits'): self._nrbits = val._nrbits self._eventWaiters = _WaiterList() self._posedgeWaiters = _PosedgeWaiterList(self) self._negedgeWaiters = _NegedgeWaiterList(self) self._code = "" self._tracing = 0 _signals.append(self)
def __init__(self, val=None): """ Construct a signal. val -- initial value """ # print('Signal', repr(val)) self._init = deepcopy(val) self._val = deepcopy(val) self._next = deepcopy(val) self._min = self._max = None self._name = self._read = self._driven = None self._namelevel = -1 self._used = False self._inList = False self._nrbits = 0 self._attribute = None self._printVcd = self._printVcdStr self._suppresswarning = False if isinstance(val, bool): self._type = bool self._setNextVal = self._setNextBool self._printVcd = self._printVcdBit self._nrbits = 1 elif isinstance(val, integer_types): self._type = integer_types self._setNextVal = self._setNextInt elif isinstance(val, intbv): self._type = intbv self._min = val._min self._max = val._max self._nrbits = val._nrbits self._setNextVal = self._setNextIntbv if self._nrbits: self._printVcd = self._printVcdVec else: self._printVcd = self._printVcdHex # elif val in ('Open', 'Low', 'High'): # if val == 'Open': # pass # elif val == 'Low': # self._type = bool # self._val = 0 # self._printVcd = self._printVcdBit # self._nrbits = 1 # elif val == 'High': # self._type = bool # self._val = 1 # self._printVcd = self._printVcdBit # self._nrbits = 1 # elif isinstance(val, _Signal): # self._type = val._type # #differentiate between bool, intbv and others # if self._type == bool: # self._setNextVal = self._setNextBool # self._printVcd = self._printVcdBit # self._nrbits = 1 # elif self._type == intbv: # self._min = val._min # self._max = val._max # self._nrbits = val._nrbits # self._setNextVal = self._setNextIntbv # if self._nrbits: # self._printVcd = self._printVcdVec # else: # self._printVcd = self._printVcdHex # else: # # others # raise ValueError( "Don't handle {}".format( val._type )) else: self._type = type(val) if isinstance(val, EnumItemType): self._setNextVal = self._setNextNonmutable # let's print it in hex or decimal? self._printVcd = self._printVcdEnum else: self._setNextVal = self._setNextMutable if hasattr(val, '_nrbits'): self._nrbits = val._nrbits self._eventWaiters = _WaiterList() self._posedgeWaiters = _PosedgeWaiterList(self) self._negedgeWaiters = _NegedgeWaiterList(self) self._code = "" self._slicesigs = [] self._tracing = 0 _signals.append(self)