aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOndrej Ille <ondrej.ille@gmail.com>2021-04-07 16:11:11 +0200
committertgingold <tgingold@users.noreply.github.com>2021-04-08 20:22:42 +0200
commit6b4051a0b29effd4210d99609dcbd0eceff8111f (patch)
tree9bfa1d627029ee1a96e6c3b8c2cc4ee91c4fa27f /src
parent4a07af44a52c4299eee6547a9e2862da231753c3 (diff)
downloadghdl-6b4051a0b29effd4210d99609dcbd0eceff8111f.tar.gz
ghdl-6b4051a0b29effd4210d99609dcbd0eceff8111f.tar.bz2
ghdl-6b4051a0b29effd4210d99609dcbd0eceff8111f.zip
src/grt: Avhpi - Specify enum numbers as in VHDL LRM. Add 2008 version enumerations. Update "DEPRECATED" suffices.
Diffstat (limited to 'src')
-rw-r--r--src/grt/grt-avhpi.ads488
1 files changed, 483 insertions, 5 deletions
diff --git a/src/grt/grt-avhpi.ads b/src/grt/grt-avhpi.ads
index 296e7037f..f064c82f6 100644
--- a/src/grt/grt-avhpi.ads
+++ b/src/grt/grt-avhpi.ads
@@ -32,6 +32,7 @@ with Grt.Rtis; use Grt.Rtis;
with Grt.Rtis_Addr; use Grt.Rtis_Addr;
package Grt.Avhpi is
+
-- Object Kinds.
type VhpiClassKindT is
(
@@ -150,6 +151,15 @@ package Grt.Avhpi is
VhpiWaitStmtK,
VhpiWaveformElemK,
VhpiWhileLoopK,
+ VhpiQualifiedExprK,
+ VhpiUseClauseK,
+ VhpiConcAssertStmtK,
+ VhpiConcProcCallStmtK,
+ VhpiForeverLoopK,
+ VhpiSeqAssertStmtK,
+ VhpiSeqProcCallStmtK,
+ VhpiSeqSigAssignStmtK,
+ VhpiProtectedTypeInstK,
-- Iterator, but on a name.
AvhpiNameIteratorK,
@@ -159,8 +169,143 @@ package Grt.Avhpi is
AvhpiRootScopeIteratorK
);
+ for VhpiClassKindT use
+ (
+ VhpiUndefined => 1000,
+ VhpiAccessTypeDeclK => 1001,
+ VhpiAggregateK => 1002,
+ VhpiAliasDeclK => 1003,
+ VhpiAllLiteralK => 1004,
+ VhpiAllocatorK => 1005,
+ VhpiAnyCollectionK => 1006,
+ VhpiArchBodyK => 1007,
+ VhpiArgvK => 1008,
+ VhpiArrayTypeDeclK => 1009,
+ VhpiAssertStmtK => 1010,
+ VhpiAssocElemK => 1011,
+ VhpiAttrDeclK => 1012,
+ VhpiAttrSpecK => 1013,
+ VhpiBinaryExprK => 1014,
+ VhpiBitStringLiteralK => 1015,
+ VhpiBlockConfigK => 1016,
+ VhpiBlockStmtK => 1017,
+ VhpiBranchK => 1018,
+ VhpiCallbackK => 1019,
+ VhpiCaseStmtK => 1020,
+ VhpiCharLiteralK => 1021,
+ VhpiCompConfigK => 1022,
+ VhpiCompDeclK => 1023,
+ VhpiCompInstStmtK => 1024,
+ VhpiCondSigAssignStmtK => 1025,
+ VhpiCondWaveformK => 1026,
+ VhpiConfigDeclK => 1027,
+ VhpiConstDeclK => 1028,
+ VhpiConstParamDeclK => 1029,
+ VhpiConvFuncK => 1030,
+ VhpiDeRefObjK => 1031,
+ VhpiDisconnectSpecK => 1032,
+ VhpiDriverK => 1033,
+ VhpiDriverCollectionK => 1034,
+ VhpiElemAssocK => 1035,
+ VhpiElemDeclK => 1036,
+ VhpiEntityClassEntryK => 1037,
+ VhpiEntityDeclK => 1038,
+ VhpiEnumLiteralK => 1039,
+ VhpiEnumRangeK => 1040,
+ VhpiEnumTypeDeclK => 1041,
+ VhpiExitStmtK => 1042,
+ VhpiFileDeclK => 1043,
+ VhpiFileParamDeclK => 1044,
+ VhpiFileTypeDeclK => 1045,
+ VhpiFloatRangeK => 1046,
+ VhpiFloatTypeDeclK => 1047,
+ VhpiForGenerateK => 1048,
+ VhpiForLoopK => 1049,
+ VhpiForeignfK => 1050,
+ VhpiFuncCallK => 1051,
+ VhpiFuncDeclK => 1052,
+ VhpiGenericDeclK => 1053,
+ VhpiGroupDeclK => 1054,
+ VhpiGroupTempDeclK => 1055,
+ VhpiIfGenerateK => 1056,
+ VhpiIfStmtK => 1057,
+ VhpiInPortK => 1058,
+ VhpiIndexedNameK => 1059,
+ VhpiIntLiteralK => 1060,
+ VhpiIntRangeK => 1061,
+ VhpiIntTypeDeclK => 1062,
+ VhpiIteratorK => 1063,
+ VhpiLibraryDeclK => 1064,
+ VhpiLoopStmtK => 1065,
+ VhpiNextStmtK => 1066,
+ VhpiNullLiteralK => 1067,
+ VhpiNullStmtK => 1068,
+ VhpiOperatorK => 1069,
+ VhpiOthersLiteralK => 1070,
+ VhpiOutPortK => 1071,
+ VhpiPackBodyK => 1072,
+ VhpiPackDeclK => 1073,
+ VhpiPackInstK => 1074,
+ VhpiParamAttrNameK => 1075,
+ VhpiPhysLiteralK => 1076,
+ VhpiPhysRangeK => 1077,
+ VhpiPhysTypeDeclK => 1078,
+ VhpiPortDeclK => 1079,
+ VhpiProcCallStmtK => 1080,
+ VhpiProcDeclK => 1081,
+ VhpiProcessStmtK => 1082,
+ VhpiProtectedTypeK => 1083,
+ VhpiProtectedTypeBodyK => 1084,
+ VhpiProtectedTypeDeclK => 1085,
+ VhpiRealLiteralK => 1086,
+ VhpiRecordTypeDeclK => 1087,
+ VhpiReportStmtK => 1088,
+ VhpiReturnStmtK => 1089,
+ VhpiRootInstK => 1090,
+ VhpiSelectSigAssignStmtK => 1091,
+ VhpiSelectWaveformK => 1092,
+ VhpiSelectedNameK => 1093,
+ VhpiSigDeclK => 1094,
+ VhpiSigParamDeclK => 1095,
+ VhpiSimpAttrNameK => 1096,
+ VhpiSimpleSigAssignStmtK => 1097,
+ VhpiSliceNameK => 1098,
+ VhpiStringLiteralK => 1099,
+ VhpiSubpBodyK => 1100,
+ VhpiSubtypeDeclK => 1101,
+ VhpiSubtypeIndicK => 1102,
+ VhpiToolK => 1103,
+ VhpiTransactionK => 1104,
+ VhpiTypeConvK => 1105,
+ VhpiUnaryExprK => 1106,
+ VhpiUnitDeclK => 1107,
+ VhpiUserAttrNameK => 1108,
+ VhpiVarAssignStmtK => 1109,
+ VhpiVarDeclK => 1110,
+ VhpiVarParamDeclK => 1111,
+ VhpiWaitStmtK => 1112,
+ VhpiWaveformElemK => 1113,
+ VhpiWhileLoopK => 1114,
+ VhpiQualifiedExprK => 1115,
+ VhpiUseClauseK => 1116,
+ VhpiConcAssertStmtK => 1117,
+ VhpiConcProcCallStmtK => 1118,
+ VhpiForeverLoopK => 1119,
+ VhpiSeqAssertStmtK => 1120,
+ VhpiSeqProcCallStmtK => 1121,
+ VhpiSeqSigAssignStmtK => 1122,
+ VhpiProtectedTypeInstK => 1123,
+
+ -- Iterator, but on a name.
+ AvhpiNameIteratorK => 2001,
+
+ -- Root scope that contains the top entity. For vpi.
+ AvhpiRootScopeK => 2002,
+ AvhpiRootScopeIteratorK => 2003
+ );
+
type VhpiOneToOneT is
- (
+ (
VhpiAbstractLiteral,
VhpiActual,
VhpiAllLiteral,
@@ -232,12 +377,121 @@ package Grt.Avhpi is
VhpiTimeExpr,
VhpiTimeOutExpr,
VhpiTool,
+ VhpiType,
VhpiTypeMark,
VhpiUnitDecl,
VhpiUpStack,
VhpiUpperRegion,
+ VhpiUse,
VhpiValExpr,
- VhpiValSubtype
+ VhpiValSubtype,
+ VhpiElemType,
+ VhpiFirstNamedType,
+ VhpiReturnType,
+ VhpiValType,
+ VhpiCurRegion,
+ VhpiSignal,
+ VhpiLibraryDecl,
+ VhpiSimNet,
+ VhpiAliasedName,
+ VhpiCompDecl,
+ VhpiProtectedTypeInst,
+ VhpiGenIndex
+ );
+
+ for VhpiOneToOneT use
+ (
+ VhpiAbstractLiteral => 1301,
+ VhpiActual => 1302,
+ VhpiAllLiteral => 1303,
+ VhpiAttrDecl => 1304,
+ VhpiAttrSpec => 1305,
+ VhpiBaseType => 1306,
+ VhpiBaseUnit => 1307,
+ VhpiBasicSignal => 1308,
+ VhpiBlockConfig => 1309,
+ VhpiCaseExpr => 1310,
+ VhpiCondExpr => 1311,
+ VhpiConfigDecl => 1312,
+ VhpiConfigSpec => 1313,
+ VhpiConstraint => 1314,
+ VhpiContributor => 1315,
+ VhpiCurCallback => 1316,
+ VhpiCurEqProcess => 1317,
+ VhpiCurStackFrame => 1318,
+ VhpiDeRefObj => 1319,
+ VhpiDecl => 1320,
+ VhpiDesignUnit => 1321,
+ VhpiDownStack => 1322,
+ VhpiElemSubtype => 1323,
+ VhpiEntityAspect => 1324,
+ VhpiEntityDecl => 1325,
+ VhpiEqProcessStmt => 1326,
+ VhpiExpr => 1327,
+ VhpiFormal => 1328,
+ VhpiFuncDecl => 1329,
+ VhpiGroupTempDecl => 1330,
+ VhpiGuardExpr => 1331,
+ VhpiGuardSig => 1332,
+ VhpiImmRegion => 1333,
+ VhpiInPort => 1334,
+ VhpiInitExpr => 1335,
+ VhpiIterScheme => 1336,
+ VhpiLeftExpr => 1337,
+ VhpiLexicalScope => 1338,
+ VhpiLhsExpr => 1339,
+ VhpiLocal => 1340,
+ VhpiLogicalExpr => 1341,
+ VhpiName => 1342,
+ VhpiOperator => 1343,
+ VhpiOthersLiteral => 1344,
+ VhpiOutPort => 1345,
+ VhpiParamDecl => 1346,
+ VhpiParamExpr => 1347,
+ VhpiParent => 1348,
+ VhpiPhysLiteral => 1349,
+ VhpiPrefix => 1350,
+ VhpiPrimaryUnit => 1351,
+ VhpiProtectedTypeBody => 1352,
+ VhpiProtectedTypeDecl => 1353,
+ VhpiRejectTime => 1354,
+ VhpiReportExpr => 1355,
+ VhpiResolFunc => 1356,
+ VhpiReturnExpr => 1357,
+ VhpiReturnTypeMark => 1358,
+ VhpiRhsExpr => 1359,
+ VhpiRightExpr => 1360,
+ VhpiRootInst => 1361,
+ VhpiSelectExpr => 1362,
+ VhpiSeverityExpr => 1363,
+ VhpiSimpleName => 1364,
+ VhpiSubpBody => 1365,
+ VhpiSubpDecl => 1366,
+ VhpiSubtype => 1367,
+ VhpiSuffix => 1368,
+ VhpiTimeExpr => 1369,
+ VhpiTimeOutExpr => 1370,
+ VhpiTool => 1371,
+ VhpiType => 1372,
+ VhpiTypeMark => 1373,
+ VhpiUnitDecl => 1374,
+ VhpiUpStack => 1375,
+ VhpiUpperRegion => 1376,
+ VhpiUse => 1377,
+ VhpiValExpr => 1378,
+ VhpiValSubtype => 1379,
+ VhpiElemType => 1380,
+ VhpiFirstNamedType => 1381,
+ VhpiReturnType => 1382,
+ VhpiValType => 1383,
+ VhpiCurRegion => 1384,
+ VhpiSignal => 1385,
+ VhpiLibraryDecl => 1386,
+ VhpiSimNet => 1387,
+ VhpiAliasedName => 1388,
+ VhpiCompDecl => 1389,
+ VhpiProtectedTypeInst => 1390,
+ VhpiGenIndex => 1391
);
-- Methods used to traverse 1 to many relationships.
@@ -300,7 +554,91 @@ package Grt.Avhpi is
VhpiUses,
VhpiVarDecls,
VhpiWaveformElems,
- VhpiLibraryDecls
+ VhpiLibraryDecls,
+ vhpiLocalLoads,
+ vhpiOptimizedLoads,
+ vhpiTypes,
+ vhpiUseClauses,
+ vhpiGenerateStmts,
+ vhpiLocalContributors,
+ vhpiOptimizedContributors,
+ vhpiParamExprs,
+ vhpiEqProcessStmts,
+ vhpiEntityClassEntries,
+ vhpiSensitivities
+ );
+
+ for VhpiOneToManyT use
+ (
+ VhpiAliasDecls => 1501,
+ VhpiArgvs => 1502,
+ VhpiAttrDecls => 1503,
+ VhpiAttrSpecs => 1504,
+ VhpiBasicSignals => 1505,
+ VhpiBlockStmts => 1506,
+ VhpiBranchs => 1507,
+ VhpiCallbacks => 1508,
+ VhpiChoices => 1509,
+ VhpiCompInstStmts => 1510,
+ VhpiCondExprs => 1511,
+ VhpiCondWaveforms => 1512,
+ VhpiConfigItems => 1513,
+ VhpiConfigSpecs => 1514,
+ VhpiConstDecls => 1515,
+ VhpiConstraints => 1516,
+ VhpiContributors => 1517,
+ VhpiCurRegions => 1518,
+ VhpiDecls => 1519,
+ VhpiDepUnits => 1520,
+ VhpiDesignUnits => 1521,
+ VhpiDrivenSigs => 1522,
+ VhpiDrivers => 1523,
+ VhpiElemAssocs => 1524,
+ VhpiEntityClassEntrys => 1525,
+ VhpiEntityDesignators => 1526,
+ VhpiEnumLiterals => 1527,
+ VhpiForeignfs => 1528,
+ VhpiGenericAssocs => 1529,
+ VhpiGenericDecls => 1530,
+ VhpiIndexExprs => 1531,
+ VhpiIndexedNames => 1532,
+ VhpiInternalRegions => 1533,
+ VhpiMembers => 1534,
+ VhpiPackInsts => 1535,
+ VhpiParamAssocs => 1536,
+ VhpiParamDecls => 1537,
+ VhpiPortAssocs => 1538,
+ VhpiPortDecls => 1539,
+ VhpiRecordElems => 1540,
+ VhpiSelectWaveforms => 1541,
+ VhpiSelectedNames => 1542,
+ VhpiSensitivitys => 1543,
+ VhpiSeqStmts => 1544,
+ VhpiSigAttrs => 1545,
+ VhpiSigDecls => 1546,
+ VhpiSigNames => 1547,
+ VhpiSignals => 1548,
+ VhpiSpecNames => 1549,
+ VhpiSpecs => 1550,
+ VhpiStmts => 1551,
+ VhpiTransactions => 1552,
+ VhpiTypeMarks => 1553,
+ VhpiUnitDecls => 1554,
+ VhpiUses => 1555,
+ VhpiVarDecls => 1556,
+ VhpiWaveformElems => 1557,
+ VhpiLibraryDecls => 1558,
+ vhpiLocalLoads => 1559,
+ vhpiOptimizedLoads => 1560,
+ vhpiTypes => 1561,
+ vhpiUseClauses => 1562,
+ vhpiGenerateStmts => 1563,
+ vhpiLocalContributors => 1564,
+ vhpiOptimizedContributors => 1565,
+ vhpiParamExprs => 1566,
+ vhpiEqProcessStmts => 1567,
+ vhpiEntityClassEntries => 1568,
+ vhpiSensitivities => 1569
);
type VhpiIntPropertyT is
@@ -374,7 +712,94 @@ package Grt.Avhpi is
VhpiStaticnessP,
VhpiVHDLversionP,
VhpiIdP,
- VhpiCapabilitiesP
+ VhpiCapabilitiesP,
+ vhpiAutomaticRestoreP,
+ vhpiCompInstKindP,
+ vhpiIsBuiltInP,
+ vhpiIsDynamicP,
+ vhpiIsOperatorP,
+ vhpiNumFieldsP
+ );
+
+ for VhpiIntPropertyT use
+ (
+ VhpiAccessP => 1001,
+ VhpiArgcP => 1002,
+ VhpiAttrKindP => 1003,
+ VhpiBaseIndexP => 1004,
+ VhpiBeginLineNoP => 1005,
+ VhpiEndLineNoP => 1006,
+ VhpiEntityClassP => 1007,
+ VhpiForeignKindP => 1008,
+ VhpiFrameLevelP => 1009,
+ VhpiGenerateIndexP => 1010,
+ VhpiIntValP => 1011,
+ VhpiIsAnonymousP => 1012,
+ VhpiIsBasicP => 1013,
+ VhpiIsCompositeP => 1014,
+ VhpiIsDefaultP => 1015,
+ VhpiIsDeferredP => 1016,
+ VhpiIsDiscreteP => 1017,
+ VhpiIsForcedP => 1018,
+ VhpiIsForeignP => 1019,
+ VhpiIsGuardedP => 1020,
+ VhpiIsImplicitDeclP => 1021,
+ VhpiIsInvalidP_DEPRECATED => 1022,
+ VhpiIsLocalP => 1023,
+ VhpiIsNamedP => 1024,
+ VhpiIsNullP => 1025,
+ VhpiIsOpenP => 1026,
+ VhpiIsPLIP => 1027,
+ VhpiIsPassiveP => 1028,
+ VhpiIsPostponedP => 1029,
+ VhpiIsProtectedTypeP => 1030,
+ VhpiIsPureP => 1031,
+ VhpiIsResolvedP => 1032,
+ VhpiIsScalarP => 1033,
+ VhpiIsSeqStmtP => 1034,
+ VhpiIsSharedP => 1035,
+ VhpiIsTransportP => 1036,
+ VhpiIsUnaffectedP => 1037,
+ VhpiIsUnconstrainedP => 1038,
+ VhpiIsUninstantiatedP => 1039,
+ VhpiIsUpP => 1040,
+ VhpiIsVitalP => 1041,
+ VhpiIteratorTypeP => 1042,
+ VhpiKindP => 1043,
+ VhpiLeftBoundP => 1044,
+ VhpiLevelP_DEPRECATED => 1045,
+ VhpiLineNoP => 1046,
+ VhpiLineOffsetP => 1047,
+ VhpiLoopIndexP => 1048,
+ VhpiModeP => 1049,
+ VhpiNumDimensionsP => 1050,
+ VhpiNumFieldsP_DEPRECATED => 1051,
+ VhpiNumGensP => 1052,
+ VhpiNumLiteralsP => 1053,
+ VhpiNumMembersP => 1054,
+ VhpiNumParamsP => 1055,
+ VhpiNumPortsP => 1056,
+ VhpiOpenModeP => 1057,
+ VhpiPhaseP => 1058,
+ VhpiPositionP => 1059,
+ -- 1061 skipped
+ VhpiPredefAttrP => 1060,
+ VhpiReasonP => 1062,
+ VhpiRightBoundP => 1063,
+ VhpiSigKindP => 1064,
+ VhpiSizeP => 1065,
+ VhpiStartLineNoP => 1066,
+ VhpiStateP => 1067,
+ VhpiStaticnessP => 1068,
+ VhpiVHDLversionP => 1069,
+ VhpiIdP => 1070,
+ VhpiCapabilitiesP => 1071,
+ vhpiAutomaticRestoreP => 1072,
+ vhpiCompInstKindP => 1073,
+ vhpiIsBuiltInP => 1074,
+ vhpiIsDynamicP => 1075,
+ vhpiIsOperatorP => 1076,
+ vhpiNumFieldsP => 1077
);
-- String properties.
@@ -396,7 +821,38 @@ package Grt.Avhpi is
VhpiOpNameP,
VhpiStrValP,
VhpiToolVersionP,
- VhpiUnitNameP
+ VhpiUnitNameP,
+ vhpiSaveRestartLocationP,
+ vhpiCompInstNameP,
+ vhpiInstNamesP,
+ vhpiSignatureNameP,
+ vhpiSpecNameP
+ );
+
+ for VhpiStrPropertyT use
+ (
+ VhpiCaseNameP => 1301,
+ VhpiCompNameP => 1302,
+ VhpiDefNameP => 1303,
+ VhpiFileNameP => 1304,
+ VhpiFullCaseNameP => 1305,
+ VhpiFullNameP => 1306,
+ VhpiKindStrP => 1307,
+ VhpiLabelNameP => 1308,
+ VhpiLibLogicalNameP => 1309,
+ VhpiLibPhysicalNameP => 1310,
+ VhpiLogicalNameP => 1311,
+ VhpiLoopLabelNameP => 1312,
+ VhpiNameP => 1313,
+ VhpiOpNameP => 1314,
+ VhpiStrValP => 1315,
+ VhpiToolVersionP => 1316,
+ VhpiUnitNameP => 1317,
+ vhpiSaveRestartLocationP => 1318,
+ vhpiCompInstNameP => 1319,
+ vhpiInstNamesP => 1320,
+ vhpiSignatureNameP => 1321,
+ vhpiSpecNameP => 1322
);
-- Possible Errors.
@@ -497,6 +953,28 @@ package Grt.Avhpi is
VhpiGroupEC
);
+ for VhpiEntityClassT use
+ (
+ VhpiErrorEC => 1000,
+ VhpiEntityEC => 1001,
+ VhpiArchitectureEC => 1002,
+ VhpiConfigurationEC => 1003,
+ VhpiProcedureEC => 1004,
+ VhpiFunctionEC => 1005,
+ VhpiPackageEC => 1006,
+ VhpiTypeEC => 1007,
+ VhpiSubtypeEC => 1008,
+ VhpiConstantEC => 1009,
+ VhpiSignalEC => 1010,
+ VhpiVariableEC => 1011,
+ VhpiComponentEC => 1012,
+ VhpiLabelEC => 1013,
+ VhpiLiteralEC => 1014,
+ VhpiUnitsEC => 1015,
+ VhpiFileEC => 1016,
+ VhpiGroupEC => 1017
+ );
+
function Vhpi_Get_EntityClass (Obj : VhpiHandleT)
return VhpiEntityClassT;