При цифровом синтезе частоты вы всегда ограничены или шагом тактирования (если ШИМ формируется таймером) или появлением относительно низкочастотного дрожания фронта/спада (если использовать фазовый аккумулятор). Первое не позволяет точно сохранять коэффициент заполнения при смене частоты и даже сетка возможных частот ограничена, второе добавляет шум в выходной сигнал. Ну и плюс цифровые генераторы и счётчики (или DSS) доступны в дешевом сегменте лишь до не слишком больших частот (заметно ниже 1ГГц), что ограничивает точность и самой частоты, и коэффициента заполнения.
Потому спор в отсутствии ТС бессмыслен.
А учитывая уровень его знаний и запросов по сообщениям в этой теме, то решение с двумя ОУ выглядит великолепным.
Это если забыть о двухполярном источнике питания, который либо уже есть, либо его нет.
Не обязательно, два ОУ будут прекрасно работать и в однополярном режиме. Относительно полпитания. А выход, если надо, то отвязывается конденсатором.
(PS. Пример для таймерного способа)
Возьмём не слишком высокую частоту в 100МГц и попытаемся выдать 47.00% ШИМ частотой 300.000кГц. Во первых не получится точной частоты, ближайший коэффициент деления лишь 333, что даёт частоту 300.3003кГц, во вторых 47% заполнение требует 156.51 такта, что тоже невозможно, округляем до 157 и получаем в итоге частоту 300.3кГц с заполнением 47.15%.
При смене частоты до 297кГц коэффициенты будут 337 и 158 и итог 296.7кГц и 46.88% заполнение.
Точность удержания коэффициента заполнения около частоты 300кГц будет всего лишь ±0.15%, и это при весьма приличной тактовой частоте в 100МГц.