示例#1
0
int dpic_line() {
    svScope scope = svGetScope();
    if (!scope) {
	printf("%%Warning: svGetScope failed\n");
	return 0;
    }

#ifdef VERILATOR
    static int didDump = 0;
    if (didDump++ == 0) {
	Verilated::scopesDump();
    }
#endif

    const char* scopenamep = svGetNameFromScope(scope);
    if (!scopenamep) {
	printf("%%Warning: svGetNameFromScope failed\n");
	return 0;
    }
    if (scope != svGetScopeFromName(scopenamep)) {
	printf("%%Warning: svGetScopeFromName repeat failed\n");
	return 0;
    }

    const char* filenamep = "";
    int lineno = 0;
    if (svGetCallerInfo(&filenamep, &lineno)) {
	printf("Call from %s:%d:%s\n", filenamep, lineno, scopenamep);
    } else {
	printf("%%Warning: svGetCallerInfo failed\n");
	return 0;
    }
    return lineno;
}
示例#2
0
void m_uvm_report_dpi( int severity,
		char* id,
		char* message,
		int verbosity,
		char* file,
		int linenum) {
  svScope old_scope = svSetScope(svGetScopeFromName(uvm_package_scope_name));
  // VY  m__uvm_report_dpi(severity, id, message, verbosity, file, linenum);
  svSetScope(old_scope);
 }
static int check_sub(const char* name, int i) {
    svScope scope = svGetScopeFromName(name);
#ifdef TEST_VERBOSE
    printf("svGetScopeFromName(\"%s\") -> %p\n", name, scope);
#endif
    CHECK_RESULT_NNULL (scope);
    svScope prev = svGetScope();
    svScope sout = svSetScope(scope);
    CHECK_RESULT(svScope, sout, prev);
    CHECK_RESULT(svScope, svGetScope(), scope);
    int out = dpix_sub_inst(100*i);
    CHECK_RESULT(int, out, 100*i + i);

    return 0; // OK
}