I need to add a PLL entity to my otherwise very portable & clean VHDL code. When using the Quartus IP library wizard to create a PLL I end up with about 10-20 files in my projects some of which look copyrighted and some that do not seem suitable for version control (e.g. containing absolute paths or lots of machine generated meta data).
What files do I need to add to my open source project to be able to build the design - I'm hoping that it's a small subset of all those files.
Ideally the PLL entity should be portable between different Quartus versions and FPGA devices.
More on this issue here: https://www.reddit.com/r/FPGA/comments/bzg9f9/version_control_of_intelquartus_megafunction/
So how can I share my design with other developers in tje open source community?
Should I request every developer to use the mega wizard to create a PLL entity that works with the design? Or perhaps creatr one set of IP files for every version of Quartus, and add them all to the Git repository?
You can Qar the project file and can share with other designers, the Qar file have all the settings and design file.. For making Qar from Quartus follow the below procedure.
Click Project in Quartus submenu Archive Project.
That does not sound like a good solution for an active open source project (you want all files to be in source form / plain text).
Is there no pure HDL solution for instantiating a PLL? For instance, block RAM and DSP functions (multiplication) can be infered from regular HDL constructs. An Intel library of common IP (e.g. a PLL) would be very useful.
So I found an HDL-only solution that worked for me, but it feels like a hack since the API seems to be undocumented.
It's based on the concept of instantiating an "altera_pll" module in parameterized Verilog, and then wrap it in a VHDL component.
Source code here:
I have no idea how well it works between devices and Quartus versions.