Внезапно на elotrolado стала популярной тема с моей «пробной» прошивкой RGH2 на матрикс с учетверением несущей частоты. Ну раз интересно, почему бы и не рассказать, как это реализовано? Если «пощупать» осциллографом вывод кварцевого генератора, можно увидеть вот такую картину:

У FPGA (в нашем случае — Matrix Glitcher) логика цифровая, так что сигнал «оцифруется»:

То, что написано на генераторе — 48 MHz — это частота повторений волны целиком, включая фронт и спад:

Если реагировать только на фронт волны (rising edge), получим работу на 48 МГц. Но чип умеет реагировать на оба фронта, здесь получаем 96 МГц. Все «стандартные» прошивки RGH2 работают именно на этой частоте. Тогда как же получить 192 МГц? Добавим небольшую задержку, получим два сигнала — обычный и с задержкой:

А теперь сложим их!

Получили удвоенную частоту! На схеме в Xilinx это выглядит вот так:

Стабильность полученной частоты не идеальна, но оно работает! Аналогичным образом я получал 200 MHz на чипе x360ace. Ну и на закуску, xsvf для Matrix / Coolrunner под Trinity, Corona и Zephyr. Обязательно отключите все конденсаторы между RST и GND.
