Осваиваю Verilog и MAX-10.
Захотел запустить внутренний тактовый генератор.
Посмотрел в Tools->IP-catalog (Quartus prime 17.1.0) - в разделе Library->Clock;PLLs and Resets.
Там - ALTCLKCTRL, ALTPLL и ALTPLL_RECONFIG.
Интуитивно понятно, что всё не то.
Полистал документ UG-M10CLKPLL (Intel® MAX® 10 Clocking and PLL User Guide).
Там были в т.ч. четыре раздела:
1) ALTCLKCTRL IP Core References
2) ALTPLL IP Core References
3) ALTPLL_RECONFIG IP Core References
4) Internal Oscillator IP Core References
"Номер четыре - это то, что нужно!" - подумал я. Заодно прочитал, что:
Clock Frequency 10M02, 10M04, 10M08, 10M16, and 10M25: 55 MHz, 116 MHz.
Отлично! Значит я смогу назначить своей 10M02 или 55МГц или 116МГц.
Но где его взять, это IP Core?
Начал гуглить по словам - на сочетание "Internal Oscillator IP Core References" попадался лишь этот самый раздел даташита.
Начал рыться в папках Квартуса. Нашел altera_int_osc. Даже без глубокого знания Verilog было видно, что это обертка над функцией (мегафункцией? модулем?) "fiftyfivenm_oscillator". О!! fiftyfive - это же "пятьдесят пять" по английски. Как одна из двух возможных частот для 10M02.
Загуглил "fiftyfivenm_oscillator" и получил от гугла... ровно две ссылки. Одну - на текст "altera_int_osc", вторую - на альтеровский форум где она вскользь упоминается в контексте невозможности на MAX-10 присоединить внутренний генератор к внутреннему PLL-у.
Скопировал текст загадочной функции из altera_int_osc в свой модуль прописав свой проводок-выход clk_test в .clkout и лог.1 в .oscena
Код
fiftyfivenm_oscillator # (
.device_id("08"),
.clock_frequency("dummy")
) oscillator_dut (
.clkout(clk_test),
.clkout1(),
.oscena(1'b1));
end
На выходе появился меандр на частоте 80МГц. Это и не 55МГц и не 116МГц. Попробовал наугад поменять параметр .clock_frequency - без изменений, меандр 80МГц. Попробовал поменять параметры .clock_frequency и .device_id на откровенную белиберду. Без изменений, меандр на 80МГц.
В общем. Что это за "fiftyfivenm_oscillator", где про нее прочитать, есть ли более правильный способ включения внутреннего тактового генератора, где мои 55МГц?