Процесс разработки проекта для ПЛИС в пакете Actel Libero IDE. Часть IV
Все статьи цикла:
- Процесс разработки проекта для ПЛИС в пакете Actel Libero IDE. Часть I
- Процесс разработки проекта для ПЛИС в пакете Actel Libero IDE. Часть II
- Процесс разработки проекта для ПЛИС в пакете Actel Libero IDE. Часть III
- Процесс разработки проекта для ПЛИС в пакете Actel Libero IDE. Часть IV
- *Процесс разработки проекта для ПЛИС в пакете Actel Libero IDE. Часть V
Запускаем Designer, нажав на кнопку Place&Route (рис. 1).
При первом запуске откроется панель мастера настройки, в окне которого надо будет выбрать микросхему, корпус, напряжение питания ядра ПЛИС, тип портов ввода/вывода по умолчанию. Если Designer запускается после корректировки проекта, то откроются окно пакета и панель добавления файлов в проект (рис. 2).
в проект
Проверьте, все ли требуемые файлы присутствуют в списке, и нажмите OK.
Сначала необходимо скомпилировать проект, нажав на кнопку Compile. В процессе компиляции производится оптимизация RTL-модели проекта под выбранную ПЛИС с учетом заданных ограничений и назначенных выводов, которые были заданы в соответствующих файлах.
Если в процессе анализа не было обнаружено критических ошибок, в окне лога программы по завершении будет сформирован краткий отчет, в котором будет приведена статистика по заполнению микросхемы и по ряду критических цепей.
Пакет Designer имеет три группы инструментов для анализа результатов, задания ограничений, размещения и трассировки. Первая группа называется MultiView Navigator, она служит для анализа и задания физических параметров. Вторая, Smart Time, для анализа и задания временных параметров. Третья группа включает в себя лишь один инструмент Smart Power.
Рассмотрим более подробно инструменты каждой группы.
Инструменты MultiView Navigator, как правило, используются сравнительно редко.
Netlist Viewer позволяет просмотреть результирующую схему после компиляции в виде схемы (рис. 3).
Запустив Pin Editor, можно посмотреть физическое распределение цепей по выводам микросхемы и при необходимости его скорректировать (рис. 4).
ChipPlanner (рис. 5) позволяет просматривать результаты размещения и трассировки в ПЛИС, а также задавать регионы трассировки, переназначать логические ячейки и цепи. Корректировка трассировки вручную, особенно ПЛИС большого объема, дело неблагодарное, и на практике практически не применяется. А вот что может представлять интерес для разработчиков, так это задание регионов трассировки. Особенно при работе над проектом команды. Регионы могут быть трех типов. Empty, в котором запрещено размещение любых сигналов и ячеек. Inclusive, в котором обязательно размещаются заданные элементы и сигналы, но могут размещаться и другие. Exclusive, в котором могут размещаться только указанные элементы и сигналы.
Для того чтобы задать регион, выберите пункт меню Region и в нем выберите тип требуемого региона (рис. 6). Затем левой клавишей мышки выделите требуемый регион. Если выбран тип Inclusive или Exclusive, то в меню Region выберите пункт Assign/Unassign, в открывшемся окне выберите требуемые элементы.
Последний инструмент этой группы I/O Attribute Editor (рис. 7) представляет сводную информацию по выводам микросхемы в виде таблицы и позволяет задавать или корректировать параметры цепей портов ввода/ вывода, такие как номер вывода соответствующего сигнала, стандарт, нагрузочная способность, наличие подтягивающего резистора и т. д.
Наибольший интерес для разработчиков представляет оптимизация по быстродействию и потреблению. Поэтому инструменты следующих двух групп рассмотрим подробнее.
Timing Analyzer (рис. 8) предоставляет большие возможности по временному анализу цепей. Он выводит информацию о прогнозируемой максимальной частоте после компиляции и результирующей после трассировки по каждой цепи, которые были заданы в качестве тактовых, а также выдает информацию о критических цепях, задержки в которых близки или превышают заданные. Можно проанализировать временные параметры выбранных цепей или типов сигналов, например задержки от выхода регистра до порта или между двумя регистрами. Можно анализировать максимальные или минимальные задержки.
С помощью Constraints Editor (рис. 9) можно задавать временные ограничения для трассировки, в том числе графическим способом.
Для правильной работы трассировщика в первую очередь необходимо задать значения частот всех тактовых цепей, если они не были заданы в файле ограничений в проекте. Для этого выберите в меню пункт Action и в пункте Constraint подпункт Clock (рис. 10). В открывшейся панели в окне Clock Source выберите тактовую цепь и введите в соответствующих окнах значения частоты или периода. Можно также изменить скважность сигнала. Нажмите ОК. Повторите вышеописанную процедуру для всех тактовых цепей.
Кроме этого, Constraints Editor позволяет задавать большое число ограничений, как для отдельных сигналов, так и для групп. Можно, например, задавать значения минимальной или максимальной задержки по входу (рис. 11) или выходу, задавать минимальные или максимальные задержки для определенных цепей, задавать анализ задержки не каждый такт частоты, а через определенное значение тактов и многое другое.
После того как были заданы все необходимые параметры и ограничения, производим размещение и трассировку проекта в ПЛИС. Для этого нажмите на кнопку Layout. Откроется панель настройки (рис. 12).
На панели можно выбрать оптимизацию по быстродействию или потреблению мощности, отключить или включить размещение и трассировку, выбрать количество проходов трассировки, а также, в случае перетрассировки, использовать предыдущий результат или отменить его. В большинстве случаев подходят настройки, предлагаемые по умолчанию. Нажимаем ОК.
После того как трассировка успешно завершена, можно сгенерировать файл прошивки или произвести настройку оптимизации по потреблению.
Для оптимизации по потреблению мощности предусмотрен специальный инструмент Smart Power (рис. 13). Оптимизация по потреблению мощности более сложная процедура, нежели оптимизация по потреблению, и рассказать о ней в рамках данной статьи не представляется возможным. Поэтому ограничимся кратким описанием.
Основным принципом оптимизации является анализ потребления отдельных групп потребления микросхемы, таких как статическое и динамическое потребление матрицы ПЛИС, интегрированной памяти, портов ввода/вывода и т. д. не только в активном, но и во всех режимах работы микросхемы (статическом, спящем, сверхмалого потребления Flash*Freeze для ПЛИС IGLOO и ProASIC3L), и составления сценария работы микросхемы во времени. После определения влияющих на потребление элементов и производится настройка оптимизации. В том числе за счет уменьшения быстродействия.
Для получения файла прошивки нажмите на кнопку Programming File в окне процесса Designer. На открывшейся панели (рис. 14) для семейств Flash-ПЛИС можно выбрать, что будет программироваться матрица ПЛИС, интегрированное Flash-ПЗУ или и то и другое, а также можно выбрать состояние выводов микросхемы в процессе программирования.
Программирование Flash-ПЗУ пока не рассматриваем, поэтому оставляем настройки по умолчанию и нажимаем Finish. В открывшемся окне настройки файла программирования нажимаем Generate.
После трассировки можно проверить работоспособность прошивки в симуляции. Для этого необходимо выполнить обратную операцию получение из файла трассировки файл RTL-модели с реальными временными задержками. Нажмите на кнопку BackAnnotate и на открывшейся панели нажмите ОК. После завершения генерации файлов закрываем Designer и возвращаемся в Libero IDE, в окне Project Flow запускаем симуляцию, нажав на кнопку Simulation. Если симуляция завершена успешно, переходим к программированию и отладке на плате.