Пример #1
0
def write_coverage_db(filename, fmt="xml", libucis=None):
    formats = ["xml", "libucis"]
    covergroups = CoverageRegistry.inst().covergroup_types()
    db: UCIS

    if fmt == "xml" or fmt == "mem":
        db = MemFactory.create()
    elif fmt == "libucis":
        if libucis is not None:
            LibFactory.load_ucis_library(libucis)
        db = LibFactory.create(None)
    else:
        raise Exception("Unsupported coverage-report format " + format +
                        ". Supported formats: " + str(formats))

    save_visitor = CoverageSaveVisitor(db)
    now = datetime.now
    save_visitor.save(
        TestData(UCIS_TESTSTATUS_OK, "UCIS:simulator", ucis.ucis_Time()),
        covergroups)

    if fmt == "xml":
        XmlFactory.write(db, filename)
    elif fmt != "mem":
        db.write(filename)

    return db
Пример #2
0
    def get_ucis_report(self):
        covergroups = CoverageRegistry.inst().covergroup_types()
        db = MemFactory.create()
        cov_visitor = CoverageSaveVisitor(db)
        cov_visitor.save(
            TestData(UCIS_TESTSTATUS_OK, "UCIS:simulator",
                     datetime.now().strftime("%Y%m%d%H%M%S")), covergroups)

        return CoverageReportBuilder.build(cov_visitor.db)
Пример #3
0
def get_coverage_report_model() -> CoverageReport:
    """Returns a coverage report model of all covergroups"""
    covergroups = CoverageRegistry.inst().covergroup_types()

    db = MemFactory.create()
    save_visitor = CoverageSaveVisitor(db)
    now = datetime.now
    save_visitor.save(
        TestData(UCIS_TESTSTATUS_OK, "UCIS:simulator", ucis.ucis_Time()),
        covergroups)

    return CoverageReportBuilder.build(db)
Пример #4
0
    def test_simple_dump(self):
        
        @vsc.covergroup
        class my_covergroup(object):
            
            def __init__(self):
                
                self.with_sample(dict(
                    a=vsc.uint8_t(),
                    b=vsc.uint8_t()
                    ))
                
                self.a_cp = vsc.coverpoint(self.a, bins=dict(
                    a_bins =  vsc.bin_array([], [1,8])
                    ))
                
                self.b_cp = vsc.coverpoint(self.b, bins=dict(
                    b_bins = vsc.bin_array([], [1,8])
                    ))

        cg_1 = my_covergroup()
        
        cg_1.sample(1, 2)
        cg_1.sample(2, 1)
        cg_1.sample(4, 2)
        
        cg_2 = my_covergroup()
        
        cg_2.sample(5, 4)
        cg_2.sample(6, 2)
        cg_2.sample(7, 8)

        db = MemFactory.create()
        v = CoverageSaveVisitor(db)

        td = TestData(
            teststatus=UCIS_TESTSTATUS_OK,
            toolcategory="UCIS:simulator",
            date="20200101132000")        
        v.save(td, CoverageRegistry.inst().covergroup_types())
        db.close()

        out = StringIO()        
        writer = XmlWriter()
        writer.write(out, db)

        print("Output:\n" + out.getvalue())        

        xmlin = StringIO(out.getvalue())        
        XmlReader.validate(xmlin)
Пример #5
0
def qsim_save_coverage(ucdb, region, param):
    """
    Contributes Python coverage to Mentor Questa's coverage database
    """

    print("ucdb=" + str(ucdb) + " region=" + str(region) + " param=" +
          str(param))
    # Load the UCIS library and initialize the Python
    # interface
    UcdbFactory.load_ucdb_library("libucdb.so")

    db = UcdbUCIS(db=ucdb)
    covergroups = CoverageRegistry.inst().covergroup_types()
    save_visitor = CoverageSaveVisitor(db)

    save_visitor.save(None, covergroups)

    pass