I have a quartus project (17.0.0) that utilized the IP catalog to instantiate a pll block. I instantiated the block in a block design file (bdf). Originally, I could right click the block and select "IP Parameter Editor," and a MegaWizard dialog box would appear for me to reconfigure the parameters.I have reorganized the directory structure and moved the related files. Though I have imported every file I believed to be applicable into Quartus ("pll_1*"), the "IP Parameter Editor" is greyed out. What must I do in order to make this feature selectable again?
We reorganized because we did not like how, by default, everything had to exist at the same directory level or as a subdirectory as the quartus project file. The tools generate a ton of trash meta-data/intermediate files that quickly clutter the directory structure. We just wanted : Altera Project in one directory, all source code in a different directory, constraint files in a third directory, and testbenches in a fourth directory. This makes it much more intuitive to find what you are looking for, especially to someone unfamiliar with the project.Surely this isn't too unreasonable of a request?
Yes, it is actually.You can't reorganize files like this and expect anything to work correctly. You can store the files generated by an IP in a different location than in the project directory if you want (location selected when you start parameterizing the IP), but you still need access to the IP's .qip file, pointed to by the project's .qsf file (Quartus settings files) which must be in the same directory as the project file (.qpf). The .qip file is a single file that points to all the files that make up an IP. If you move stuff, the pointers in the .qip file will be wrong and the IP can't be used. If you put your source code in a different directory (non-IP source code, that is), then you have to make sure the project is pointing to the source code (manually edit .qsf or point to files in Add/Remove Files from Project in Quartus Project menu). I'm not sure what "constraint files" you are referring to (I/O?) but you can source other files from the main .qsf file with the Tcl "source" command. There are ways of doing what you suggest, but you have to make a number of adjustments in assignments, not just move files around, to make everything still work.
This moves most of the generated files down a level:set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files It doesn't solve all of your desires but I find it makes things more organized. Dave
rdb9879 -I do exactly what you described and it works fine. For Altera IP cores I have a /cores folder parallel to the Quartus project folder (which I call /project_name/syn). Under the cores folder I create a separate sub-folder for each IP core I generate. I create the sub-folder first, then when I open the IP catalog to create the IP I point it to the new folder. In my .qsf file I have a "set_global_assignment -name QIP_FILE" assignment that points to the .qip file for each IP core. If you do it like this then you can move the IP core sub-folders around freely if you need to and just update the .qip file pointer in the .qsf file. I also have a /src folder for source code, a /sim folder for simulations, and a /SDC folder for SDC files. If I'm using 3rd party IP cores they will go in a separate folder as well. I've seen people use a single folder for everything (like most of Altera's example projects) and it's a disaster.
Thanks all for the input. I followed rsefton's advice and created a sub-folder for each generated IP core. In the directory, all it has is *.bsf, *.cmp, *.qip, and *.vhd. To get the Megawizard dialog box to appear (and make "IP Parameter Editor" selectable, which was my original problem), all I had to do was go to Options -> Libraries -> add directory to my sub-folder under "Project Libraries".Worked like a charm. That was a very small price to pay to have a neat and tidy directory structure.