Using constants from package on bdf
There were some questions on this forum about constants on *.bdf, e.g. https://community.intel.com/t5/Intel-Quartus-Prime-Software/Is-a-Quartus-bdf-file-can-access-a-package-in-WORK-library/m-p/134534
The main problem is that if I would like to use *.bdf as my top-level file and I would like to have the ability to change some parameters I use generic/parameter to make it appear on top-level.
Imagine I would use vhd-file as top-level. I can write such code:
<...> library work; entity process_test is generic ( CCC : INTEGER := work.my_pack.myPar ); <...>
where my_pack is a package with constant myPar defined. During compilation, Quartus will create a proper scheme with the value of CCC equal to the value of myPar from the package.
While using *.bdf-file I can try to use the same approach:
But while compiling it gets an error.
I can't truly understand why it doesn't see my constants, because it definitely uses work library. However, I can't use any package with constants so they can be assigned to these parameters. Notice, whenever I generate *.vhd-file from any good *.bdf I see one important line:
library work;
which tells me that this file must get all information from work.
Of course, I can use the solution with set_parameter (https://community.intel.com/t5/Intel-Quartus-Prime-Software/Block-Diagram-File-with-Parameters-Generate-VHDL-File-not/td-p/17001) but it doesn't really well for modelling in Modelsim plus it keeps constants only for top-level file, so with deep hierarchy, I can't set values for deep files.
Now, the question: is it normal behaviour for *.bdf? Why does it see work library but still doesn't see constants from work? Is there any way to add package on *.bdf?