Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
14 years ago

annoying warning during synthesis.

Hi

During synthesis I get a lot of warning saying:

"Warning: Using design file some_name.vhd, which is not specified as a design file for the current project, but contains definitions for X design units and Y entities in project"

My project files are stored in libraries, and in the project settings I add the path to these libraries. the Quartus manage to find the files using these paths, but still generates these annoying warnings that clatter my reports.

What is the best way to define the path to each path? I hope I don't have to do it manually because I have a lot of them..

thanks in advance

18 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Bus width reduction is easy to avoid, I was just using it as an example, when blocks have many, many parameters, all adding/removing logic and changing port lists, it can be quite complicated. Again, it should be better. As for identifying "user generated" warnings, that's the problem, in that there is no way to tell what is user generated.

    For "the brick", the library term is a little misleading. In Quartus II, User Libraries is nothing more than a search path. So if an entity instantiates something called "ingress" for example, then Quartus II will first search all files manually added to see if they have a module/entity. Then it searches the project directory and all search path directories to see if they have a source file with that name, such as ingress.v, ingress.vhd, ingress.bdf, etc. (Note that if the file name doesn't match, such as a file called ingress_revB.v, it won't be looked at).

    VHDL has a whole different set of libraries with a different meaning.

    A .qip is just a Tcl-like file that is generally used to add files, but since they're in a file, they're held together, i.e. all the files are either added or not. The other benefit of a .qip is that it can reference where it's at, and add the files relative to it. That allows the user to move the .qip and the source files around, and as long as they keep their relative locations, it works.

    My feeling is to go to Project -> Add Files and just start adding files you know you use. If you spend 15 minutes, I imagine you'll get a significant chunk. Then start looking at the warnings, and add what keeps coming up over time. They'll all be in the .qsf, and if you want, you can cut and paste them into a .qip, and do a search and replace to make them relative paths. Unless you have thousands of files in different hierarchies(which is possible), it's usually not too much trouble.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Bus width reduction is easy to avoid, I was just using it as an example, when blocks have many, many parameters, all adding/removing logic and changing port lists, it can be quite complicated. Again, it should be better. As for identifying "user generated" warnings, that's the problem, in that there is no way to tell what is user generated.

    --- Quote End ---

    I knew the bus reduction was just an example ... but I still don't see why any of the other 'complexities' warrant the uncontrolled proliferation of so many warnings. Like I said it is not just Altera, I have used IP of other parties as well and that produced a equally insane amount of warnings. So you ignore them and just hope your HW test or simulation (for the brave ones who simulate their top-level design) works.

    If we can not better identify the 'user generated' warnings we have a strong case for the abolishment of those IP-generated warnings!

    -- added --

    It just came to mind that it is the 'encrypted IP' that generates most of the warning mess. Here I can understand that it is difficult to avoid warnings as you can not easily re-generate encrypted code if the user can choose between e.g. GMII, RGMII, of SGMII connections. Then again with a bit of effort this should be possible too.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Rysc I believe I have a few hundreds of files, so it is quite a tedious job, even worse, if I use the same libraries in several projects, I'll have to do it all over again. the .qip will solve that problem, just add one file (instead of adding the library.

    you are correct that I use the term library in the "search path" sense, not VHDL sense.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yes, that's definitely a pain. Good luck. Be sure to look at the .qip syntax from a piece of IP to see how they join the path to the .qip with the underlying HDL.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    i have a bash script that creates .qip files by parsing the directory for files with a certain extension that i could share

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    i have a bash script that creates .qip files by parsing the directory for files with a certain extension that i could share

    --- Quote End ---

    I for one would appreciate it.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi

    I have just encountered another related issue. in my .qsf file some of my asignments looks like:

    --- Quote Start ---

    set_global_assignment -name SEARCH_PATH sub_dir/sub_sub_dir

    --- Quote End ---

    But some looks like:

    --- Quote Start ---

    set_global_assignment -name SEARCH_PATH "sub_dir/sub_sub_dir"

    --- Quote End ---

    When I try to remove the quotation marks, as soon as I switch back (I perform the change in a text editor) to the Quartus window I get a pop up error message saying something like:

    "The qsf file was changed and contains errors, reverting to saved version"

    Can anyone please explain to me what I'm missing here?

    Found it - there was a space in the library name

    This is a problem because I want to copy and paste from a project to a higher level project (after adding the first project path of course)

    Thanks
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I had some trouble with running bash file so I ended up using a tcl script to list all of the source files that are in project folder (and sub folder)

    I copied the script from this book (http://www.beedub.com/book/tkbook.pdf):

    Example 7–12 Finding a file by name