aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-nodes_meta.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb238
1 files changed, 137 insertions, 101 deletions
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb
index 2e3512028..4b4c6b632 100644
--- a/src/vhdl/vhdl-nodes_meta.adb
+++ b/src/vhdl/vhdl-nodes_meta.adb
@@ -1388,8 +1388,10 @@ package body Vhdl.Nodes_Meta is
return "concurrent_assertion_statement";
when Iir_Kind_Concurrent_Procedure_Call_Statement =>
return "concurrent_procedure_call_statement";
- when Iir_Kind_Psl_Assert_Statement =>
+ when Iir_Kind_Psl_Assert_Directive =>
return "psl_assert_statement";
+ when Iir_Kind_Psl_Assume_Directive =>
+ return "psl_assume_statement";
when Iir_Kind_Psl_Cover_Directive =>
return "psl_cover_directive";
when Iir_Kind_Psl_Restrict_Directive =>
@@ -3795,7 +3797,21 @@ package body Vhdl.Nodes_Meta is
Field_Parent,
Field_Procedure_Call,
Field_Chain,
- -- Iir_Kind_Psl_Assert_Statement
+ -- Iir_Kind_Psl_Assert_Directive
+ Field_Psl_Property,
+ Field_Label,
+ Field_PSL_Clock,
+ Field_PSL_NFA,
+ Field_PSL_Nbr_States,
+ Field_PSL_EOS_Flag,
+ Field_Postponed_Flag,
+ Field_Visible_Flag,
+ Field_Parent,
+ Field_Chain,
+ Field_Severity_Expression,
+ Field_Report_Expression,
+ Field_PSL_Clock_Sensitivity,
+ -- Iir_Kind_Psl_Assume_Directive
Field_Psl_Property,
Field_Label,
Field_PSL_Clock,
@@ -4640,91 +4656,92 @@ package body Vhdl.Nodes_Meta is
Iir_Kind_Concurrent_Selected_Signal_Assignment => 1370,
Iir_Kind_Concurrent_Assertion_Statement => 1378,
Iir_Kind_Concurrent_Procedure_Call_Statement => 1385,
- Iir_Kind_Psl_Assert_Statement => 1398,
- Iir_Kind_Psl_Cover_Directive => 1411,
- Iir_Kind_Psl_Restrict_Directive => 1422,
- Iir_Kind_Block_Statement => 1436,
- Iir_Kind_If_Generate_Statement => 1447,
- Iir_Kind_Case_Generate_Statement => 1456,
- Iir_Kind_For_Generate_Statement => 1465,
- Iir_Kind_Component_Instantiation_Statement => 1476,
- Iir_Kind_Psl_Default_Clock => 1480,
- Iir_Kind_Simple_Simultaneous_Statement => 1487,
- Iir_Kind_Generate_Statement_Body => 1498,
- Iir_Kind_If_Generate_Else_Clause => 1504,
- Iir_Kind_Simple_Signal_Assignment_Statement => 1514,
- Iir_Kind_Conditional_Signal_Assignment_Statement => 1524,
- Iir_Kind_Selected_Waveform_Assignment_Statement => 1535,
- Iir_Kind_Null_Statement => 1539,
- Iir_Kind_Assertion_Statement => 1546,
- Iir_Kind_Report_Statement => 1552,
- Iir_Kind_Wait_Statement => 1560,
- Iir_Kind_Variable_Assignment_Statement => 1567,
- Iir_Kind_Conditional_Variable_Assignment_Statement => 1574,
- Iir_Kind_Return_Statement => 1580,
- Iir_Kind_For_Loop_Statement => 1589,
- Iir_Kind_While_Loop_Statement => 1598,
- Iir_Kind_Next_Statement => 1605,
- Iir_Kind_Exit_Statement => 1612,
- Iir_Kind_Case_Statement => 1620,
- Iir_Kind_Procedure_Call_Statement => 1626,
- Iir_Kind_If_Statement => 1636,
- Iir_Kind_Elsif => 1642,
- Iir_Kind_Character_Literal => 1650,
- Iir_Kind_Simple_Name => 1658,
- Iir_Kind_Selected_Name => 1667,
- Iir_Kind_Operator_Symbol => 1673,
- Iir_Kind_Reference_Name => 1677,
- Iir_Kind_External_Constant_Name => 1685,
- Iir_Kind_External_Signal_Name => 1693,
- Iir_Kind_External_Variable_Name => 1702,
- Iir_Kind_Selected_By_All_Name => 1708,
- Iir_Kind_Parenthesis_Name => 1713,
- Iir_Kind_Package_Pathname => 1717,
- Iir_Kind_Absolute_Pathname => 1718,
- Iir_Kind_Relative_Pathname => 1719,
- Iir_Kind_Pathname_Element => 1724,
- Iir_Kind_Base_Attribute => 1726,
- Iir_Kind_Subtype_Attribute => 1731,
- Iir_Kind_Element_Attribute => 1736,
- Iir_Kind_Left_Type_Attribute => 1741,
- Iir_Kind_Right_Type_Attribute => 1746,
- Iir_Kind_High_Type_Attribute => 1751,
- Iir_Kind_Low_Type_Attribute => 1756,
- Iir_Kind_Ascending_Type_Attribute => 1761,
- Iir_Kind_Image_Attribute => 1767,
- Iir_Kind_Value_Attribute => 1773,
- Iir_Kind_Pos_Attribute => 1779,
- Iir_Kind_Val_Attribute => 1785,
- Iir_Kind_Succ_Attribute => 1791,
- Iir_Kind_Pred_Attribute => 1797,
- Iir_Kind_Leftof_Attribute => 1803,
- Iir_Kind_Rightof_Attribute => 1809,
- Iir_Kind_Delayed_Attribute => 1818,
- Iir_Kind_Stable_Attribute => 1827,
- Iir_Kind_Quiet_Attribute => 1836,
- Iir_Kind_Transaction_Attribute => 1845,
- Iir_Kind_Event_Attribute => 1849,
- Iir_Kind_Active_Attribute => 1853,
- Iir_Kind_Last_Event_Attribute => 1857,
- Iir_Kind_Last_Active_Attribute => 1861,
- Iir_Kind_Last_Value_Attribute => 1865,
- Iir_Kind_Driving_Attribute => 1869,
- Iir_Kind_Driving_Value_Attribute => 1873,
- Iir_Kind_Behavior_Attribute => 1873,
- Iir_Kind_Structure_Attribute => 1873,
- Iir_Kind_Simple_Name_Attribute => 1880,
- Iir_Kind_Instance_Name_Attribute => 1885,
- Iir_Kind_Path_Name_Attribute => 1890,
- Iir_Kind_Left_Array_Attribute => 1897,
- Iir_Kind_Right_Array_Attribute => 1904,
- Iir_Kind_High_Array_Attribute => 1911,
- Iir_Kind_Low_Array_Attribute => 1918,
- Iir_Kind_Length_Array_Attribute => 1925,
- Iir_Kind_Ascending_Array_Attribute => 1932,
- Iir_Kind_Range_Array_Attribute => 1939,
- Iir_Kind_Reverse_Range_Array_Attribute => 1946,
- Iir_Kind_Attribute_Name => 1955
+ Iir_Kind_Psl_Assert_Directive => 1398,
+ Iir_Kind_Psl_Assume_Directive => 1411,
+ Iir_Kind_Psl_Cover_Directive => 1424,
+ Iir_Kind_Psl_Restrict_Directive => 1435,
+ Iir_Kind_Block_Statement => 1449,
+ Iir_Kind_If_Generate_Statement => 1460,
+ Iir_Kind_Case_Generate_Statement => 1469,
+ Iir_Kind_For_Generate_Statement => 1478,
+ Iir_Kind_Component_Instantiation_Statement => 1489,
+ Iir_Kind_Psl_Default_Clock => 1493,
+ Iir_Kind_Simple_Simultaneous_Statement => 1500,
+ Iir_Kind_Generate_Statement_Body => 1511,
+ Iir_Kind_If_Generate_Else_Clause => 1517,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1527,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1537,
+ Iir_Kind_Selected_Waveform_Assignment_Statement => 1548,
+ Iir_Kind_Null_Statement => 1552,
+ Iir_Kind_Assertion_Statement => 1559,
+ Iir_Kind_Report_Statement => 1565,
+ Iir_Kind_Wait_Statement => 1573,
+ Iir_Kind_Variable_Assignment_Statement => 1580,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1587,
+ Iir_Kind_Return_Statement => 1593,
+ Iir_Kind_For_Loop_Statement => 1602,
+ Iir_Kind_While_Loop_Statement => 1611,
+ Iir_Kind_Next_Statement => 1618,
+ Iir_Kind_Exit_Statement => 1625,
+ Iir_Kind_Case_Statement => 1633,
+ Iir_Kind_Procedure_Call_Statement => 1639,
+ Iir_Kind_If_Statement => 1649,
+ Iir_Kind_Elsif => 1655,
+ Iir_Kind_Character_Literal => 1663,
+ Iir_Kind_Simple_Name => 1671,
+ Iir_Kind_Selected_Name => 1680,
+ Iir_Kind_Operator_Symbol => 1686,
+ Iir_Kind_Reference_Name => 1690,
+ Iir_Kind_External_Constant_Name => 1698,
+ Iir_Kind_External_Signal_Name => 1706,
+ Iir_Kind_External_Variable_Name => 1715,
+ Iir_Kind_Selected_By_All_Name => 1721,
+ Iir_Kind_Parenthesis_Name => 1726,
+ Iir_Kind_Package_Pathname => 1730,
+ Iir_Kind_Absolute_Pathname => 1731,
+ Iir_Kind_Relative_Pathname => 1732,
+ Iir_Kind_Pathname_Element => 1737,
+ Iir_Kind_Base_Attribute => 1739,
+ Iir_Kind_Subtype_Attribute => 1744,
+ Iir_Kind_Element_Attribute => 1749,
+ Iir_Kind_Left_Type_Attribute => 1754,
+ Iir_Kind_Right_Type_Attribute => 1759,
+ Iir_Kind_High_Type_Attribute => 1764,
+ Iir_Kind_Low_Type_Attribute => 1769,
+ Iir_Kind_Ascending_Type_Attribute => 1774,
+ Iir_Kind_Image_Attribute => 1780,
+ Iir_Kind_Value_Attribute => 1786,
+ Iir_Kind_Pos_Attribute => 1792,
+ Iir_Kind_Val_Attribute => 1798,
+ Iir_Kind_Succ_Attribute => 1804,
+ Iir_Kind_Pred_Attribute => 1810,
+ Iir_Kind_Leftof_Attribute => 1816,
+ Iir_Kind_Rightof_Attribute => 1822,
+ Iir_Kind_Delayed_Attribute => 1831,
+ Iir_Kind_Stable_Attribute => 1840,
+ Iir_Kind_Quiet_Attribute => 1849,
+ Iir_Kind_Transaction_Attribute => 1858,
+ Iir_Kind_Event_Attribute => 1862,
+ Iir_Kind_Active_Attribute => 1866,
+ Iir_Kind_Last_Event_Attribute => 1870,
+ Iir_Kind_Last_Active_Attribute => 1874,
+ Iir_Kind_Last_Value_Attribute => 1878,
+ Iir_Kind_Driving_Attribute => 1882,
+ Iir_Kind_Driving_Value_Attribute => 1886,
+ Iir_Kind_Behavior_Attribute => 1886,
+ Iir_Kind_Structure_Attribute => 1886,
+ Iir_Kind_Simple_Name_Attribute => 1893,
+ Iir_Kind_Instance_Name_Attribute => 1898,
+ Iir_Kind_Path_Name_Attribute => 1903,
+ Iir_Kind_Left_Array_Attribute => 1910,
+ Iir_Kind_Right_Array_Attribute => 1917,
+ Iir_Kind_High_Array_Attribute => 1924,
+ Iir_Kind_Low_Array_Attribute => 1931,
+ Iir_Kind_Length_Array_Attribute => 1938,
+ Iir_Kind_Ascending_Array_Attribute => 1945,
+ Iir_Kind_Range_Array_Attribute => 1952,
+ Iir_Kind_Reverse_Range_Array_Attribute => 1959,
+ Iir_Kind_Attribute_Name => 1968
);
function Get_Fields_First (K : Iir_Kind) return Fields_Index is
@@ -7393,7 +7410,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive
| Iir_Kind_Block_Statement
@@ -8172,7 +8190,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive
| Iir_Kind_Block_Statement
@@ -8223,7 +8242,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive
| Iir_Kind_Block_Statement
@@ -8309,7 +8329,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive
| Iir_Kind_Block_Statement
@@ -8777,7 +8798,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive =>
return True;
@@ -9035,7 +9057,8 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Concurrent_Assertion_Statement
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Assertion_Statement
| Iir_Kind_Report_Statement =>
@@ -9049,7 +9072,8 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Concurrent_Assertion_Statement
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Assertion_Statement
| Iir_Kind_Report_Statement =>
@@ -9393,7 +9417,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive
| Iir_Kind_Block_Statement
@@ -10759,7 +10784,13 @@ package body Vhdl.Nodes_Meta is
function Has_Psl_Property (K : Iir_Kind) return Boolean is
begin
- return K = Iir_Kind_Psl_Assert_Statement;
+ case K is
+ when Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_Psl_Property;
function Has_Psl_Sequence (K : Iir_Kind) return Boolean is
@@ -10799,7 +10830,8 @@ package body Vhdl.Nodes_Meta is
case K is
when Iir_Kind_Psl_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive =>
return True;
@@ -10813,7 +10845,8 @@ package body Vhdl.Nodes_Meta is
case K is
when Iir_Kind_Psl_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive =>
return True;
@@ -10826,7 +10859,8 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive =>
return True;
@@ -10839,7 +10873,8 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive =>
return True;
@@ -10852,7 +10887,8 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Psl_Assert_Statement
+ | Iir_Kind_Psl_Assert_Directive
+ | Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
| Iir_Kind_Psl_Restrict_Directive =>
return True;