diff options
| author | tmeissner <programming@goodcleanfun.de> | 2021-10-25 11:56:23 +0200 | 
|---|---|---|
| committer | Tristan Gingold <tgingold@free.fr> | 2021-11-02 19:31:25 +0100 | 
| commit | f911b6b97b379415eb5620d29d4579541bb5facd (patch) | |
| tree | 18e0f1ef8277c844657086aa2b5bdf4cf56f2fff /src | |
| parent | 86fd1ab3079b50c5b7234db2cedf3d1e8c0f081b (diff) | |
| download | ghdl-f911b6b97b379415eb5620d29d4579541bb5facd.tar.gz ghdl-f911b6b97b379415eb5620d29d4579541bb5facd.tar.bz2 ghdl-f911b6b97b379415eb5620d29d4579541bb5facd.zip  | |
synth: Support alias declarations in vunit
Diffstat (limited to 'src')
| -rw-r--r-- | src/synth/elab-vhdl_insts.adb | 6 | ||||
| -rw-r--r-- | src/synth/synth-vhdl_expr.adb | 4 | ||||
| -rw-r--r-- | src/synth/synth-vhdl_stmts.adb | 9 | ||||
| -rw-r--r-- | src/vhdl/vhdl-annotations.adb | 4 | ||||
| -rw-r--r-- | src/vhdl/vhdl-canon.adb | 4 | ||||
| -rw-r--r-- | src/vhdl/vhdl-sem_psl.adb | 4 | 
6 files changed, 23 insertions, 8 deletions
diff --git a/src/synth/elab-vhdl_insts.adb b/src/synth/elab-vhdl_insts.adb index e5fc5e97b..4a1eb7331 100644 --- a/src/synth/elab-vhdl_insts.adb +++ b/src/synth/elab-vhdl_insts.adb @@ -374,7 +374,9 @@ package body Elab.Vhdl_Insts is                | Iir_Kind_Function_Body                | Iir_Kind_Procedure_Body                | Iir_Kind_Attribute_Declaration -              | Iir_Kind_Attribute_Specification => +              | Iir_Kind_Attribute_Specification +              | Iir_Kind_Object_Alias_Declaration +              | Iir_Kind_Non_Object_Alias_Declaration =>                 Elab_Declaration (Unit_Inst, Item, Last_Type);              when Iir_Kinds_Concurrent_Signal_Assignment                 | Iir_Kinds_Process_Statement @@ -384,7 +386,7 @@ package body Elab.Vhdl_Insts is                 | Iir_Kind_Component_Instantiation_Statement =>                 Elab_Concurrent_Statement (Unit_Inst, Item);              when others => -               Error_Kind ("elab_vunit_declaration", Item); +               Error_Kind ("elab_verification_unit", Item);           end case;           Item := Get_Chain (Item);        end loop; diff --git a/src/synth/synth-vhdl_expr.adb b/src/synth/synth-vhdl_expr.adb index 2717d5eec..0d8899465 100644 --- a/src/synth/synth-vhdl_expr.adb +++ b/src/synth/synth-vhdl_expr.adb @@ -858,6 +858,7 @@ package body Synth.Vhdl_Expr is             | Iir_Kind_Constant_Declaration             | Iir_Kind_Iterator_Declaration             | Iir_Kind_Object_Alias_Declaration +           | Iir_Kind_Non_Object_Alias_Declaration             | Iir_Kind_File_Declaration             | Iir_Kind_Interface_File_Declaration =>              return Get_Value (Syn_Inst, Name); @@ -2162,7 +2163,8 @@ package body Synth.Vhdl_Expr is              | Iir_Kind_Selected_Name              | Iir_Kind_Interface_Signal_Declaration --  For PSL.              | Iir_Kind_Signal_Declaration   -- For PSL. -            | Iir_Kind_Object_Alias_Declaration +            | Iir_Kind_Object_Alias_Declaration   -- For PSL +            | Iir_Kind_Non_Object_Alias_Declaration   -- For PSL              | Iir_Kind_Implicit_Dereference              | Iir_Kind_Dereference =>              declare diff --git a/src/synth/synth-vhdl_stmts.adb b/src/synth/synth-vhdl_stmts.adb index 989942244..d26b24f73 100644 --- a/src/synth/synth-vhdl_stmts.adb +++ b/src/synth/synth-vhdl_stmts.adb @@ -117,6 +117,7 @@ package body Synth.Vhdl_Stmts is             | Iir_Kind_Constant_Declaration             | Iir_Kind_File_Declaration             | Iir_Kind_Interface_File_Declaration +           | Iir_Kind_Non_Object_Alias_Declaration             | Iir_Kind_Object_Alias_Declaration =>              declare                 Targ : constant Valtyp := Get_Value (Syn_Inst, Pfx); @@ -3785,7 +3786,9 @@ package body Synth.Vhdl_Stmts is                | Iir_Kind_Function_Body                | Iir_Kind_Procedure_Body                | Iir_Kind_Attribute_Declaration -              | Iir_Kind_Attribute_Specification => +              | Iir_Kind_Attribute_Specification +              | Iir_Kind_Object_Alias_Declaration +              | Iir_Kind_Non_Object_Alias_Declaration =>                 Synth_Concurrent_Declaration (Syn_Inst, Item);              when Iir_Kinds_Concurrent_Signal_Assignment                 | Iir_Kinds_Process_Statement @@ -3827,7 +3830,9 @@ package body Synth.Vhdl_Stmts is                | Iir_Kind_Function_Body                | Iir_Kind_Procedure_Body                | Iir_Kind_Attribute_Declaration -              | Iir_Kind_Attribute_Specification => +              | Iir_Kind_Attribute_Specification +              | Iir_Kind_Object_Alias_Declaration +              | Iir_Kind_Non_Object_Alias_Declaration =>                 Finalize_Declaration (Syn_Inst, Item, False);              when others =>                 Error_Kind ("synth_verification_unit(2)", Item); diff --git a/src/vhdl/vhdl-annotations.adb b/src/vhdl/vhdl-annotations.adb index 9daa19abc..a1d8c7611 100644 --- a/src/vhdl/vhdl-annotations.adb +++ b/src/vhdl/vhdl-annotations.adb @@ -1167,7 +1167,9 @@ package body Vhdl.Annotations is                | Iir_Kind_Function_Body                | Iir_Kind_Procedure_Body                | Iir_Kind_Attribute_Declaration -              | Iir_Kind_Attribute_Specification => +              | Iir_Kind_Attribute_Specification +              | Iir_Kind_Object_Alias_Declaration +              | Iir_Kind_Non_Object_Alias_Declaration =>                 Annotate_Declaration (Vunit_Info, Item);              when Iir_Kinds_Concurrent_Signal_Assignment                 | Iir_Kinds_Process_Statement diff --git a/src/vhdl/vhdl-canon.adb b/src/vhdl/vhdl-canon.adb index ddaed3792..aba586eae 100644 --- a/src/vhdl/vhdl-canon.adb +++ b/src/vhdl/vhdl-canon.adb @@ -3433,7 +3433,9 @@ package body Vhdl.Canon is                 | Iir_Kind_Function_Body                 | Iir_Kind_Procedure_Body                 | Iir_Kind_Attribute_Declaration -               | Iir_Kind_Attribute_Specification => +               | Iir_Kind_Attribute_Specification +               | Iir_Kind_Object_Alias_Declaration +               | Iir_Kind_Non_Object_Alias_Declaration =>                 Item := Canon_Declaration (Unit, Item, Null_Iir);              when Iir_Kinds_Concurrent_Signal_Assignment                 | Iir_Kinds_Process_Statement diff --git a/src/vhdl/vhdl-sem_psl.adb b/src/vhdl/vhdl-sem_psl.adb index c000c1a47..058d4a393 100644 --- a/src/vhdl/vhdl-sem_psl.adb +++ b/src/vhdl/vhdl-sem_psl.adb @@ -1190,7 +1190,9 @@ package body Vhdl.Sem_Psl is                 | Iir_Kind_Function_Body                 | Iir_Kind_Procedure_Body                 | Iir_Kind_Attribute_Declaration -               | Iir_Kind_Attribute_Specification => +               | Iir_Kind_Attribute_Specification +               | Iir_Kind_Object_Alias_Declaration +               | Iir_Kind_Non_Object_Alias_Declaration =>                 Sem_Decls.Sem_Declaration                   (Item, Prev_Item, False, Attr_Spec_Chain);              when Iir_Kinds_Concurrent_Signal_Assignment  | 
