Почему блок памяти превращается в набор регистров?
Я столкнулся с такой проблемой на стадии синтеза. У меня в проекте существуют четыре блока памяти, по паре идентичных. Первая пара равна по 512 байт и представляет однопортовую память. А вторая пара - по 16 кБайт и двухпортовая память. Расчёт показывает, что эти блоки памяти должны без проблем влезть в кристалл ПЛИСа, т.е. 270 336 бит. Но произошло следующее. Когда блоки памяти по 16кБ не были подключены к линии тактов, проект синтезируется нормально и показывает, что они размещены в блоках памяти. А как данные блоки подключаются к линиям тактов, то блоки памяти по 512 байт переезжают в регистры (выпадают из блоков памяти). И в итоге эти блоки никак не влезают в кристалл.
Поддержу комментатора выше, есть вероятность, что при использовании Вы не определили на какой памяти собрать (M9K...), при условии, что IP-блок совместим не со всеми типами памяти. По умолчанию он, проверив чип, решил собрать на регистрах. Какой версией Quartus Вы пользуетесь?