General Description: The package file is not correctly recognized in ISE 6.1i. Synthesis fails and reports error messages similar to the following:
"ERROR:HDLParsers:3014 - my_design.vhd Line 26. Library unit my_package is not available in library work. WARNING:HDLParsers:3465 - Library has no units. Did not save reference file xst/work/hdllib.ref for it."
This design may have successfully synthesized in ISE 5.2i without alterations.
This problem might be due to an error in the code that links packages together. The code checks to see if the module in question has a default secondary module (i.e., architecture); if it does, it asks the secondary to connect the packages. However, the problem occurs when modules that do not have secondary modules are skipped.
If a VHDL source file has a 'use' clause that does not contain the library as part of the prefix, Project Navigator will not associate the package with the 'work' library.
Example: If the 'use' statement is "use work.simple_p.all;" then there is no problem. However, if the 'use' statement is "use simple_p.all;" then the following error occurs:
"ERROR:HDLParsers:3014 - c:/ise/my_proj.vhd Line 6. Library unit simple_p is not available in library work (default library)."
As a work-around, run the Check Syntax process on the "simple_p.vhd". The Check Syntax correctly associates the package with the work library. After doing this, the error does not occur again until the project files are cleaned up or changes are made to the package. (If changes are made to the package, an error does not occur; but the changes are not seen unless a Check Syntax is rerun.)