Я працюю над великим дизайном FPGA, і я дуже близький до обмежень ресурсів FPGA, якими я зараз користуюся, Xilinx LX16 в пакеті CSG225.
Дизайн також майже завершений, проте на даний момент він більше не вписується в FPGA. Я можу вимкнути деталі, щоб пристосувати його, проте мені потрібно зменшити використання ресурсів, щоб завершити дизайн і відповідати вимогам щодо термінів та розміру.
Мені хотілося б знати, чи є в наших звітах інструменти, які допоможуть мені визначити, які частини мого дизайну витрачають найбільше ресурсів. Моя конструкція не розділена, і розбита на десяток і більше модулів VHDL.
Звіти про синхронізацію Xilinx є фантастичними, але тепер мені потрібно знати, де я можу отримати найкращий вибух для економії місця.
Мені теж важко сказати, який тип ресурсів у мене закінчується, або які ефекти впливають на ці ресурси.
Ще одне роздратування полягає в тому, що в міру збільшення дизайну компоненти, які використовувались для виконання термінів, починають виходити з ладу, оскільки їх розміщення вже не є ідеальним.
В даний час я використовую звіти про місцеві статистичні показники пост-місця та маршруту та використовую SmartXplorer. Я використовую стратегії проектування, щоб оптимізувати час.
Після вимкнення частини мого дизайну, щоб пристосувати його, ось деякі результати:
Використання реєстру фрагментів: 42% використання LUT-вмісту: 96% кількість повністю використаних пар LUT-FF: 38% Це означає, що я легкий на регістри, але важкий у використанні воріт?
Чи є інструменти, які допоможуть розробникам оптимізувати область чи принаймні дати їм більше розуміння свого коду?
Оновлення: Переглянувши використання модуля рівня, я виявив, що у мене скрізь є невеликі клейкі асинхронні фіфоси, які займають близько 30% від загальної кількості LUT. Я використовую їх як цілодобовий клей для високошвидкісних автобусів. Я мав би змогу їх усунути, оскільки годинники тісно пов’язані між собою. (Вхід 120 МГц, виробляє 100 МГц і 200 МГц через DCM)