A am working on an FPGA based function generator and I am aiming for max frequency to be higher than 10 MHz, hopefully 30 MHz. I have implemented most of the functionality except amplitude control. Ideally I'd like to have a way to digitally control the amplitude. I have thought about using the following: digital attenuators, feedback amplifier circuits, some sort of FET used as variable resistor and not using any specific device at all and just changing the values I pass to the DAC.
Changing the DAC values seems the easiest however, it would negatively affect the resolution of the waveform on lower amplitudes.
Using a feedback amp seems to me like a good way to precisely control the amplitude however the frequency response of many opamps and the whole circuit that would need to be designed makes for an uninviting option.
Similar stuff with using some sort of FET, say JFET. Something tells me that it wouldn't be as easy as sticking a resistor to a JFET and not expecting any degradation in signal fidelity.
I have no opinion on digital RF attenuators, I think that might be a way to go.
The question is if any of those approaches are better suited for operation at specified frequencies that the other, and what are the most frequently used approaches in the field?