A reciprocal frequency counter does not need a constant gate time of 1 or 10 s. So it doesn't need a reference frequency of exactly 10.0000000 MHz.
For calculation of the result Fin it needs the number of incoming impulses (Nin), the number of reference pulses (Nref) and the exact reference frequency (Fref) which can be 10.000032, 9.9999975 or 10.000012 MHz. To get high resolution/accuracy the counter has to count these impulses for a minimum time intervall (>= 1 s for 8 digits e.g.) which is detected synchronously to input pulses. Input frequency Fin is calculated as: Fin=(Nin*Fref)/Nref.
The classic way to get Fref is to stabelise it and look at it as a constant. Therefor you need a VCTCXO, a high resolution DAC und an 1 pps signal of a GPS modul and some internal/external logic/counter.
A more simply way is to assume that the 1 pps signal is constant. Adding another counter (24 – 32 bit) and using the 1 pps signal as a capture signal, you can measure Fref every second and do the calculation of Fin by using this value.
As known, 1 pps signal has a jitter of about 20 – 50 ns so for high accuracy you cannot use it directly. But the moving average value of pps signal (>= 100 s) will be sufficient to reduce the jitter below 1 ns. This way 9 digits resolution should be true.
To proof this method for the first time I used an ATmega162 which has two independent counters und capture units:
http://mino-elektronik.de/fmeter/fm_software.htm#bsp2 For calculations it is important to use double values (64 bit).
Today I'm using STM32F4xx controllers. They have more counters as needed and an internal PLL circuit to generate 168 – 180 MHz for Fref. CPLD, DAC or VCTCXO are not needed.
For higher resoultion a TDC7200 offers an equivalent Fref of >= 10 GHz which means 10 digits/s.
I hope you can extend your CPLD by another counter for 1 pps evaluation.