diff options
Diffstat (limited to 'src/synth')
-rw-r--r-- | src/synth/elab-vhdl_insts.adb | 12 | ||||
-rw-r--r-- | src/synth/synth-vhdl_stmts.adb | 1 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/synth/elab-vhdl_insts.adb b/src/synth/elab-vhdl_insts.adb index 8e23b9ff7..772c45fc1 100644 --- a/src/synth/elab-vhdl_insts.adb +++ b/src/synth/elab-vhdl_insts.adb @@ -255,6 +255,15 @@ package body Elab.Vhdl_Insts is end if; end Elab_Package_Instantiation; + procedure Elab_Configuration_Declaration (Parent_Inst : Synth_Instance_Acc; + Conf : Node) + is + Syn_Inst : Synth_Instance_Acc; + begin + Syn_Inst := Create_Package_Instance (Parent_Inst, Conf); + Elab_Declarations (Syn_Inst, Get_Declaration_Chain (Conf)); + end Elab_Configuration_Declaration; + procedure Elab_Dependencies (Parent_Inst : Synth_Instance_Acc; Unit : Node) is Dep_List : constant Node_List := Get_Dependence_List (Unit); @@ -275,7 +284,7 @@ package body Elab.Vhdl_Insts is when Iir_Kind_Entity_Declaration => null; when Iir_Kind_Configuration_Declaration => - null; + Elab_Configuration_Declaration (Parent_Inst, Dep_Unit); when Iir_Kind_Context_Declaration => null; when Iir_Kind_Package_Declaration => @@ -885,6 +894,7 @@ package body Elab.Vhdl_Insts is Elab_Dependencies (Root_Instance, Get_Design_Unit (Entity)); Elab_Dependencies (Root_Instance, Get_Design_Unit (Arch)); + Elab_Configuration_Declaration (Root_Instance, Config); pragma Assert (Is_Expr_Pool_Empty); diff --git a/src/synth/synth-vhdl_stmts.adb b/src/synth/synth-vhdl_stmts.adb index 141ea05ff..df8f9994d 100644 --- a/src/synth/synth-vhdl_stmts.adb +++ b/src/synth/synth-vhdl_stmts.adb @@ -393,6 +393,7 @@ package body Synth.Vhdl_Stmts is (Syn_Inst, Target), Aggr => Target); when Iir_Kind_Simple_Name + | Iir_Kind_Selected_Name | Iir_Kind_Selected_Element | Iir_Kind_Interface_Signal_Declaration | Iir_Kind_Signal_Declaration |