aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-08-25 18:36:44 +0200
committerTristan Gingold <tgingold@free.fr>2022-08-25 18:36:44 +0200
commit9574fe33eefe2810cb1f60cf22f546f21023a6d2 (patch)
treeb0501f9370342e9fb327b309410543aae700c217 /src
parentf66dfc0dacbb9994f01c45af04cf9b2a505d6f78 (diff)
downloadghdl-9574fe33eefe2810cb1f60cf22f546f21023a6d2.tar.gz
ghdl-9574fe33eefe2810cb1f60cf22f546f21023a6d2.tar.bz2
ghdl-9574fe33eefe2810cb1f60cf22f546f21023a6d2.zip
synth: handle component aspect configuration
Diffstat (limited to 'src')
-rw-r--r--src/synth/elab-vhdl_insts.adb6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/synth/elab-vhdl_insts.adb b/src/synth/elab-vhdl_insts.adb
index 36eda88e6..1b26a2ce5 100644
--- a/src/synth/elab-vhdl_insts.adb
+++ b/src/synth/elab-vhdl_insts.adb
@@ -694,6 +694,11 @@ package body Elab.Vhdl_Insts is
when Iir_Kind_Entity_Aspect_Entity =>
Ent := Get_Entity (Aspect);
Arch := Get_Architecture (Aspect);
+ Sub_Config := Get_Block_Configuration (Config);
+ when Iir_Kind_Entity_Aspect_Configuration =>
+ Sub_Config := Get_Block_Configuration (Get_Configuration (Aspect));
+ Arch := Get_Block_Specification (Sub_Config);
+ Ent := Get_Entity (Get_Named_Entity (Arch));
when others =>
Vhdl.Errors.Error_Kind
("Elab_Component_Instantiation_Statement(2)", Aspect);
@@ -712,7 +717,6 @@ package body Elab.Vhdl_Insts is
else
Arch := Get_Named_Entity (Arch);
end if;
- Sub_Config := Get_Block_Configuration (Config);
if Sub_Config = Null_Node then
Sub_Config := Get_Library_Unit
(Get_Default_Configuration_Declaration (Arch));