Главная
Новости рынка
Рубрикатор



Архив новостей -->



 



   

Дейв Криста, Тони Джонсон

Методология высокоуровневого проектирования устройств на базе FPGA

    B нынешних условиях как никогда важно правильно организовать процесс HDL-проектирования и выбрать для этого соответствующие инструменты.

    В настоящее время общепринятая методология высокоуровневого проектирования специализированных интегральных схем (ASIC) включает в себя этап ввода схемы проекта и описание его на языке HDL на уровне регистровых передач или поведенческом уровне. Разработанное устройство затем верифицируется специальной программой HDL-моделирования и синтезируется для реализации на вентильной матрице. Тем не менее, такой подход применялся далеко не всегда.

    Когда-то общепринятым было проектирование на уровне вентилей. Но когда среднее число вентилей в разрабатываемой специализированной микросхеме превысило 10000, этот метод начал давать сбои. Кроме того, стали более жёсткими требования к длительности цикла проектирования. В результате всего этого, высокоуровневое проектирование стало обязательной частью поддержки конкурентоспособности новых устройств. Аналогичная ситуация наблюдается сейчас в области разработки устройств на базе программируемых вентильных матриц (FPGA).

    С ростом сложности разрабатываемых систем и появлением доступных инструментов высокоуровневого проектирования, рынок FPGA начал переориентироваться на новую методику. Фактически, большинство экспертов и аналитиков, занятых в этой отрасли промышленности, выражают мнение, что в ближайшем будущем к методологиям высокоуровневого проектирования обратятся десятки тысяч разработчиков устройств на FPGA. Это происходит по большей части благодаря дости-жениям технологии в области автоматизированного проектирования электронных устройств (EDA) и совершенствования оборудования и программного обеспечения, произошедшим за последние 5–10 лет.

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

    Несмотря на то, что высокоуровневое проектирование не является оптимальным абсолютно для всех задач, привлекательность этого метода нельзя не заметить. При количестве вентилей в FPGA до 10000 визуализировать выполняемые функции системы, анализируя его схемотехническое решение, относительно легко. Но когда количество вентилей превысило 20000, 50000 и 100000, гарантировать, что весь проект можно осознать, только взглянув на его схему, практически невозможно.

    Использование языка описания аппаратных средств (HDL) совместно с соответствующими инструментами моделирования позволило разработчикам организовывать и программно анализировать намного более сложные системы. Другими словами, анализ результатов компьютерного моделирования для проверки функционирования разрабатываемой системы заменил визуальную проверку схемы.

    Разработчики систем на базе FPGA, обратившиеся к методологии высокоуровневого проектирования, сейчас наслаждаются некоторыми очевидными преимуществами. Во-первых, любой отдельно взятый разработчик может обеспечить решение задачи повышенной (и постоянно увеличивающейся) сложности, обращаясь к более высоким уровням абстракции и передавая реализацию мелких деталей проекта автоматизированному процессу. Во-вторых, разработчики могут значительно сократить цикл производства и улучшить качество изделий, благодаря проверке функциональных возможностей, ещё на этапе проектирования, когда внесение изменений в системы легко и относительно дешево. Эти преимущества и заставили разработчиков специализированных микросхем (ASIC) обратиться к высокоуровневому проектированию.

    Переход к новой методологии проектирования никогда не происходит легко. Всегда имеются определённые препятствия на пути к её внедрению. Путь перехода разработчиков систем на базе FPGA к методологии высокоуровневого проектирования не является исключением из правил.

    Одним из препятствий на этом пути является общее неправильное представление, что в программном обеспечении для устройств на базе FPGA разработчикам требуется значительно меньшее количество функциональных возможностей, чем для специализированных микросхем (ASIC). На самом же деле, все требования, связанные с сокращением пути изделия на рынок, справедливы и для них. Разработчики устройств на базе FPGA будут стремиться использовать все доступные им функциональные возможности максимальным образом. Они могут включать усовершенствованные методы отладки, такие как анализ потоков данных, использование языков VHDL и Verilog или передовые методы моделирования и оценки производительности.

    Как правило, доступные разработчикам устройств на FPGA средства были или совсем новыми, неотработанными, или весьма посредственными, не обеспечивающими достигнутого качества и функциональных возможностей конкурирующих средств проектирования ASIC. Эта тенденция требовала коренного перелома. Сегодня каждый компонент пакета HDL проектирования устройств на FPGA должен быть лидером в своём классе и обеспечивать возможность расширения функ-циональных возможностей, сравнимую с аналогичными инструментами проектирования специализированных интегральных схем.

    Другим препятствием, требующим обязательного преодоления, является экономическое различие между тем, сколько платит за средства разработчик ASIC и тем, сколько может позволить себе разработчик устройств на FPGA. В то время, как стоимость программного обеспечения рабочего места проектировщика ASIC традиционно составляет более $100000, на одно рабочее место проектировщика с использованием FPGA компании тратят, как правило, не более $10000. Значит, поставщики программного обеспечения для автоматизированного про-ектирования, надеющиеся обслуживать рынок устройств на FPGA, должны учитывать, что их продукты должны иметь отношение стоимость/функциональность намного меньшее, чем то, что предлагается для ASIC. Казалось бы, это экономическое требование находится в противоречии с требованиями осуществления необходимой гибкости и функциональности. Однако, ряд специализированных профессиональных фирм предлагает такие средства уже сегодня.

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

    Разумеется, ключевым моментом в обеспечении перехода к методологии высокоуровневого проектирования является поиск путей перехода разработчиков к HDL-проектированию без потерь в объёмах производства. Многие поставщики средств проектирования ответили на это выпуском упрощённых продуктов, но этого явно недостаточно. Необходимо проводить обучение, которое позволит разработчикам устройств на FPGA значительно увеличить уровень собственных знаний. В конечном счёте, удачная комбинация удобных в работе средств проектирования и соответствующего обучения позволит сгладить болезненный переход.

Переход к HDL

    Mетодология проектирования в области высокопроизводительных устройств на базе FPGA родилась из аналогичной для специализированных микросхем. Многие из разрабатываемых сейчас систем на базе FPGA являются более ёмкими и сложными, чем системы на базе ASIC всего лишь два года назад. Чтобы оптимальным образом удовлетворить изменяющиеся потребности разработчиков устройств на FPGA, производители средств проектирования должны предлагать продукты, позволяющие работать не только с более сложными проектами, но и делающие переход к HDL- проектированию безболезненным.

    Поскольку уже сейчас разработчики систем на базе FPGA начинают переориентироваться на такие инструменты HDL-проектирования, как системы графического ввода и программного моделирования, перед ними обязательно встанет проблема выбора и приобретения необходимого пакета. Также им предстоит выбрать основного поставщика. Все принятые решения должны быть основаны на следующих критериях:

  • Имеет ли поставщик программного обеспечения тесное взаимодействие с поставщиками микросхем FPGA?
  • Обеспечивает ли поставщик поддержку своего продукта на должном уровне?
  • Имеет ли продукт испытанное устойчивое и масштабируемое ядро?
  • Имеет ли продукт достаточную гибкость?

    Последний критерий достаточно широк и имеет различную значимость. В зависимости от опыта разработчика и сложности проекта, может оказаться достаточно простого “кнопочного” пути проектирования. В действительности, это предпочтительно для конфигурируемого и оптимизированного метода проектирования, так как при этом максимально интегрируются все элементы пакета проектирования устройств на FPGA. Это даёт возможность даже новичку, неискушённому в тонкостях HDL-кодирования, получить правильно работающую микросхему намного быстрее.

    По мере того, как разработчики наращивают свой опыт работы с инструментами HDL-проектирования, возникает необходимость в дополнительных функциях управления и оптимизации проекта, например, язык описания пакетного моделирования и управление уровнями оптимизации производительности. В этом случае упрощённые “кнопочные” инструменты быстро разрастаются. Кроме того, некоторым разработчикам нравится использовать мощные интегрированные пакеты, в то время как другие предпочитают или вынуждены использовать смесь различных инструментов. Самые передовые пакеты проектирования должны обеспечивать оба этих подхода, тем самым обеспечивая возможность польователю начинать разработку проекта с базового уровня и наращивать сложность по мере необходимости.

    Никто никогда не говорил, что переход к методологии высокоуровневого проектирования при разработке устройств на базе FPGA будет лёгким и безболезненным. К счастью, HDL-проектирование уже известно в течении длительного времени, и этот процесс хорошо испытан и освоен.

    Обычно, процесс HDL-проектирования включает следующие этапы: ввод проекта, моделирование на уровне регистровых передач (RTL), синтез, функциональное моделирование, размещение и маршрутизация, моделирование синхронизации на уровне вентилей и создание прототипов (рис. 1). Существенно, что каждая ячейка (объект самого низкого уровня) в проекте должна иметь доступную HDL-модель, полностью повторяющую её функционирование. Такие модели обычно объединяются в библиотеки, предлагаемые различными поставщиками FPGA в исходной и/или двоичной форме.

Графическое представление методологии всокоуровневого проектирования систем на базе программируемых вентильных матриц

Рис. 1. Графическое представление методологии всокоуровневого проектирования систем на базе программируемых вентильных матриц. В процессе проектирования используются три вида моделирования: на уровне регистровых передач, функциональное и на уровне вентилей

    Как только все необходимые модели приобретены, можно приступать к созданию проекта. Чтобы преобразовать его существующее схематическое представление, разработчик системы на базе FPGA должен выполнить следующие шаги:

  1. Большинство пакетов ввода схемы имеет опцию экспорта в VHDL или Verilog. Эта опция позволяет генерировать HDL-код, соответствующий пользовательской схеме, для систем VHDL или Verilog. Вся информация о связях ячеек внутри проекта содержится в этом HDL-коде. Здесь также будет указываться, какие именно библиотеки необходимы для реализации применяемых в проекте ячеек.
  2. Скомпилировать библиотеку ячеек для данной FPGA или использовать таковую уже готовую.
  3. Скомпилировать HDL-проект из схематического представления.
  4. Промоделировать скомпилированный HDL-проект. Это производится путём подачи на вход системы всех необходимых воздействий с последующим анализом результатов моделирования, что позволяет оценить правильность функционирования системы.

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

    При графическом вводе HDL-проекта разработчики могут вводить свою систему в виде, похожем на структурную схему, а логику функционирования элементов этой схемы задавать или непосредственно HDL- кодом, или через диаграммы состояний и таблицы истинности. Такой подход освобождает разработчика от большого объёма программирования, свойственного HDL-проектированию. Например, редактор структурной схемы может генерировать весь HDL-код, необходимый для соединения проекта в единое целое. Он также может генерировать код, обеспечивающий связь между отдельными модулями и испытательным стендом. Этот “избыточный” код доставляет разработчикам большие неудобства и мешает при определении фактических функциональных возможностей системы. Обеспечение разработчиков FPGA системами автоматизированной генерации кода позволит значительно ускорить процесс освоения инструментов HDL-проектирования.

    Как только проект создан, необходимо выполнить его проверку на уровне регистровых передач. Это позволяет убедиться в правильности определения выполняемых функций. На этом этапе должна быть создана процедура тестирования (рис. 2), которая будет использоваться для проверки правильности функционирования системы на уровне регистровых передач, на функциональном уровне и уровне синхронизации вентилей.

Тестирование может использоваться в каждом из трех видов моделирования

Рис. 2. Тестирование может использоваться в каждом из трех видов моделирования. Его главная задача состоит в проверке того, что на завершающей стадии проектирования система функционирует так же, как и на уровне регистровых передач

    Тестирование представляет собой отдельный набор VHDL или Verilog-кода, который связан со входами и выходами проекта системы. Единожды созданный, код тестирования остается неизменным в течение всего процесса проектирования и используется для проверки правильности функционирования системы.

    Тестирование стенда преследует две цели. Во-первых, оно предоставляет информацию о входных и выходных сигналах системы, таких как синхронизация, сброс и входные данные, с которыми она столкнётся после физической реализации и установки в конечную аппаратуру. Во-вторых, становится возможным производить регрессивное тестирование выполняемых функций системы в любой момент процесса HDL-проектирования.

Стоимость использования HDL-проектирования

    Как правило, процедуры тестирования часто содержат наиболее сложный HDL-код проекта. Инвестиции, вложенные в изучение VHDL или Verilog сверх базовых знаний, потребуются в основном здесь. Такое интеллектуальное тестирование может значительно увеличить производительность разработчика при проектировании и проверке работы системы.

    HDL-проектирование представляет собой для некоторых разработчиков устройств на базе FPGA принципиально новую систему понятий. Несмотря на то, что все этапы проектирования достаточно прозрачны, стоит потратить время на их дополнительное изучение.

    Например, разработчики устройств на FPGA должны научиться правильно использовать HDL-компилятор — инструмент, преобразующий HDL-проект в исполняемую форму. Большинство HDL-компиляторов делает этот процесс лёгким за счёт придания компилируемым функциям по умолчанию удобного графиче-ского пользовательского интерфейса. Но если HDL-компилятор или программа моделирования генерируют сообщение об ошибке, пользователь должен знать, как определить то, что в HDL-проекте было сделано неправильно. Хорошие инструменты упрощают эту задачу, давая возможность пользователю двойным щелчком по сообщению компилятора сразу перейти к строке ошибочного кода.

    Разработчики также должны научиться эксплуатировать язык HDL на полную мощность. Выполнение проектирования на высоком уровне абстракции и последующий автоматизированный синтез фактической реализации требует веры как в инструменты, так и в методы. Хорошей новостью является то, что процесс HDL-проектирования уже хорошо испытан тысячами разработчиков.

    Поскольку поставщики средств разработки обратили своё внимание на специфические требования разработчиков устройств на базе FPGA, высокоуровневое проектирование наконец достигло своего совершенства. Разработчики и технические менеджеры, собирающиеся переходить на HDL-проектирование теперь имеют в распоряжении достаточный выбор разнообразных инструментов.

    Выбор соответствующих инструментов нельзя осуществлять только по стоимостному критерию. Скорее, разработчики должны оценить, какие из инструментов являются лидерами в их классе, предлагают максимальный и наращиваемый уровень гибкости и функциональности и ускоряют процесс освоения HDL- кодирования.

    Независимо от того, какие инструменты вы используете, итог один — передовые инструменты HDL-проектирования систем на базе FPGA и ASIC должны быть похожи.

Electronic Design, июнь 1999 г.
Перевод Ю. Потапова






Реклама на сайте
тел.: +7 (495) 514 4110. e-mail:admin@eust.ru
1998-2014 ООО Рынок микроэлектроники