Community
cancel
Showing results for 
Search instead for 
Did you mean: 
dsmirnov
New Contributor I
329 Views

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-packa... 

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:

bdf_constant_question.JPG

 

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-Gener...) 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?

0 Kudos
5 Replies
305 Views

Have you tried the KDB below?  You can try to use the param primitives and constant primitives.

https://www.intel.com/content/www/us/en/programmable/support/support-resources/knowledge-base/soluti...

What is the error shown during the compilation? 

dsmirnov
New Contributor I
296 Views

Dear @RichardTanSY_Intel,

Thank you for your answer. Yes, I tried this solution, but it is uncomfortable:

- it is a graphical info which I can't store in a separate file

- It is hard to keep in git

- I can't use same constant in different layers of files - I have to duplicate this param inside of another bdf

 

The error from the option I showed on image in my question is:

Error (275082): Illegal values "work.my_pack.myPar" for parameter "CCC". The type is "Signed Integer".

I guess that means that the compiler doesn't see my constant myPar from the package my_pack

267 Views

Could you share your design and package so that I could duplicate it from my side? 

dsmirnov
New Contributor I
249 Views

Yes @RichardTanSY_Intel , the project attached to this message

153 Views

Sorry for idling for sometime. The BDF is weak in handling this kind of situation.

My best bet is to write the design in VHDL in the first place. 

Reply