/*************************************************************************** * sv_vpi_user.h * * Accellera SystemVerilog VPI extensions. * * This file contains the constant definitions, structure definitions, and * routine declarations used by the Verilog PLI procedural interface VPI * access routines. * **************************************************************************/ #ifndef SV_VPI_USER_H #define SV_VPI_USER_H #include #ifdef __cplusplus extern "C" { #endif /****************************** OBJECT TYPES ******************************/ #define vpiPackage #define vpiInterface #define vpiProgram #define vpiInterfaceArray #define vpiProgramArray #define vpiTypespec #define vpiModport #define vpiInterfaceTfDecl #define vpiRefObj #define vpiVarBitVar vpiRegBit #define vpiLongIntVar #define vpiShortIntVar #define vpiIntVar #define vpiShortRealVar #define vpiByteVar #define vpiClassVar #define vpiStringVar #define vpiEnumVar #define vpiStructVar #define vpiUnionVar #define vpiBitVar #define vpiLogicVar vpiRegVar #define vpiArrayVar vpiRegArray #define vpiLongIntTypespec #define vpiShortRealTypespec #define vpiByteTypespec #define vpiShortIntTypespec #define vpiIntTypespec #define vpiClassTypespec #define vpiStringTypespec #define vpiVarBitTypespec #define vpiEnumTypespec #define vpiEnumConst #define vpiIntegerTypespec #define vpiTimeTypespec #define vpiRealTypespec #define vpiStructTypespec #define vpiUnionTypespec #define vpiBitTypespec #define vpiLogicTypespec #define vpiArrayTypespec #define vpiVoidTypespec #define vpiMemberTypespec #define vpiClockingBlock #define vpiClockingIODecl #define vpiClassDefn #define vpiConstraint #define vpiConstraintOrdering #define vpiConstraintDist #define vpiDistItem #define vpiAliasStmt #define vpiThread #define vpiMethodFuncCall #define vpiMethodTaskCall #define vpiAssertProperty #define vpiAssumeProperty #define vpiCoverProperty #define vpiDisableCondition #define vpiClockingEvent #define vpiPropertyDecl #define vpiPropertySpec #define vpiPropertyExpr #define vpiMulticlockSequenceExpr #define vpiClockedSeq #define vpiPropertyInst #define vpiSequenceDecl #define vpiSequenceSpec #define vpiActualArgExpr #define vpiSequenceInst #define vpiImmediateAssert #define vpiReturn #define vpiAnyPattern #define vpiTaggedPattern #define vpiStructPattern #define vpiDoWhile #define vpiOrderedWait #define vpiWaitFork #define vpiDisableFork #define vpiExpectStmt #define vpiForeachStmt #define vpiFinal /******************************** METHODS *********************************/ /************* methods used to traverse 1 to 1 relationships **************/ #define vpiInterfaceConn #define vpiTypedefAlias #define vpiBaseTypespec #define vpiElemTypespec #define vpiDefInputSkew #define vpiDefOutputSkew #define vpiSkew #define vpiBaseClass #define vpiActualDefn #define vpiLhs #define vpiRhs #define vpiOrigin #define vpiPrefix #define vpiWith #define vpiSuccessStmt #define vpiFailStmt #define vpiProperty /************ methods used to traverse 1 to many relationships ************/ #define vpiTypedef #define vpiDefaultClocking #define vpiInstance #define vpiImport #define vpiDerivedClasses #define vpiMethods #define vpiSolveBefore #define vpiSolveAfter #define vpiWeight #define vpiWaitingProcesses #define vpiMessages #define vpiMembers #define vpiLoopVars /************************ generic object properties ***********************/ #define vpiTop #define vpiUnit #define vpiAccessType #define vpiForkJoin #define vpiExtern #define vpiDPIExtern #define vpiDPIImport #define vpiArrayType #define vpiDynamicArray #define vpiQueueArray #define vpiStaticArray #define vpiIsRandomized #define vpiRandType #define vpiVpiRand #define vpiRandC #define vpiNotRand #define vpiConstantVar #define vpiMember #define vpiVisibility #define vpiPublic #define vpiProtected #define vpiPrivate #define vpiPacked #define vpiTagged #define vpiRef #define vpiDefaultSkew #define vpiVirtual #define vpiUserDefined #define vpiIsConstraintEnabled #define vpiClassType #define vpiMailbox #define vpiSemaphore #define vpiAssociativeArray #define vpiIndexTypespec #define vpiMethod #define vpiValid #define vpiActive #define vpiIsClockInferred #define vpiUniqueQualifier #define vpiPriorityQualifier #define vpiTaggedQualifier #define vpiNullConst #define vpiOneStepConst #define VpiAlwaysType #define vpiAlwaysComb #define vpiAlwaysFF #define vpiAlwaysLatch v /******************************** Operators *******************************/ #define vpiEqualDist /* constraint equal distribution operator */ #define vpiDivDist /* constraint divided distribution operator */ #define vpiImplyOp /* -> implication operator */ #define vpiNonOverlapImplyOp /* |=> non-overlapped implication */ #define vpiOverlapImplyOp /* |-> overlapped implication operator */ #define vpiUnaryCycleDelayOp /* binary cycle delay (##) operator */ #define vpiCycleDelayOp /* binary cycle delay (##) operator */ #define vpiIntersectOp /* intersection operator */ #define vpiFirstMatchOp /* first_match operator */ #define vpiThroughoutOp /* throught operator */ #define vpiWithinOp /* within operator */ #define vpiRepeatOp /* [*=] non-consecutive repetition */ #define vpiConsecutiveRepeatOp /* [*] consecutive repetition */ #define vpiGotoRepeatOp /* [*->] goto repetition */ #define vpiPostIncOp /* ++ post-increment */ #define vpiPreIncOp /* ++ pre-increment */ #define vpiPostDecOp /* -- post-decrement */ #define vpiPreDecOp /* -- pre-decrement */ #define vpiMatchOp /* match() operator */ #define vpiCastOp /* type`() operator */ #define vpiIffOp /* iff operator */ #define vpiWildEqOp /* =?= operator */ #define vpiWildNeqOp /* !?= operator */ /************************** STRUCTURE DEFINITIONS *************************/ /***************************** structure *****************************/ /**************************** CALLBACK REASONS ****************************/ #define cbStartOfThread /* callback on thread creation */ #define cbEndOfThread /* callback on thread termination */ #define cbEnterThread /* callback on re-entering thread */ #define cbStartOfFrame /* callback on frame creation */ #define cbEndOfFrame /* callback on frame exit */ #define cbTypeChange /* callback on variable type/size change */ /************************* FUNCTION DECLARATIONS **************************/ #ifdef __cplusplus } #endif #endif