Forum Discussion
Altera_Forum
Honored Contributor
21 years agoI believe the issue has to do with project-local components versus installed components. SOPC Builder will discover components placed inside the Quartus/SOPC Builder project directory and update its install registry with that information. But if SOPC Builder enumerates components for another project at another point in time, the install registry will lose the original project-local component.
The solution is to put the component in its own directory, outside of an SOPC Builder project, and tell SOPC Builder where it lives. You can also just tell SOPC Builder where the project-local component is and reference this from another project, but the possibility of a mix-up seems greater. To tell SOPC Builder where additional components may be found, use either the File->SOPC Builder Setup... configuration dialog or add the path to your environment variable SOPC_BUILDER_PATH. Both specifiers are plus ("+") delimited directory listings which point to the directory containing the component directory (i.e. two levels above the class.ptf file). This lets more than one component live in the directory pointed-to by the SOPC_BUILDER_PATH. Subdirectories deeper than this are not searched. The other piece of the puzzle here is that the code which produces generated_all.mk uses the SOPC Builder component registry to populate its COMPONENTS_DEVICE_DRIVERS list. By making your component permanently visible to SOPC Builder, you should have consistently good .mk files.