I am a beginner with both VHDL and Quartus and I have a question regarding libraries and components.
I am trying to create a personal library which will contain different packages with functions and different components so I can reuse them easily between designs.
Right now, to learn how to use this I am trying to create a package which will contain different logic gates (typical stuff, and gates and such).
I have the following .vhd files in my project:
- .vhd files which contain one gate entity each: and_gate.vhd, or_gate.vhd
- .vhd file with a package with the components for those entities: my_gates_pkg.vhd
- Top entity where I try to use the components from the library: top_entity.vhd
In the gate files and package I have added the directive:
--synthesis library my_library
So they are compiled into the “my_library” library.
Right now, for it to work I need to add all files to the project: and_gate.vhd, or_gate.vhd, my_gates_pkg.vhd and top_entity.vhd.
Then in the top_entity I write:
And in the architecture of top_entity.vhd I use the component like this:
First_gate: and_gate port map(a => a, b => b, f => f);
The problem I have is that in the future when the number of components grows, I will have to add dozens of files to the project. Which I think is inconvenient and I am sure there must be a better way to do this.
Is there a way to only have to point to a place to make this work? I was thinking that the Libraries tab in the Settings window would work, but I have not managed to make it work. I pointed the Global Library to the folder where the .vhd files are located but I did not succeed, I still had to have all files added to the project.
Ideally I would like to have my component files and the package files in a separate directory and have Quartus point to the library where all the packages are.
I have tried to find an answer on the internet for some hours but I have not managed to find an answer. Sorry if I have missed the answer somewhere.
Thank you for time