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
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)
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)
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)
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