Немного уточню предыдущий ответ от alman.
alman пишет:
Дело в том, что ПЗУ в проекте это только эмуляция...
Это относится к FPGA (например на Марсоход2), где нет внутреннего ПЗУ (есть свое внутреннее ОЗУ, заполняемое из внешней конфигурационной флешки или через JTAG).
UFM блок в MAXII (CPLD) на Марсоход1 содержит флеш ПЗУ небольшого объема (пользовательская флеш память),
т.е. пользователь может сам модифицировать его содержимое из своего проекта (не трогая основную прошивку с конфигурацией (sof) которая хранится в блоке CFM (конфигурационная флеш память)) или заливать содержимое из Квартуса, и от включения к включению оно будет сохраняться.
Milka14 пишет:
Зачем нам реализовывать ПЗУ внутри проекта, если оно и так у нас вроде как есть в CPLD?
В ней можно хранить какие-то значения внешних или внутренних событий после выключения платы (предварительно записывая их в UFM), или просто хранить какие-то константы.
Возможно многое прояснится, если воспользоваться поиском по блогу, введите UFM и гляньте статьи, где упоминается этот блок.
О структуре и работе UFM блока можно почитать в этом документе с официального сайта Алтеры (там же есть и о работе внутреннего генератора):
www.altera.com/en_US/pdfs/literature/hb/max2/max2_mii51010.pdf
гляньте еще документ по архитектуре MAXII:
www.altera.com/content/dam/altera-www/gl...x2/max2_mii51002.pdf
На второй вопрос:
Весь код генерится приложением Квартуса MegaWizard Plug-In Manager. В нем же производится настройка различных модулей (Мегафункций) под Ваши нужды. Своего рода это библиотека различных компонентов (буферов, счетчиков, регистров, логики, разных контроллеров и т.д.).
Мегавизард генерит помимо файлов реализации на языке Verilog или VHDL файлы для симуляции и графические файлы компонентов, которые можно вставлять в проект.
Непонятно о каком COUNTER идет речь,
если о мегафункции LPM_COUNTER, то можно глянуть:
www.altera.com.cn/content/dam/altera-www...g_lpm_counter_mf.pdf
или воспользоваться помощью Квартуса по названию Мегафункции.