Hi,I have a design with 5 custom components, I generated it without warning on QSYS. Then i have included the generated .qip file in my quartus project, and i have these error for each of the custom component: Error: <QSYS system name>.<custom component name>: Component <custom component type> 1.0 not found I have open the .qip genrated by QSYS and noticed that the _hw.tcl of the cutom components are not included (and they are not in the submodule directory either); set_global_assignment -name TCL_FILE <absolute_path_to_hw.tcl> So i have create my own custom_component.qip file that designate the absolute PATH the the _hw.tcl file of each custom component, and included this file in my quartus project. It still does'nt work...i have the same error. How do i make Quartus understand where my custom components are located? Please help Thank
I had something similar to this, and I finally got it to work when I included the generated QIP file in the "synthesis" subdirectory, but did not include the .v file or the .qsys file. Not sure if that's the same problem you've got. Good luck anyway - I've given up with v11 now, but it seems to work for some people!Cheers, Simon
The .qip file should be including your source files and not the .tcl files for the components. You'll find it under /<system_name>/synthesis.I'm guessing you went from SOPCB to Qsys and are including the old SOPCB .qip file that was left behind in your top level directory (remove it from your project settings if it is already included).
That's correct, do not add the .qsys file to your project. There are all kinds of things that can go wrong if you do that.Make sure you remove the old .qip file SOPC Builder automatically added to your Quartus II project. Then add the new one (manually) that Qsys generates. Qsys doesn't automatically add the .qip file for you since it tries not to do things behind the back of the user.
--- Quote Start --- That's correct, do not add the .qsys file to your project. There are all kinds of things that can go wrong if you do that. Make sure you remove the old .qip file SOPC Builder automatically added to your Quartus II project. Then add the new one (manually) that Qsys generates. Qsys doesn't automatically add the .qip file for you since it tries not to do things behind the back of the user. --- Quote End --- I don't think the original post had anything to do with adding the .qsys file to the project; it seems this thread has gotten off topic. I encountered the same issue as the original poster, and I was able to solve the issue. I had three custom components, and I was able to generate, synthesize, build, and run my project...everything was great. However, when I closed QSys and then re-opened QSys, my components were gone, and I would have to re-add them to the QSys project. I looked at the log screen that pops up when the QSys program opens and it appeared it was looking for a folder called ‘ip’. I created a folder called ‘ip’ under my Nios core directory, and I put the custom components in that directory. I closed and re-opened my QSys project and it worked; the components remained in my project. I think the custom component wizard should create this folder if it does not exist or at least warn the user that the custom IP will not be detected if it is not contained in this folder. - Jon
The issue you are facing is the Qsys search path for _hw.tcl files. The default search path includes the project ip/ folder. I don't like that default, since I keep my source (including _hw.tcl files) in a different area to the Quartus work folder. A reasonable solution is to define the variable IP_IPX_PATH with a list of directories containing components.ipx files. Those component files can be created using ip-make-ipx (which is a command-line tool available in the NIOS II IDE shell), i.e., you can,1. Create _hw.tcl files for your custom components 2. Run ip-make-ipx in the _hw.tcl folder, or in some folder above those files, so that the generated .ipx file describes multiple _hw.tcl components. 3. Create the environment variable IP_IPX_PATH containing the path to the component.ipx files (a comma separated list) 4. Start Qsys Qsys will then find all your custom components. Cheers, Dave
Putting files into the .qip file is the same as adding it to the Quartus project directly. That said having the .qsys file as a source file appears to be working now since I saw someone do this the other day (you replied to a post that is over 2 years old). I agree you are running into something else. When you added your components were you creating them in component editor during the system creation or were they created and already on your drive? If it's the latter then what was the location you used? When you put a /ip directory under your Quartus project and open Qsys, it automatically looks there for the IP which is why those cores showed up after you added them to the /ip sub-directory later. If I recall it looks in /ip for any .ipx or .tcl files and it also will recursively look one level deeper for the same files.*Edit: looks like someone beat me to the punch :)
Hey, thank you both for your great comments (and quick too). I think this is exactly what this thread needed.Just to be thorough, I was keeping all of my custom IP in a folder called Tek_IP (company_IP), within the qsys directory. Obviously I didn't read the documentation about the manner in which QSys searches for custom IP. Anyway, thanks again. - Jon
If you have your own library of IP cores used in multiple projects I recommend using the ipx infrastructure that Dave referred to in his post. That'll let you have a central repository of IP instead of a bunch of copies floating around with each hardware project in a /ip subdirectory.