alexPec 3 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба Добрый день. Есть у меня в проекте память (ROM) глубиной 216 слов и шириной 96 бит. Проект на цыклоне 3. После компиляции заглядываю в отчет фиттера - Resource section - RAM summary и вижу в строке с этой памятью в колонке M9Ks цифру 6. Смотрю в даташит цыклона 3 (табличка на картинке) - там написано что M9K может быть организован как 256х32 и 256х36. Путем нехитрых вычислений получаем 96/32 = 3, полагая что квартус поставит 3 M9K с конфигурацией 256х32 и запаралелит входную шину адреса у блоков. Уважаемые, подскажите где подвох, где я ошибся, почему в ресурсах использовано на эту память 6 блоков М9К? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба слева во фрейме, где отображается иерархия проекта, найдите этот модуль и посмотрите с какими параметрами соотв. lpm вызывается (достаточно курсор навести, выскочит подсказка). в отчете о компиляции тоже должно быть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба слева во фрейме, где отображается иерархия проекта, найдите этот модуль и посмотрите с какими параметрами соотв. lpm вызывается (достаточно курсор навести, выскочит подсказка). в отчете о компиляции тоже должно быть Вот они, вроде ничего подозрительного нет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба Вот они, вроде ничего подозрительного нет... True dual-port mixed width support (2) (2) Width modes of ×32 and ×36 are not available. Можно оценить на Single-Port Mode Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба True dual-port mixed width support (2) (2) Width modes of ×32 and ×36 are not available. Можно оценить на Single-Port Mode Не понял. Так ведь у меня не dual-port, по крайней мере оно мне не надо. У меня просто ROM - там таблица, ее только читать надо, причем через один порт. А Вы где-то увидели dual port? Если так, то подскажите как от этого dual port избавиться пжл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба А Вы где-то увидели dual port? Я просто в документацию вскользь посмотрел. Не более. Извините. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба слева во фрейме, где отображается иерархия проекта, найдите этот модуль и посмотрите с какими параметрами соотв. lpm вызывается (достаточно курсор навести, выскочит подсказка). в отчете о компиляции тоже должно быть А кстати, что должно быть? UPD: Вобще перестал понимать как память покрывается блоками. Гуру, распутайте пожалуйста ситуацию ! На рисунке отчет фиттера по RAM. Зеленым выделена та память которая меня интересовала. Но оказалось это не самое интересное. Красным показано две памяти. Первая 216 слов Х 36 бит - занимает 1 М9К - как и должно быть. Вторая (!!!) 216 слов Х 12 бит - занимает шесть!!!! М9К. Стесняюсь спросить НАФИГА ТАМ 6 ИХ??? Режимы у всех одинаковы - ROM mode. По отчету видно - все настройки одинаковы. Че за математика непонятная??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба Можно посмотреть technology map netlist. Ну и отчеты о синтезе и фиттере выложите, только скажите как модуль называется Че за математика непонятная??? Вы из кода инферите или мегафункцию вызываете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 26 декабря, 2010 Опубликовано 26 декабря, 2010 (изменено) · Жалоба Можно посмотреть technology map netlist. Ну и отчеты о синтезе и фиттере выложите, только скажите как модуль называется Вы из кода инферите или мегафункцию вызываете? Визардом память делаю какую мне надо, в библиотеке называется altsyncram. В файле txt написан путь в иерархии к памяти, на которую 6 блоков использовано. 1.rar Изменено 26 декабря, 2010 пользователем alexPec Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 26 декабря, 2010 Опубликовано 26 декабря, 2010 · Жалоба ну, фиттер тут ни при чем, это еще на этапе синтеза появилось. покажите код, сгенеренный визардом и места, где вы его используете Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 декабря, 2010 Опубликовано 27 декабря, 2010 · Жалоба Визардом память делаю какую мне надо, в библиотеке называется altsyncram. В файле txt написан путь в иерархии к памяти, на которую 6 блоков использовано. Попробуйте lpm_rom. По-моему, она должна больше подходить для вашей задачи. Хотя написано - только для обратной совместимости... :( Скорее всего, что-то в параметрах мегафункции не так описано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба ну, фиттер тут ни при чем, это еще на этапе синтеза появилось. покажите код, сгенеренный визардом и места, где вы его используете Прошу прощения, не вырваться было. В файле все что относится к altsyncram3 (216слов Х 12 бит) и картинка где его использую. Кстати, заметил все-таки единственное отличие от памяти 216 слов Х36 бит, на которую использован 1 М9К - у нее на выходе данные не регистрятся, а у этой (216х12) регистрятся. Неужто из-за этого в 6 раз объем необходимый вырастает? 1.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба Неужто из-за этого в 6 раз объем необходимый вырастает? Неужто кому то надо ПЗУ подключать к выходному регистру, который надо обнулять. Обычно устанавливают счетчик адреса, чтобы получить нужное значение. Какой смысл обсуждать некорректные схемные решения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 28 декабря, 2010 Опубликовано 28 декабря, 2010 (изменено) · Жалоба Неужто кому то надо ПЗУ подключать к выходному регистру, который надо обнулять. Обычно устанавливают счетчик адреса, чтобы получить нужное значение. Какой смысл обсуждать некорректные схемные решения. Конечно могу ошибаться, но регистр к выходу подключил не от того что его обнулить надо. Так и сделано - счетчик адреса, dff-ы для компенсации пайплайновой задержки остальной части схемы. Если без регистров на адресе (адрес после регистра не только на память идет) и на выходе - по таймингам схема не проходит. Конечно можно снаружи подцепить регистр к выходу, наверно так и попробую. Так что выводы о некорректных схемных решениях, думаю уважаемый sazh сделал преждевременные. Повторюсь могу ошибаться, тогда поправьте меня, скажите где неправ и как это схемное решение сделать корректным с точки зрения профессионалов. А по существу: почему память altsyncram3 занимает 6 М9К а не 1 как должно быть? От схемы включения думаю тут мало чего зависит. Изменено 28 декабря, 2010 пользователем alexPec Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба На половину вопросов, задаваемых на форуме, существует универсальный ответ - Выделите проблемную часть проекта в отдельный проект. Оставьте только самое необходимое. Скомпилируйте. Исследуйте вдоль и поперек. Глядишь, и наступит просветление. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться