Взаимодействие разработчиков FPGA — ключ к успеху


PDF версия

В статье описаны преимущества комплексного подхода к проектированию устройств на основе FPGA

Процесс разработки FPGA полностью стандартизован, начиная от идеи и кончая готовым продуктом. Это и понятно, учитывая конкуренцию между поставщиками и относительную зрелость отрасли автоматического проектирования (EDA — Electronic Design Automation).
Однако так было не всегда. Изначально устройства, изготовленные на основе FPGA, были сравнительно простыми. Сложность проектов быстро увеличивается. Согласно исследованию, проведенному компанией Mentor Graphics в 2010 г., более половины проектов на FPGA содержат, по крайней мере, один процессор. В схемах такого уровня замена, изъятие или добавление одного элемента может повлечь за собой большие изменения, а переход на новую матрицу сопровождается переработкой всего проекта.

Планирование процесса разработки

Приступая к проектированию, необходимо двигаться от общего к частному. Коллективная разработка, в отличие от индивидуальной, требует четкого планирования работ и их распределения. Один из способов организации работ состоит в разбиении процесса разработки на отдельные последовательные стадии, после полного прохождения которых получается конечный продукт или его часть. Такие стадии называют жизненным циклом разработки. Как правило, жизненный цикл начинается с формирования общего представления о разрабатываемой системе и его формализации в виде требований верхнего уровня. Завершается жизненный цикл разработки вводом системы в эксплуатацию.
Первый шаг, который предстоит сделать, — это выбрать между покупкой полного универсального пакета САПР одного производителя или набора необходимых инструментов различных производителей. Пакетное программное обеспечение ориентировано на одно или несколько конкретных семейств FPGA, поэтому при замене матрицы, особенно на модель другого производителя, придется покупать новую среду САПР. Такие замены иногда случаются, если устройство по той или иной причине функционирует неправильно или выпускается продукт следующего поколения на основе другой FPGA, более быстрой, дешевой или экономичной. С другой стороны, если в схеме применяются элементы различных производителей, возникают проблемы совместимости.
Какими бы ни были средства проектирования, они должны характеризоваться связностью, чтобы не создавать трудностей для взаимодействия специалистов на разных стадиях проектирования. Средства проектирования системного уровня (ESL), модели RTL и универсальные IP-блоки должны быть совместимыми, чтобы не нарушалась поточность процесса проектирования, а таблица соединений была оптимизированной. Во-вторых, вместо формальной верификации лучше проводить более тщательный анализ, причем как на уровне RTL, так и на уровне вентилей, чтобы удостовериться, что реализовано именно то устройство, которое требовалось. Наконец, процесс изготовления FPGA должен быть коррелирован с разработкой печатной платы. В этом случае оптимальная производительность системы будет достигнута в максимально короткий срок.
В некоторых центрах проектирования FPGA применяется разработанный с учетом этих трех требований унифицированный цикл. Он отлажен и подходит для всех типов устройств. С другой стороны, иногда при таком подходе затрачивается много времени и ресурсов.
Другой вариант — собрать пакет инструментов, которые заведомо обеспечивают интеграцию продукта на всех стадиях проектирования, от концепции до готовой печатной платы. Данный подход проиллюстрирован рисунком 1. Преимущества очевидны: совместимость инструментов, техническая поддержка на всех стадиях проектирования, а также взаимодействие между разработчиками.

 

Рис. 1. Полностью интегрированный цикл разработки FPGA, независимый от производителя

 

Разработка моделей RTL и многократное использование IP

Производители постоянно ищут более простые формы логической структуры матриц FPGA, которые сегодня не уступают по сложности специализированным ИС. Готовые IP-блоки собственной и сторонней разработки уже широко применяются, однако происходит это от случая к случаю. Предпочтительнее систематизированный подход в использовании прежних наработок, небольших частей схемы или кода, а также часто применяемых функций и процедур. Создание стандартизованной единой методики и среды проектирования — главнейшая задача руководства. Не последнюю роль в достижении этой цели играют компании-партнеры, занимающиеся автоматизацией проектирования электронных приборов и устройств.
Существующие технологические решения позволяют создавать графическую визуализацию проекта и оценивать степень готовности и качество программного кода, а также предоставляют средства для создания используемых на данном предприятии IP-блоков. Не менее важно обеспечить единую среду проектирования, чтобы специалисты могли совместно использовать один и тот же набор IP-блоков в различных проектах. Моделирование и синтез должны проводиться в этой же среде, тогда будет налажен каскадный цикл создания RTL-моделей и проведения синтеза и верификации.

Средства проектирования на системном уровне для FPGA

Ускорение проектирования возможно не только за счет системного использования RTL-моделей. Так, переход на более высокий уровень абстракции хотя бы на некоторых стадиях разработки позволяет повысить эффективность работы инженеров. До недавнего времени средства проектирования системного уровня (ESL) ввиду своей сложности применялись мало, однако они помогают значительно увеличить продуктивность. Сейчас они стали понятнее и надежнее, накоплен положительный опыт их использования. Например, синтез на высоком уровне давно применяется и в специализированных ИС, и в FPGA. Разработчики создают на языке С++ (или аналогичных) описание алгоритма, а RTL-код генерируется автоматически с учетом требований к производительности, занимаемой площади, задержке и пропускной способности разрабатываемого устройства.
Инженеры системного уровня должны проверять, насколько хорошо сочетаются их решения с остальными частями проекта. Код RTL может быть сгенерирован с теми или иными ограничениями. Необходимо удостовериться, что он, во-первых, реализуем, а во-вторых, что его выполнение не требует больших усилий. Интерпретация результатов моделирования и анализ готового проекта должны производиться легко и не вызывать проблем. Это, пожалуй, единственная слабость системного подхода.

Интеграционная верификация

При проверке каждого модуля системы невозможно гарантировать, что эти модули будут работать вместе. Как правило, возникают проблемы, связанные с их интеграцией и взаимодействием. Для выявления таких проблем на ранних этапах разработки применяют интеграционное тестирование, т.е. проверку модулей, объединенных в совместно работающие комплексы. Интеграция модулей и интеграционное тестирование проводится, как правило, в течение всего цикла разработки. Это позволяет облегчить процесс локализации дефектов.
Средства анализа готовых FPGA отстают от аналогичных инструментов для заказных ИС, потому что изначально FPGA были простыми, и аппаратная реализация устройств производилась быстро и без лишних затрат. Однако сейчас многие FPGA по сложности приближаются к заказным ИС, в связи с чем лабораторные испытания потеряли эффективность и не позволяют выявить скрытых ошибок. Разработчикам FPGA приходится применять методы более тщательного анализа, такие как проверка утверждений, покрытия кода и автоматическое тестирование. Эти решения позволяют проработать крайние случаи, которые по-другому нельзя рассмотреть.
После того как RTL испытана, необходимо сверить результат с поставленной задачей. Верификация на формальное совпадение — это самый распространенный метод, при котором производится математическое сравнение функциональности RTL со схемой на уровне вентилей. При этом не затрагиваются совместимость и обмен данными. Например, в процессе синтеза была проведена оптимизация соединения автоматов или объединение регистров для оптимизации таблицы соединений вентилей. Формальная верификация может выявить ложные ошибки, поэтому придется проверять ее результаты. Обмен данными между инструментами помогает отладить и ускорить процедуру верификации, а также позволяет с первого прогона получать адекватный список ошибок.

От синтеза к плате

В рамках полного цикла проектирования процедура синтеза образует своего рода мост от идеи к реальному устройству. Синтез, разработка на системном уровне, использование готовых IP-блоков и верификация составляют унифицированный и стандартизованный цикл от идеи до печатной платы. Заметим еще раз, что процесс верификации должен быть проведен тщательно, особенно если используются ИС различных производителей.
Размер и сложность проектов постоянно растут, поэтому разработчикам становится труднее анализировать узкие места со схемотехнической точки зрения, определять ограничения, а также оценивать качество результата (QoR — quality of results). Для повышения производительности вне зависимости от марки FPGA и назначения конечного устройства применяются такие методы как физический синтез и анализ QoR.
До сих пор наши обсуждения касались только FPGA, однако принцип единого движения от концепции к печатной плате затрагивает и топологию устройства. Рассмотрение проблем, связанных с FPGA, в отрыве от платы, на которую она будет установлена, приведет к возникновению нестыковок на последних стадиях проектирования. Поскольку матрица взаимодействует со многими элементами, ее расположение и трассировка имеют определяющее значение для проекта.
Для иллюстрации обратимся к вопросу размещения портов ввода-вывода. Зачастую проектировщики платы и FPGA не сходятся во мнении касательно оптимального расположения выводов. С точки зрения разработчика FPGA запутанное расположение выводов может испортить QoR или внутреннюю трассировку FPGA. В свою очередь разработчики печатной платы должны приспосабливаться к плохо расположенным линиям ввода-вывода. Иногда не удается избежать длинных линий и добавления слоев или отверстий. В результате процесс трассировки может занять больше времени, ухудшится целостность сигнала или, в худшем случае, — общая производительность системы.
Оптимальное расположение выводов возможно только при одновременном проектировании FPGA и печатной платы, в процессе которого будет найдено сбалансированное решение. Между коллективами разработчиков должна быть взаимосвязь, чтобы за минимальное количество итераций было подобрано подходящее по всем параметрам решение.
Если компромисс найти не удается, может помочь физический синтез FPGA. В этом случае во главу угла ставятся физические характеристики устройства, в т.ч. расположение выводов. На ранней стадии логические блоки оптимизируются с учетом оценки трассировочных ресурсов и возможности расположения на плате, а также с учетом расположения контактов устройства. Физический синтез производится посредством оптимизации физических параметров, например, коррекции временной диаграммы (восстановление синхронизации), дублирования регистров, повторного синтеза для оценки синхронизации соединений. При этом принимаются во внимание ограничения, обусловленные задержками прохождения сигнала (см. рис. 2). Грамотное расположение выводов ускоряет процесс размещения и трассировку элементов на плате.

 

Рис. 2. Преимущество использования физического синтеза

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *