예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
    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)
예제 #4
0
 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)
예제 #5
0
    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()
예제 #6
0
 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)