Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Булевы функции
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
toweroff
Есть PLD-шка
У нее 12 входных переменных и 4 выходных (просто функции, ничего более)
Считал ее а-ля простую ПЗУ, есть потребность получить просто запись ФУНКЦИЙ выходных переменных
В тупую отдал весь массив как таблицу Квартусу. Паразит аж в Циклоне требует 3600 лутов

Но бред же smile.gif Все функции классно уложились в 16V8, почему же такая дикая "оптимизация" в Квартусе?
Попробовал сделать "усовершенствования" - описал руками по таблице некоторые куски обобщенно - паразит уже хочет меньше - 2900 лутов.

Что можно включить у Квартуса (или что можно другое поюзать), чтобы нормально получить запись функции 12-ти переменных?
bloodden
Цитата(toweroff @ Sep 26 2008, 23:02) *
Есть PLD-шка
У нее 12 входных переменных и 4 выходных (просто функции, ничего более)
Считал ее а-ля простую ПЗУ, есть потребность получить просто запись ФУНКЦИЙ выходных переменных
В тупую отдал весь массив как таблицу Квартусу. Паразит аж в Циклоне требует 3600 лутов

Но бред же smile.gif Все функции классно уложились в 16V8, почему же такая дикая "оптимизация" в Квартусе?
Попробовал сделать "усовершенствования" - описал руками по таблице некоторые куски обобщенно - паразит уже хочет меньше - 2900 лутов.

Что можно включить у Квартуса (или что можно другое поюзать), чтобы нормально получить запись функции 12-ти переменных?

Если Вы забили таблицу с 12-ю входами, он Вам и сгенерил 2 в 12 лутов. Он даже слегка заоптимизировал smile.gif
А оптимизация как лежала на разработчике так и будет лежать. Карты Карно рулят smile.gif
ЗЫ: Я знаю что я псих smile.gif
toweroff
Цитата(bloodden @ Sep 27 2008, 00:43) *
А оптимизация как лежала на разработчике так и будет лежать. Карты Карно рулят smile.gif
ЗЫ: Я знаю что я псих smile.gif


хмм... а оптимизация Квартуса не перекладывается с кристалла на кристалл? Для 7000 он мне тоже несусветное выражал матерно, но укладывался в 300 ячеек где-то smile.gif

а карты.. я тоже псих.. biggrin.gif
bloodden
Цитата(toweroff @ Sep 27 2008, 00:32) *
хмм... а оптимизация Квартуса не перекладывается с кристалла на кристалл? Для 7000 он мне тоже несусветное выражал матерно, но укладывался в 300 ячеек где-то smile.gif

а карты.. я тоже псих.. biggrin.gif

smile.gif будем дружить больницами...
Дайте хоть квартусовский проект пощупать.
rv3dll(lex)
Цитата(bloodden @ Sep 27 2008, 02:02) *
smile.gif будем дружить больницами...
Дайте хоть квартусовский проект пощупать.


после того, как программисты увидели как оптимизируется картами карно функция они поняли почему я пиво лопаю в промышленных масштабах. Но делал это я не для того, что квартус плохо оптимизирует а по причине проблем с гонками.
sazh
Цитата(toweroff @ Sep 27 2008, 01:32) *
хмм... а оптимизация Квартуса не перекладывается с кристалла на кристалл? Для 7000 он мне тоже несусветное выражал матерно, но укладывался в 300 ячеек где-то smile.gif

а карты.. я тоже псих.. biggrin.gif


Показали бы проект. По идее синтезатор должен все оптимизировать.
toweroff
Вот AHDL. Особо не заморачивался smile.gif
sazh
Цитата(toweroff @ Sep 27 2008, 16:39) *
Вот AHDL. Особо не заморачивался smile.gif


Заметно. Такое нет смысла анализировать. Вы используете таблицу без какой либо приоритетности.
Обычно такого размера таблицу кладут в ПЗУ
Если на выход ее регистр пристроить, должно лечь на мегафункцию ROM. Что вполне естественно.
На верилоге это case укладывается.
И в AHDL предпочтительнее было бы использовать CASE. Ибо появляется понятие может быть приоритетности, понятие по умолчанию, что существенно минимизирует и ресурсы и время компиляции.
Да и в зависимости от объема перебора синтезатор сам принимает решение об использовании ресурсов (задействовать память или нет)
toweroff
Ухх... Накопал Minilog, подрихтовал таблицу немного (минилог хочет не более 2000 термов) - и вуаля, все функции есть и даже очень касивые smile.gif

короче квартус идет на юг лесом smile.gif



Цитата(sazh @ Sep 27 2008, 17:58) *
Заметно. Такое нет смысла анализировать. Вы используете таблицу без какой либо приоритетности.
Обычно такого размера таблицу кладут в ПЗУ
Если на выход ее регистр пристроить, должно лечь на мегафункцию ROM. Что вполне естественно.
На верилоге это case укладывается.
И в AHDL предпочтительнее было бы использовать CASE. Ибо появляется понятие может быть приоритетности, понятие по умолчанию, что существенно минимизирует и ресурсы и время компиляции.
Да и в зависимости от объема перебора синтезатор сам принимает решение об использовании ресурсов (задействовать память или нет)



спасибо. Попробую копнуть в сторону приоритетности, есть там некоторые закономерности
Шурила
Цитата(toweroff @ Sep 27 2008, 17:05) *
...короче квартус идет на юг лесом smile.gif

Ради интереса запустил у себя
Нажмите для просмотра прикрепленного файла

Нажмите для просмотра прикрепленного файла

Вот такие результаты - странно 07.gif
P.S. В 3000 - 20 ног, это он еще JTAG приплюсовал
vetal
Цитата
Вот такие результаты - странно 07.gif

Так и должно быть. Ничего странного нет.
toweroff
Цитата(vetal @ Sep 27 2008, 22:15) *
Так и должно быть. Ничего странного нет.


если несложно, поясните, пожалуйста 05.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.