MIF не поддерживается? Да, это так!
Оригинальная статья MIF is not supported?” Yes it is с сайта уважаемого Alastair M. Robinson где он рассказывает о проблемах инициализации блочной памяти в семействе MAX10.
Я только что купил пару смехотворно дешевых плат DECA MAX10 dev от Arrow и один из первых проектов который я попытался портировать на него дал мне сообщение об ошибке которого я не ожидал:
Error (276003): Cannot convert all sets of registers into
RAM megafunctions when creating nodes. The resulting number
of registers remaining in design exceeds the number of
registers in the device...
Хммм, ладно, что здесь происходит? По какой–то причине ROM в моем проекте не распознается и не реализуется как инициализированный RAM блок, что это значит?
Давайте посмотрим на предыдущую строку в потоке сообщений:
Info (276013): RAM logic "VirtualToplevel:mytl|Dhrystone_rom:rom|ram"
is uninferred because MIF is not supported for the selected family
Хмммм... да, из-за этого!
Существует несколько вариантов MAX10, и это правда, что “Компактные” варианты (10MxxSC или 10MxxDC) не поддерживают блоки оперативной памяти с начальным содержимым, однако плата DECA имеет часть 10M50DA, которая несомненно поддерживает блоки оперативной памяти с начальной инициализацией.
Я помню, как столкнулся с этой проблемой с моим DE10-lite, когда я впервые купил его, но, решив проблему, я быстро забыл об этом! Столкнувшись с этим во второй раз, я теперь документирую это (а), чтобы напомнить себе в следующий раз, и (б) на случай, если это будет полезно для кого-то еще:
Это проблема не микросхемы, которая не поддерживает MIF, это формат файла программирования, который генерируется по умолчанию. MAX10 имеет некоторую внутреннюю флэш-память, часть которой доступна для пользовательских приложений, и чтобы сделать ее размер как можно больше, инициализация оперативной памяти по умолчанию отключена. В диалоговом окне Quartus “Assignments -> Device” диалоговое окно “Device and Pins…” содержит страницу “Configuration”, где вы можете выбрать один из нескольких различных режимов конфигурации, и если вы выберете тот, который позволяет инициализацию памяти, Quartus снова позволит инициализировать блочные ОЗУ для ПЗУ.
Адрес для контактов : imax9@narod.ru
Если вам понравились мои работы и вы желаете поддержать сайт - сделайте дотацию.
При копировании статьи – обязательна ссылка на авторство и источник. Без разрешения автора копирование запрещено.
© Максим Ильин 2021г.