diff options
Diffstat (limited to 'src/synth')
-rw-r--r-- | src/synth/elab-vhdl_decls.adb | 10 | ||||
-rw-r--r-- | src/synth/elab-vhdl_insts.ads | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/synth/elab-vhdl_decls.adb b/src/synth/elab-vhdl_decls.adb index 111e8f667..33aa08560 100644 --- a/src/synth/elab-vhdl_decls.adb +++ b/src/synth/elab-vhdl_decls.adb @@ -313,8 +313,18 @@ package body Elab.Vhdl_Decls is null; when Iir_Kind_File_Declaration => Elab_File_Declaration (Syn_Inst, Decl); + when Iir_Kind_Package_Instantiation_Declaration => Vhdl_Insts.Elab_Package_Instantiation (Syn_Inst, Decl); + when Iir_Kind_Package_Declaration => + Vhdl_Insts.Elab_Package_Declaration (Syn_Inst, Decl); + when Iir_Kind_Package_Body => + declare + Spec : constant Node := Get_Package (Decl); + begin + Vhdl_Insts.Elab_Package_Body (Syn_Inst, Spec, Decl); + end; + when Iir_Kind_Protected_Type_Body => null; when Iir_Kind_Psl_Default_Clock => diff --git a/src/synth/elab-vhdl_insts.ads b/src/synth/elab-vhdl_insts.ads index f0004cc35..7e64bb944 100644 --- a/src/synth/elab-vhdl_insts.ads +++ b/src/synth/elab-vhdl_insts.ads @@ -33,6 +33,10 @@ package Elab.Vhdl_Insts is Inter_Chain : Node; Assoc_Chain : Node); + procedure Elab_Package_Declaration + (Parent_Inst : Synth_Instance_Acc; Pkg : Node); + procedure Elab_Package_Body + (Parent_Inst : Synth_Instance_Acc; Pkg : Node; Bod : Node); procedure Elab_Package_Instantiation (Parent_Inst : Synth_Instance_Acc; Pkg : Node); |