Расширенный анализ дизайна Verilog

Я пытаюсь реализовать дизайн в FPGA Virtex II Pro (от Xilinx). Проблема в том, что дизайн перегружен, что требует слишком много ресурсов. Чтобы преодолеть это, мне нужно было знать, какие блоки моего кода наиболее требовательны (требуют больше ресурсов — LUT, FF, Slices и т. д.). Под этим я подразумеваю: сколько ресурсов требуется для этого if-else (или switch-case, while и т. д.)?

У Xilinx нет инструмента для этой цели. Есть ли обходной путь? Или, что еще лучше, есть ли сторонний инструмент, способный это сделать?

Поскольку моя FPGA довольно старая, я использую ISE и PlanAhead 10.1.


person Luis Filipe Martins Barros    schedule 12.03.2015    source источник
comment
Взгляните на различные отчеты, которые создает ISE. Где-то вы должны найти информацию о том, какие ресурсы использовались какой частью вашего кода Verilog.   -  person mkrieger1    schedule 12.03.2015


Ответы (3)


Мне пришлось использовать ISE 10.1 недавно после долгого перерыва. Я не помню, что было бы лучшим решением, но это сработало для меня:

  • В опции синтеза установите для опции «Иерархия списка соединений» значение «Перестроен».
  • Запустите процесс «Реализовать дизайн» -> «Перевести» -> «Дизайн плана этажа»

Вы должны иметь возможность перемещаться по иерархии и видеть использование ресурсов подмодулями.

person Jonathan Drolet    schedule 12.03.2015

Если у нас есть один модуль для синтеза, я думаю, что невозможно увидеть, какое оборудование связано с конкретным оператором if или case, потому что инструменты синтеза синтезируют весь код вместе (например, иногда 2 или 3 процесса в вашем vhdl коде синтезируются под конкретное железо). На самом деле, согласно параметрам синтеза и ограничениям, можно предположить, какое оборудование может быть сгенерировано.

Однако, если вы хотите увидеть использование ресурсов каждым модулем (а не каждым оператором if), вы можете просмотреть Сводный отчет в "ISE -> проект -> Сводка проекта". Если вы синтезировали свой код без каких-либо ошибок, Synthesis Report сообщает вам, сколько ресурсов (LUT, FF, IO, Buffer, ..) используется.

person Amir    schedule 12.03.2015

Вы также можете использовать инструмент Xilinx PlanAhead, который на самом деле не предназначен для этого, но дает хорошую иерархическую разбивку с информацией об использовании ресурсов для любого блока на любом уровне иерархии. На данный момент я могу предоставить только запутанный скриншот, но он должен дать вам представление о том, чего ожидать.

Снимок экрана PlanAhead

PlanAhead можно открыть из Xilinx через Tools > PlanAhead > "Область плана этажа/...".

person mbschenkel    schedule 12.03.2015