aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-05-11 08:28:31 +0200
committerTristan Gingold <tgingold@free.fr>2019-05-11 18:13:38 +0200
commit3ef5418b4aec8ab629fdfdc2f897662b9a240ab4 (patch)
tree48423045496b25c88c36c6aa05d2fed02538724e /src
parentb3e340b0fbef7e7043f9626ee6d37a69f10edfe8 (diff)
downloadghdl-3ef5418b4aec8ab629fdfdc2f897662b9a240ab4.tar.gz
ghdl-3ef5418b4aec8ab629fdfdc2f897662b9a240ab4.tar.bz2
ghdl-3ef5418b4aec8ab629fdfdc2f897662b9a240ab4.zip
names: add more sv names.
Diffstat (limited to 'src')
-rw-r--r--src/std_names.adb22
-rw-r--r--src/std_names.ads99
2 files changed, 81 insertions, 40 deletions
diff --git a/src/std_names.adb b/src/std_names.adb
index 7a3293bf9..7628e6407 100644
--- a/src/std_names.adb
+++ b/src/std_names.adb
@@ -354,6 +354,12 @@ package body Std_Names is
Def ("tagged", Name_Tagged);
Def ("wildcard", Name_Wildcard);
+ -- SystemVerilog 2009
+ Def ("implies", Name_Implies);
+ Def ("s_until", Name_S_Until);
+ Def ("s_until_with", Name_S_Until_With);
+ Def ("until_with", Name_Until_With);
+
-- Create operators.
Def ("=", Name_Op_Equality);
Def ("/=", Name_Op_Inequality);
@@ -451,6 +457,7 @@ package body Std_Names is
Def ("sec", Name_Sec);
Def ("min", Name_Min);
Def ("hr", Name_Hr);
+ Def ("max", Name_Max);
Def ("delay_length", Name_Delay_Length);
Def ("now", Name_Now);
Def ("natural", Name_Natural);
@@ -594,6 +601,7 @@ package body Std_Names is
Def ("item", Name_Item);
Def ("__FILE__", Name_Uu_File_Uu);
Def ("__LINE__", Name_Uu_Line_Uu);
+ Def ("none", Name_None);
Def ("ieee", Name_Ieee);
Def ("std_logic_1164", Name_Std_Logic_1164);
@@ -629,9 +637,13 @@ package body Std_Names is
Def ("key_block", Name_Key_Block);
Def ("data_block", Name_Data_Block);
Def ("line", Name_Line);
+ Def ("celldefine", Name_Celldefine);
+ Def ("endcelldefine", Name_Endcelldefine);
+ Def ("default_nettype", Name_Default_Nettype);
+ Def ("resetall", Name_Resetall);
-- Verilog system tasks
- Def ("$bits", Name_D_Bits);
+ Def ("bits", Name_Bits);
Def ("$root", Name_D_Root);
Def ("$unit", Name_D_Unit);
@@ -656,6 +668,14 @@ package body Std_Names is
Def ("find_last", Name_Find_Last);
Def ("find_last_index", Name_Find_Last_Index);
Def ("num", Name_Num);
+ Def ("randomize", Name_Randomize);
+ Def ("pre_randomize", Name_Pre_Randomize);
+ Def ("post_randomize", Name_Post_Randomize);
+ Def ("srandom", Name_Srandom);
+ Def ("get_randstate", Name_Get_Randstate);
+ Def ("set_randstate", Name_Set_Randstate);
+ Def ("seed", Name_Seed);
+ Def ("state", Name_State);
-- BSV keywords
Def ("Action", Name_uAction);
diff --git a/src/std_names.ads b/src/std_names.ads
index 21762632b..0f9a1100a 100644
--- a/src/std_names.ads
+++ b/src/std_names.ads
@@ -395,9 +395,16 @@ package Std_Names is
Name_Wildcard : constant Name_Id := Name_First_SV3_1a + 13;
Name_Last_SV3_1a : constant Name_Id := Name_First_SV3_1a + 13;
+ Name_First_SV2009 : constant Name_Id := Name_Last_SV3_1a + 1;
+ Name_Implies : constant Name_Id := Name_First_SV2009 + 0;
+ Name_S_Until : constant Name_Id := Name_First_SV2009 + 1;
+ Name_S_Until_With : constant Name_Id := Name_First_SV2009 + 2;
+ Name_Until_With : constant Name_Id := Name_First_SV2009 + 3;
+ Name_Last_SV2009 : constant Name_Id := Name_First_SV2009 + 3;
+
-- VHDL operators. Used as identifiers for declaration of overloaded
-- operators.
- Name_First_Operator : constant Name_Id := Name_Last_SV3_1a + 1;
+ Name_First_Operator : constant Name_Id := Name_Last_SV2009 + 1;
Name_Op_Equality : constant Name_Id := Name_First_Operator + 000;
Name_Op_Inequality : constant Name_Id := Name_First_Operator + 001;
Name_Op_Less : constant Name_Id := Name_First_Operator + 002;
@@ -526,44 +533,45 @@ package Std_Names is
Name_Sec : constant Name_Id := Name_First_Standard + 023;
Name_Min : constant Name_Id := Name_First_Standard + 024;
Name_Hr : constant Name_Id := Name_First_Standard + 025;
- Name_Delay_Length : constant Name_Id := Name_First_Standard + 026;
- Name_Now : constant Name_Id := Name_First_Standard + 027;
- Name_Natural : constant Name_Id := Name_First_Standard + 028;
- Name_Positive : constant Name_Id := Name_First_Standard + 029;
- Name_Bit_Vector : constant Name_Id := Name_First_Standard + 030;
- Name_File_Open_Kind : constant Name_Id := Name_First_Standard + 031;
- Name_Read_Mode : constant Name_Id := Name_First_Standard + 032;
- Name_Write_Mode : constant Name_Id := Name_First_Standard + 033;
- Name_Append_Mode : constant Name_Id := Name_First_Standard + 034;
- Name_File_Open_Status : constant Name_Id := Name_First_Standard + 035;
- Name_Open_Ok : constant Name_Id := Name_First_Standard + 036;
- Name_Status_Error : constant Name_Id := Name_First_Standard + 037;
- Name_Name_Error : constant Name_Id := Name_First_Standard + 038;
- Name_Mode_Error : constant Name_Id := Name_First_Standard + 039;
- Name_Foreign : constant Name_Id := Name_First_Standard + 040;
+ Name_Max : constant Name_Id := Name_First_Standard + 026;
+ Name_Delay_Length : constant Name_Id := Name_First_Standard + 027;
+ Name_Now : constant Name_Id := Name_First_Standard + 028;
+ Name_Natural : constant Name_Id := Name_First_Standard + 029;
+ Name_Positive : constant Name_Id := Name_First_Standard + 030;
+ Name_Bit_Vector : constant Name_Id := Name_First_Standard + 031;
+ Name_File_Open_Kind : constant Name_Id := Name_First_Standard + 032;
+ Name_Read_Mode : constant Name_Id := Name_First_Standard + 033;
+ Name_Write_Mode : constant Name_Id := Name_First_Standard + 034;
+ Name_Append_Mode : constant Name_Id := Name_First_Standard + 035;
+ Name_File_Open_Status : constant Name_Id := Name_First_Standard + 036;
+ Name_Open_Ok : constant Name_Id := Name_First_Standard + 037;
+ Name_Status_Error : constant Name_Id := Name_First_Standard + 038;
+ Name_Name_Error : constant Name_Id := Name_First_Standard + 039;
+ Name_Mode_Error : constant Name_Id := Name_First_Standard + 040;
+ Name_Foreign : constant Name_Id := Name_First_Standard + 041;
-- Added by VHDL 08
- Name_Boolean_Vector : constant Name_Id := Name_First_Standard + 041;
- Name_To_Bstring : constant Name_Id := Name_First_Standard + 042;
- Name_To_Binary_String : constant Name_Id := Name_First_Standard + 043;
- Name_To_Ostring : constant Name_Id := Name_First_Standard + 044;
- Name_To_Octal_String : constant Name_Id := Name_First_Standard + 045;
- Name_To_Hstring : constant Name_Id := Name_First_Standard + 046;
- Name_To_Hex_String : constant Name_Id := Name_First_Standard + 047;
- Name_Integer_Vector : constant Name_Id := Name_First_Standard + 048;
- Name_Real_Vector : constant Name_Id := Name_First_Standard + 049;
- Name_Time_Vector : constant Name_Id := Name_First_Standard + 050;
- Name_Digits : constant Name_Id := Name_First_Standard + 051;
- Name_Format : constant Name_Id := Name_First_Standard + 052;
- Name_Unit : constant Name_Id := Name_First_Standard + 053;
+ Name_Boolean_Vector : constant Name_Id := Name_First_Standard + 042;
+ Name_To_Bstring : constant Name_Id := Name_First_Standard + 043;
+ Name_To_Binary_String : constant Name_Id := Name_First_Standard + 044;
+ Name_To_Ostring : constant Name_Id := Name_First_Standard + 045;
+ Name_To_Octal_String : constant Name_Id := Name_First_Standard + 046;
+ Name_To_Hstring : constant Name_Id := Name_First_Standard + 047;
+ Name_To_Hex_String : constant Name_Id := Name_First_Standard + 048;
+ Name_Integer_Vector : constant Name_Id := Name_First_Standard + 049;
+ Name_Real_Vector : constant Name_Id := Name_First_Standard + 050;
+ Name_Time_Vector : constant Name_Id := Name_First_Standard + 051;
+ Name_Digits : constant Name_Id := Name_First_Standard + 052;
+ Name_Format : constant Name_Id := Name_First_Standard + 053;
+ Name_Unit : constant Name_Id := Name_First_Standard + 054;
-- Added by AMS vhdl.
- Name_Domain_Type : constant Name_Id := Name_First_Standard + 054;
- Name_Quiescent_Domain : constant Name_Id := Name_First_Standard + 055;
- Name_Time_Domain : constant Name_Id := Name_First_Standard + 056;
- Name_Frequency_Domain : constant Name_Id := Name_First_Standard + 057;
- Name_Domain : constant Name_Id := Name_First_Standard + 058;
- Name_Frequency : constant Name_Id := Name_First_Standard + 059;
+ Name_Domain_Type : constant Name_Id := Name_First_Standard + 055;
+ Name_Quiescent_Domain : constant Name_Id := Name_First_Standard + 056;
+ Name_Time_Domain : constant Name_Id := Name_First_Standard + 057;
+ Name_Frequency_Domain : constant Name_Id := Name_First_Standard + 058;
+ Name_Domain : constant Name_Id := Name_First_Standard + 059;
+ Name_Frequency : constant Name_Id := Name_First_Standard + 060;
Name_Last_Standard : constant Name_Id := Name_Frequency;
@@ -674,7 +682,8 @@ package Std_Names is
Name_Item : constant Name_Id := Name_First_Misc + 033;
Name_Uu_File_Uu : constant Name_Id := Name_First_Misc + 034;
Name_Uu_Line_Uu : constant Name_Id := Name_First_Misc + 035;
- Name_Last_Misc : constant Name_Id := Name_Uu_Line_Uu;
+ Name_None : constant Name_Id := Name_First_Misc + 036;
+ Name_Last_Misc : constant Name_Id := Name_None;
Name_First_Ieee : constant Name_Id := Name_Last_Misc + 1;
Name_Ieee : constant Name_Id := Name_First_Ieee + 000;
@@ -713,11 +722,15 @@ package Std_Names is
Name_Key_Block : constant Name_Id := Name_First_Directive + 10;
Name_Data_Block : constant Name_Id := Name_First_Directive + 11;
Name_Line : constant Name_Id := Name_First_Directive + 12;
- Name_Last_Directive : constant Name_Id := Name_Line;
+ Name_Celldefine : constant Name_Id := Name_First_Directive + 13;
+ Name_Endcelldefine : constant Name_Id := Name_First_Directive + 14;
+ Name_Default_Nettype : constant Name_Id := Name_First_Directive + 15;
+ Name_Resetall : constant Name_Id := Name_First_Directive + 16;
+ Name_Last_Directive : constant Name_Id := Name_Resetall;
-- Verilog system tasks/functions.
Name_First_Systask : constant Name_Id := Name_Last_Directive + 1;
- Name_D_Bits : constant Name_Id := Name_First_Systask + 00;
+ Name_Bits : constant Name_Id := Name_First_Systask + 00;
Name_D_Root : constant Name_Id := Name_First_Systask + 01;
Name_D_Unit : constant Name_Id := Name_First_Systask + 02;
Name_Last_Systask : constant Name_Id := Name_D_Unit;
@@ -744,7 +757,15 @@ package Std_Names is
Name_Find_Last : constant Name_Id := Name_First_SV_Method + 17;
Name_Find_Last_Index : constant Name_Id := Name_First_SV_Method + 18;
Name_Num : constant Name_Id := Name_First_SV_Method + 19;
- Name_Last_SV_Method : constant Name_Id := Name_Num;
+ Name_Randomize : constant Name_Id := Name_First_SV_Method + 20;
+ Name_Pre_Randomize : constant Name_Id := Name_First_SV_Method + 21;
+ Name_Post_Randomize : constant Name_Id := Name_First_SV_Method + 22;
+ Name_Srandom : constant Name_Id := Name_First_SV_Method + 23;
+ Name_Get_Randstate : constant Name_Id := Name_First_SV_Method + 24;
+ Name_Set_Randstate : constant Name_Id := Name_First_SV_Method + 25;
+ Name_Seed : constant Name_Id := Name_First_SV_Method + 26;
+ Name_State : constant Name_Id := Name_First_SV_Method + 27;
+ Name_Last_SV_Method : constant Name_Id := Name_State;
-- BSV names
Name_First_BSV : constant Name_Id := Name_Last_SV_Method + 1;