Multi-level hierarchy configurations in VHDL are currently not supported for the Quartus® II Integrated Synthesis. An example of a multi-level hierarchy configuartion is shown below:
--top level
ENTITY top IS
...
CONFIGURATION top_conf OF top IS
...
USE ENTITY work.submodule(first_sub_arch);
...
USE ENTITY work.submodule(second_sub_arch);
...
--second level
ENTITY submodule
...
ARCHITECTURE behavioral OF submodule IS
...
BEGIN
first_sub_arch_instance : lowestmodule ...
second_sub_arch_instance : lowestmodule ...
END behavioral
--third level
ENTITY lowestmodule IS
...
ARCHITECTURE first_sub_arch OF lowestmodule IS
...
ARCHITECTURE second_sub_arch OF lowestmodule IS
...
To work around this issue, define a separate configuration for each of the submodules. An example of this workaround is shown below.
--top VHDL
ENTITY top IS
...
CONFIGURATION top_conf OF top IS
...
USE CONFIGURATION work.submodule(first_submodule);
...
USE CONFIGURATION work.submodule(second_submodule);
...
--second level
ENTITY submodule
...
ARCHITECTURE behavioral OF submodule IS
...
BEGIN
first_submodule_instance : lowestmodule ...
second_submodule_instance : lowestmodule ...
END behavioral
CONFIGURATION first_config OF submodule IS
...
USE ENTITY work.submodule(first_sub_arch);
...
CONFIGURATIOIN second_config OF submodule IS
...
USE ENTITY work.submodule(first_sub_arch);
...
--third level
ENTITY lowestmodule IS
...
ARCHITECTURE first_sub_arch OF lowestmodule IS
...
ARCHITECTURE second_sub_arch OF lowestmodule IS
...
This syntax is scheduled to be supported in a future release of the Quartus II software.