A further question wrt PXI-5402 standard function generation.
The frequency control word is calculated by dividing the desired output frequency by the sample clock frequency (100MHz for a PXI-5402) and multiplying it by 2^N where 'N' is the width of the DDS accumulator (48 for the PXI-5402). As the frequency control word is an integer does any fractional residual result in the control word being rounded up or rounded down?
e.g. if a I request a frequency of 1Hz I get a control word of 2814749.767 which would give an actual output frequency of 0.99999997 Hz if rounding down or 1.00000008 Hz if rounding up.
I believe the FCW gets rounded. I actually was able to find a LV demo for you, but it was made for the 5411. You would need to change some values to make it work for the 5402/5406: http://www.ni.com/example/28757/en/
Keep in mind that all of the DDS calculations are actually implemented in HW on an FPGA, see figure 2: http://www.ni.com/white-paper/5516/en/. The tuning word here is the same as the FCW. This image used to be used on that white paper before it was updated. The adder in Figure 2 is the same adder in this image below.
Also, as I have mentioned before, the accuracy for the Sample Clock above for the 5402 is 25ppm. If the actual frequency you are generating is such a concern, are you using an external high accuracy clock source? What is your application?
Stability is not an issue. My application includes two PXI-5402 and a PXIe-4498 in the same chassis. I need the PXIe-4498 to be sampling at an integer multpile (in fact 4 times n where n is an integer) of the fundamental output frequency of the function generators and as they share the same 100MHz clock astability of 25ppm is okay.
Using the information provided for the 4498 it is possible to calculate the actual sample period from the demanded sample period. If I do this and compare (i.e. 1kHz to the 4502 and say 64kHz to the 4498) then I will get a tiny discrepancy. Maybe I haven't implemented the 4498 function correctly although I believe it agrees with the value obtained by requesting the appropriate property from the card itself.