I am new to VHDL and am targeting a Spartan-7 FPGA, using VHDL. For technical reasons I have to develop outside the Vivado or other environments. It seems like there are several posts that have similar questions, like here and here. The first one I can't quite understand and the second one seems to increase the clock frequency and use Verilog rather than VHDL.
I found this post but it seems that it is more of a practice exercise. Implementing it was hard to get right and the resulting clock, when it worked, looked imprecise and sort of jagged on the scope.
I also understand from various posts that there is something called a PLL (phase-locked loop) that will help and it is natively implemented on each chip with correspondingly chip-dependent VHDL implementations. I don't really understand how to find the documentation for PLL or if it's something I can access via "pure" VHDL, that is, not in an environment like Vivado.
So, the question boils down to: How can I get a reliable 80 MHz clock from a 100 MHz clock input on the Spartan-7 chip without using Vivado or some similar proprietary environment? Perhaps a sub-question is: How do I implement a PLL on Spartan-7 with pure VHDL?