diff options
Diffstat (limited to 'src/vhdl/nodes_meta.adb')
-rw-r--r-- | src/vhdl/nodes_meta.adb | 340 |
1 files changed, 173 insertions, 167 deletions
diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb index 0b0df4d35..6e0de124a 100644 --- a/src/vhdl/nodes_meta.adb +++ b/src/vhdl/nodes_meta.adb @@ -2738,9 +2738,12 @@ package body Nodes_Meta is Field_Psl_Declaration, Field_PSL_Clock, Field_PSL_NFA, + Field_PSL_Nbr_States, + Field_PSL_EOS_Flag, Field_Visible_Flag, Field_Use_Flag, Field_Expr_Staticness, + Field_PSL_Clock_Sensitivity, Field_Chain, Field_Parent, Field_Type, @@ -4152,170 +4155,170 @@ package body Nodes_Meta is Iir_Kind_Element_Declaration => 559, Iir_Kind_Non_Object_Alias_Declaration => 567, Iir_Kind_Psl_Declaration => 575, - Iir_Kind_Psl_Endpoint_Declaration => 585, - Iir_Kind_Terminal_Declaration => 591, - Iir_Kind_Free_Quantity_Declaration => 600, - Iir_Kind_Across_Quantity_Declaration => 612, - Iir_Kind_Through_Quantity_Declaration => 624, - Iir_Kind_Enumeration_Literal => 635, - Iir_Kind_Function_Declaration => 659, - Iir_Kind_Procedure_Declaration => 682, - Iir_Kind_Function_Body => 692, - Iir_Kind_Procedure_Body => 703, - Iir_Kind_Object_Alias_Declaration => 715, - Iir_Kind_File_Declaration => 730, - Iir_Kind_Guard_Signal_Declaration => 743, - Iir_Kind_Signal_Declaration => 760, - Iir_Kind_Variable_Declaration => 773, - Iir_Kind_Constant_Declaration => 787, - Iir_Kind_Iterator_Declaration => 799, - Iir_Kind_Interface_Constant_Declaration => 815, - Iir_Kind_Interface_Variable_Declaration => 831, - Iir_Kind_Interface_Signal_Declaration => 852, - Iir_Kind_Interface_File_Declaration => 868, - Iir_Kind_Interface_Package_Declaration => 877, - Iir_Kind_Identity_Operator => 881, - Iir_Kind_Negation_Operator => 885, - Iir_Kind_Absolute_Operator => 889, - Iir_Kind_Not_Operator => 893, - Iir_Kind_Condition_Operator => 897, - Iir_Kind_Reduction_And_Operator => 901, - Iir_Kind_Reduction_Or_Operator => 905, - Iir_Kind_Reduction_Nand_Operator => 909, - Iir_Kind_Reduction_Nor_Operator => 913, - Iir_Kind_Reduction_Xor_Operator => 917, - Iir_Kind_Reduction_Xnor_Operator => 921, - Iir_Kind_And_Operator => 926, - Iir_Kind_Or_Operator => 931, - Iir_Kind_Nand_Operator => 936, - Iir_Kind_Nor_Operator => 941, - Iir_Kind_Xor_Operator => 946, - Iir_Kind_Xnor_Operator => 951, - Iir_Kind_Equality_Operator => 956, - Iir_Kind_Inequality_Operator => 961, - Iir_Kind_Less_Than_Operator => 966, - Iir_Kind_Less_Than_Or_Equal_Operator => 971, - Iir_Kind_Greater_Than_Operator => 976, - Iir_Kind_Greater_Than_Or_Equal_Operator => 981, - Iir_Kind_Match_Equality_Operator => 986, - Iir_Kind_Match_Inequality_Operator => 991, - Iir_Kind_Match_Less_Than_Operator => 996, - Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1001, - Iir_Kind_Match_Greater_Than_Operator => 1006, - Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1011, - Iir_Kind_Sll_Operator => 1016, - Iir_Kind_Sla_Operator => 1021, - Iir_Kind_Srl_Operator => 1026, - Iir_Kind_Sra_Operator => 1031, - Iir_Kind_Rol_Operator => 1036, - Iir_Kind_Ror_Operator => 1041, - Iir_Kind_Addition_Operator => 1046, - Iir_Kind_Substraction_Operator => 1051, - Iir_Kind_Concatenation_Operator => 1056, - Iir_Kind_Multiplication_Operator => 1061, - Iir_Kind_Division_Operator => 1066, - Iir_Kind_Modulus_Operator => 1071, - Iir_Kind_Remainder_Operator => 1076, - Iir_Kind_Exponentiation_Operator => 1081, - Iir_Kind_Function_Call => 1089, - Iir_Kind_Aggregate => 1095, - Iir_Kind_Parenthesis_Expression => 1098, - Iir_Kind_Qualified_Expression => 1102, - Iir_Kind_Type_Conversion => 1107, - Iir_Kind_Allocator_By_Expression => 1111, - Iir_Kind_Allocator_By_Subtype => 1117, - Iir_Kind_Selected_Element => 1123, - Iir_Kind_Dereference => 1128, - Iir_Kind_Implicit_Dereference => 1133, - Iir_Kind_Slice_Name => 1140, - Iir_Kind_Indexed_Name => 1146, - Iir_Kind_Psl_Expression => 1148, - Iir_Kind_Sensitized_Process_Statement => 1168, - Iir_Kind_Process_Statement => 1188, - Iir_Kind_Concurrent_Simple_Signal_Assignment => 1199, - Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1210, - Iir_Kind_Concurrent_Selected_Signal_Assignment => 1222, - Iir_Kind_Concurrent_Assertion_Statement => 1230, - Iir_Kind_Psl_Default_Clock => 1234, - Iir_Kind_Psl_Assert_Statement => 1246, - Iir_Kind_Psl_Cover_Statement => 1258, - Iir_Kind_Concurrent_Procedure_Call_Statement => 1265, - Iir_Kind_Block_Statement => 1278, - Iir_Kind_If_Generate_Statement => 1288, - Iir_Kind_For_Generate_Statement => 1297, - Iir_Kind_Component_Instantiation_Statement => 1307, - Iir_Kind_Simple_Simultaneous_Statement => 1314, - Iir_Kind_Generate_Statement_Body => 1325, - Iir_Kind_If_Generate_Else_Clause => 1330, - Iir_Kind_Simple_Signal_Assignment_Statement => 1339, - Iir_Kind_Conditional_Signal_Assignment_Statement => 1348, - Iir_Kind_Null_Statement => 1352, - Iir_Kind_Assertion_Statement => 1359, - Iir_Kind_Report_Statement => 1365, - Iir_Kind_Wait_Statement => 1372, - Iir_Kind_Variable_Assignment_Statement => 1378, - Iir_Kind_Conditional_Variable_Assignment_Statement => 1384, - Iir_Kind_Return_Statement => 1390, - Iir_Kind_For_Loop_Statement => 1399, - Iir_Kind_While_Loop_Statement => 1407, - Iir_Kind_Next_Statement => 1413, - Iir_Kind_Exit_Statement => 1419, - Iir_Kind_Case_Statement => 1427, - Iir_Kind_Procedure_Call_Statement => 1433, - Iir_Kind_If_Statement => 1442, - Iir_Kind_Elsif => 1447, - Iir_Kind_Character_Literal => 1454, - Iir_Kind_Simple_Name => 1461, - Iir_Kind_Selected_Name => 1469, - Iir_Kind_Operator_Symbol => 1474, - Iir_Kind_Selected_By_All_Name => 1479, - Iir_Kind_Parenthesis_Name => 1483, - Iir_Kind_External_Constant_Name => 1492, - Iir_Kind_External_Signal_Name => 1501, - Iir_Kind_External_Variable_Name => 1510, - Iir_Kind_Package_Pathname => 1513, - Iir_Kind_Absolute_Pathname => 1514, - Iir_Kind_Relative_Pathname => 1515, - Iir_Kind_Pathname_Element => 1519, - Iir_Kind_Base_Attribute => 1521, - Iir_Kind_Left_Type_Attribute => 1526, - Iir_Kind_Right_Type_Attribute => 1531, - Iir_Kind_High_Type_Attribute => 1536, - Iir_Kind_Low_Type_Attribute => 1541, - Iir_Kind_Ascending_Type_Attribute => 1546, - Iir_Kind_Image_Attribute => 1552, - Iir_Kind_Value_Attribute => 1558, - Iir_Kind_Pos_Attribute => 1564, - Iir_Kind_Val_Attribute => 1570, - Iir_Kind_Succ_Attribute => 1576, - Iir_Kind_Pred_Attribute => 1582, - Iir_Kind_Leftof_Attribute => 1588, - Iir_Kind_Rightof_Attribute => 1594, - Iir_Kind_Delayed_Attribute => 1602, - Iir_Kind_Stable_Attribute => 1610, - Iir_Kind_Quiet_Attribute => 1618, - Iir_Kind_Transaction_Attribute => 1626, - Iir_Kind_Event_Attribute => 1630, - Iir_Kind_Active_Attribute => 1634, - Iir_Kind_Last_Event_Attribute => 1638, - Iir_Kind_Last_Active_Attribute => 1642, - Iir_Kind_Last_Value_Attribute => 1646, - Iir_Kind_Driving_Attribute => 1650, - Iir_Kind_Driving_Value_Attribute => 1654, - Iir_Kind_Behavior_Attribute => 1654, - Iir_Kind_Structure_Attribute => 1654, - Iir_Kind_Simple_Name_Attribute => 1661, - Iir_Kind_Instance_Name_Attribute => 1666, - Iir_Kind_Path_Name_Attribute => 1671, - Iir_Kind_Left_Array_Attribute => 1678, - Iir_Kind_Right_Array_Attribute => 1685, - Iir_Kind_High_Array_Attribute => 1692, - Iir_Kind_Low_Array_Attribute => 1699, - Iir_Kind_Length_Array_Attribute => 1706, - Iir_Kind_Ascending_Array_Attribute => 1713, - Iir_Kind_Range_Array_Attribute => 1720, - Iir_Kind_Reverse_Range_Array_Attribute => 1727, - Iir_Kind_Attribute_Name => 1735 + Iir_Kind_Psl_Endpoint_Declaration => 588, + Iir_Kind_Terminal_Declaration => 594, + Iir_Kind_Free_Quantity_Declaration => 603, + Iir_Kind_Across_Quantity_Declaration => 615, + Iir_Kind_Through_Quantity_Declaration => 627, + Iir_Kind_Enumeration_Literal => 638, + Iir_Kind_Function_Declaration => 662, + Iir_Kind_Procedure_Declaration => 685, + Iir_Kind_Function_Body => 695, + Iir_Kind_Procedure_Body => 706, + Iir_Kind_Object_Alias_Declaration => 718, + Iir_Kind_File_Declaration => 733, + Iir_Kind_Guard_Signal_Declaration => 746, + Iir_Kind_Signal_Declaration => 763, + Iir_Kind_Variable_Declaration => 776, + Iir_Kind_Constant_Declaration => 790, + Iir_Kind_Iterator_Declaration => 802, + Iir_Kind_Interface_Constant_Declaration => 818, + Iir_Kind_Interface_Variable_Declaration => 834, + Iir_Kind_Interface_Signal_Declaration => 855, + Iir_Kind_Interface_File_Declaration => 871, + Iir_Kind_Interface_Package_Declaration => 880, + Iir_Kind_Identity_Operator => 884, + Iir_Kind_Negation_Operator => 888, + Iir_Kind_Absolute_Operator => 892, + Iir_Kind_Not_Operator => 896, + Iir_Kind_Condition_Operator => 900, + Iir_Kind_Reduction_And_Operator => 904, + Iir_Kind_Reduction_Or_Operator => 908, + Iir_Kind_Reduction_Nand_Operator => 912, + Iir_Kind_Reduction_Nor_Operator => 916, + Iir_Kind_Reduction_Xor_Operator => 920, + Iir_Kind_Reduction_Xnor_Operator => 924, + Iir_Kind_And_Operator => 929, + Iir_Kind_Or_Operator => 934, + Iir_Kind_Nand_Operator => 939, + Iir_Kind_Nor_Operator => 944, + Iir_Kind_Xor_Operator => 949, + Iir_Kind_Xnor_Operator => 954, + Iir_Kind_Equality_Operator => 959, + Iir_Kind_Inequality_Operator => 964, + Iir_Kind_Less_Than_Operator => 969, + Iir_Kind_Less_Than_Or_Equal_Operator => 974, + Iir_Kind_Greater_Than_Operator => 979, + Iir_Kind_Greater_Than_Or_Equal_Operator => 984, + Iir_Kind_Match_Equality_Operator => 989, + Iir_Kind_Match_Inequality_Operator => 994, + Iir_Kind_Match_Less_Than_Operator => 999, + Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1004, + Iir_Kind_Match_Greater_Than_Operator => 1009, + Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1014, + Iir_Kind_Sll_Operator => 1019, + Iir_Kind_Sla_Operator => 1024, + Iir_Kind_Srl_Operator => 1029, + Iir_Kind_Sra_Operator => 1034, + Iir_Kind_Rol_Operator => 1039, + Iir_Kind_Ror_Operator => 1044, + Iir_Kind_Addition_Operator => 1049, + Iir_Kind_Substraction_Operator => 1054, + Iir_Kind_Concatenation_Operator => 1059, + Iir_Kind_Multiplication_Operator => 1064, + Iir_Kind_Division_Operator => 1069, + Iir_Kind_Modulus_Operator => 1074, + Iir_Kind_Remainder_Operator => 1079, + Iir_Kind_Exponentiation_Operator => 1084, + Iir_Kind_Function_Call => 1092, + Iir_Kind_Aggregate => 1098, + Iir_Kind_Parenthesis_Expression => 1101, + Iir_Kind_Qualified_Expression => 1105, + Iir_Kind_Type_Conversion => 1110, + Iir_Kind_Allocator_By_Expression => 1114, + Iir_Kind_Allocator_By_Subtype => 1120, + Iir_Kind_Selected_Element => 1126, + Iir_Kind_Dereference => 1131, + Iir_Kind_Implicit_Dereference => 1136, + Iir_Kind_Slice_Name => 1143, + Iir_Kind_Indexed_Name => 1149, + Iir_Kind_Psl_Expression => 1151, + Iir_Kind_Sensitized_Process_Statement => 1171, + Iir_Kind_Process_Statement => 1191, + Iir_Kind_Concurrent_Simple_Signal_Assignment => 1202, + Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1213, + Iir_Kind_Concurrent_Selected_Signal_Assignment => 1225, + Iir_Kind_Concurrent_Assertion_Statement => 1233, + Iir_Kind_Psl_Default_Clock => 1237, + Iir_Kind_Psl_Assert_Statement => 1249, + Iir_Kind_Psl_Cover_Statement => 1261, + Iir_Kind_Concurrent_Procedure_Call_Statement => 1268, + Iir_Kind_Block_Statement => 1281, + Iir_Kind_If_Generate_Statement => 1291, + Iir_Kind_For_Generate_Statement => 1300, + Iir_Kind_Component_Instantiation_Statement => 1310, + Iir_Kind_Simple_Simultaneous_Statement => 1317, + Iir_Kind_Generate_Statement_Body => 1328, + Iir_Kind_If_Generate_Else_Clause => 1333, + Iir_Kind_Simple_Signal_Assignment_Statement => 1342, + Iir_Kind_Conditional_Signal_Assignment_Statement => 1351, + Iir_Kind_Null_Statement => 1355, + Iir_Kind_Assertion_Statement => 1362, + Iir_Kind_Report_Statement => 1368, + Iir_Kind_Wait_Statement => 1375, + Iir_Kind_Variable_Assignment_Statement => 1381, + Iir_Kind_Conditional_Variable_Assignment_Statement => 1387, + Iir_Kind_Return_Statement => 1393, + Iir_Kind_For_Loop_Statement => 1402, + Iir_Kind_While_Loop_Statement => 1410, + Iir_Kind_Next_Statement => 1416, + Iir_Kind_Exit_Statement => 1422, + Iir_Kind_Case_Statement => 1430, + Iir_Kind_Procedure_Call_Statement => 1436, + Iir_Kind_If_Statement => 1445, + Iir_Kind_Elsif => 1450, + Iir_Kind_Character_Literal => 1457, + Iir_Kind_Simple_Name => 1464, + Iir_Kind_Selected_Name => 1472, + Iir_Kind_Operator_Symbol => 1477, + Iir_Kind_Selected_By_All_Name => 1482, + Iir_Kind_Parenthesis_Name => 1486, + Iir_Kind_External_Constant_Name => 1495, + Iir_Kind_External_Signal_Name => 1504, + Iir_Kind_External_Variable_Name => 1513, + Iir_Kind_Package_Pathname => 1516, + Iir_Kind_Absolute_Pathname => 1517, + Iir_Kind_Relative_Pathname => 1518, + Iir_Kind_Pathname_Element => 1522, + Iir_Kind_Base_Attribute => 1524, + Iir_Kind_Left_Type_Attribute => 1529, + Iir_Kind_Right_Type_Attribute => 1534, + Iir_Kind_High_Type_Attribute => 1539, + Iir_Kind_Low_Type_Attribute => 1544, + Iir_Kind_Ascending_Type_Attribute => 1549, + Iir_Kind_Image_Attribute => 1555, + Iir_Kind_Value_Attribute => 1561, + Iir_Kind_Pos_Attribute => 1567, + Iir_Kind_Val_Attribute => 1573, + Iir_Kind_Succ_Attribute => 1579, + Iir_Kind_Pred_Attribute => 1585, + Iir_Kind_Leftof_Attribute => 1591, + Iir_Kind_Rightof_Attribute => 1597, + Iir_Kind_Delayed_Attribute => 1605, + Iir_Kind_Stable_Attribute => 1613, + Iir_Kind_Quiet_Attribute => 1621, + Iir_Kind_Transaction_Attribute => 1629, + Iir_Kind_Event_Attribute => 1633, + Iir_Kind_Active_Attribute => 1637, + Iir_Kind_Last_Event_Attribute => 1641, + Iir_Kind_Last_Active_Attribute => 1645, + Iir_Kind_Last_Value_Attribute => 1649, + Iir_Kind_Driving_Attribute => 1653, + Iir_Kind_Driving_Value_Attribute => 1657, + Iir_Kind_Behavior_Attribute => 1657, + Iir_Kind_Structure_Attribute => 1657, + Iir_Kind_Simple_Name_Attribute => 1664, + Iir_Kind_Instance_Name_Attribute => 1669, + Iir_Kind_Path_Name_Attribute => 1674, + Iir_Kind_Left_Array_Attribute => 1681, + Iir_Kind_Right_Array_Attribute => 1688, + Iir_Kind_High_Array_Attribute => 1695, + Iir_Kind_Low_Array_Attribute => 1702, + Iir_Kind_Length_Array_Attribute => 1709, + Iir_Kind_Ascending_Array_Attribute => 1716, + Iir_Kind_Range_Array_Attribute => 1723, + Iir_Kind_Reverse_Range_Array_Attribute => 1730, + Iir_Kind_Attribute_Name => 1738 ); function Get_Fields (K : Iir_Kind) return Fields_Array @@ -9850,7 +9853,8 @@ package body Nodes_Meta is function Has_PSL_Nbr_States (K : Iir_Kind) return Boolean is begin case K is - when Iir_Kind_Psl_Assert_Statement + when Iir_Kind_Psl_Endpoint_Declaration + | Iir_Kind_Psl_Assert_Statement | Iir_Kind_Psl_Cover_Statement => return True; when others => @@ -9861,7 +9865,8 @@ package body Nodes_Meta is function Has_PSL_Clock_Sensitivity (K : Iir_Kind) return Boolean is begin case K is - when Iir_Kind_Psl_Assert_Statement + when Iir_Kind_Psl_Endpoint_Declaration + | Iir_Kind_Psl_Assert_Statement | Iir_Kind_Psl_Cover_Statement => return True; when others => @@ -9872,7 +9877,8 @@ package body Nodes_Meta is function Has_PSL_EOS_Flag (K : Iir_Kind) return Boolean is begin case K is - when Iir_Kind_Psl_Assert_Statement + when Iir_Kind_Psl_Endpoint_Declaration + | Iir_Kind_Psl_Assert_Statement | Iir_Kind_Psl_Cover_Statement => return True; when others => |