When using a pcore with a user library (package with constants) XPS fails while generating the synthesis project files.
If I use the same pcore with ISE it works correctly.
XPS uses the lib entry in the .pao-file to generate the .prj-file of the pcore.
In this prj-file (/synthesis) the lib with the package is not included.
This results in the errors below.
How can the xps-parser be directed to take the lib of the .pao-file.
All files are in the same directory /pcore/name/hdl/vhdl
Example errors:
ERROR:EDK:1405 - File not found in any repository
'defines/hdl/vhdl/ka81_defines.vhd'
Generating synthesis project file ...
ERROR:EDK:1405 - File not found in any repository
'defines/hdl/vhdl/ka81_defines.vhd'
ERROR:EDK:440 - platgen failed with errors!
make: *** [implementation/xps_ll_temac_0_wrapper.ngc]
Solution 1:
The line defining the lib is below :
lib defines ka81_defines vhdl
You need to create a directory hierarchy and copy the appropriate files into it, for example:
./pcores/defines/hdl/vhdl/ka81_defines.vhd
It now works because the package is in a valid path and can be shared by several pcores.
The example attached has a simple (dummy) pcore that uses another directory for another entity (dummy).
This other library is call mylib.
mylib contains 2 files, a vhdl file lib and the required pao file.
In the pcores that need this "mylib" modify:
1- the pao file order and add "lib mylib all" before the rest of your files.
2- the vhdl files -> library mylib; use mylib.all;
You can then use the lib.
For example:
my_inst: entity mylib.test port map( inp => Bus2IP_Data, outp => IP2Bus_Data );
In the attached, the pcore cip1 uses mylib and that goes through the flow.Solution 2:
"ERROR:EDK:1405 - File not found in any repository" can also occur on a Windows machine if the project path is too long.
It is recommended to copy the project to c:\temp\ for example and retry with the shorter path.
Name | File Size | File Type |
---|---|---|
pcores.zip | 274 KB | ZIP |