def createInstance(self, name : str, fileinfo : SourceInfo, weight : int, source : SourceT, type : ScopeTypeT, du_scope : Scope, flags : FlagsT): fileinfo_p = None if fileinfo is None else byref(_UcdbSourceInfo.ctor(fileinfo)) sh = get_lib().ucdb_CreateInstance( self.db, self.obj, str.encode(name), fileinfo_p, weight, source, type, du_scope.obj, flags) if sh is None: print("Error: ucdb_CreateInstance failed: du=" + str(du_scope) + " du.obj=" + str(du_scope.obj)) raise Exception("ucdb_CreateInstance failed") return UcdbScope(self.db, sh)
def createScope(self, name:str, srcinfo:SourceInfo, weight:int, source, type, flags): srcinfo_p = None if srcinfo is None else byref(_UcdbSourceInfo.ctor(srcinfo)) print("createScope: db=" + str(self.db) + " obj=" + str(self.obj) + " name=" + str(name) + " srcinfo_p=" + str(srcinfo_p) + " weight=" + str(weight) + "source=" + hex(source) + " type=" + hex(type) + " flags=" + hex(flags)); sh = get_lib().ucdb_CreateScope( self.db, self.obj, None if name is None else str.encode(name), srcinfo_p, weight, source, type, flags) if sh is None: print("Error: createScope failed: parent=" + str(self.obj)) raise Exception("Failed to create scope") return UcdbScope(self.db, sh)
def createCoverInstance(self, name: str, srcinfo: SourceInfo, weight: int, source) -> 'Covergroup': srcinfo_p = None if srcinfo is None else pointer( _UcdbSourceInfo.ctor(srcinfo)) ci_obj = get_lib().ucdb_CreateScope(self.db, self.obj, str.encode(name), srcinfo_p, weight, source, UCIS_COVERINSTANCE, 0) return UcdbCovergroup(self.db, ci_obj)
def createNextCover(self, name : str, data : CoverData, sourceinfo : SourceInfo) -> int: sourceinfo_p = None if sourceinfo is None else byref(_UcdbSourceInfo.ctor(sourceinfo)) data_p = byref(UcdbCoverData.ctor(data)) index = get_lib().ucdb_CreateNextCover( self.db, self.obj, str.encode(name), data_p, sourceinfo_p) return UcdbCoverIndex(self.db, self.obj, index)
def createCross(self, name: str, srcinfo: SourceInfo, weight: int, source: SourceT, points_l: List['Coverpoint']) -> CoverType: srcinfo_p = None if srcinfo is None else byref( _UcdbSourceInfo.ctor(srcinfo)) points = (c_void_p * len(points_l))() for i, cp in enumerate(points_l): points[i] = cp.obj cr_o = get_lib().ucdb_CreateCross(self.db, self.obj, str.encode(name), srcinfo_p, weight, source, len(points_l), byref(points)) return UcdbCross(self.db, cr_o) raise NotImplementedError()
def createCovergroup(self, name:str, srcinfo:SourceInfo, weight:int, source) -> 'Covergroup': from ucis.ucdb.ucdb_covergroup import UcdbCovergroup srcinfo_p = None if srcinfo is None else pointer(_UcdbSourceInfo.ctor(srcinfo)) cg_obj = get_lib().ucdb_CreateScope( self.db, self.obj, str.encode(name), srcinfo_p, weight, source, UCIS_COVERGROUP, 0) return UcdbCovergroup(self.db, cg_obj)