Обзор методов описания встраиваемой аппаратуры

         

Анализ существующих подходов


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

Итак, качественные характеристики описанных выше классов языков для описания аппаратуры и соответствующих методов построения кросс-инструментария представлены в табл. 1.

Таблица 1. Характеристики языков описания аппаратуры и соответствующих методов построения кросс-инструментов.

На основе данных, приведённых в табл. 1, можно сделать следующие выводы (см. краткую сводку в табл. 2):

  1. HDL-языки описания аппаратуры позволяют описывать наиболее точные модели аппаратуры и автоматически получать соответствующий симулятор, однако их использование в качестве основы для построения кросс-инструментария для прототипирования аппаратуры и разработки прикладных программ не представляется целесообразным ввиду низкой скорости работы симулятора, высокой трудоемкости построения модели аппаратуры и сложности внесения в нее изменений на уровне системы команд, а также из-за отсутствия в языке конструкций для задания информации, необходимой для построения остальных кросс-инструментов в дополнение к симулятору.
  2. ADL-языки предоставляют наиболее удобные возможности для описания моделей аппаратуры на уровне системы команд, а соответствующий метод автоматического построения кросс-инструментария позволяет эффективно использовать получаемые инструменты для прототипирования аппаратуры. Однако использование существующих ADL-решений не позволяет получать инструменты качества, достаточного для разработки реальных программ, из-за неточности получаемой модели, невысокой скорости работы и ограниченной функциональности получаемых инструментов.
  3. Ручная реализация необходимых кросс-инструментов на языках программирования общего назначения на сегодняшний день является практически единственным методом построения полного набора кросс-инструментария производственного качества (с высокой скоростью работы, достаточной точностью модели и удобной функциональностью, адаптированной под конкретную аппаратуру).
    Однако этот способ практически исключает возможность использовать такой кросс-инструментарий на этапе прототипирования аппаратуры из-за высокой трудоемкости и временных затрат для создания начальной версии инструментария и для последующих циклов его обновления для отражения различных вариаций проектируемой аппаратуры.

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







    Область применения На основе HDL-языков На основе ADL-языков На основе
    C, C++, …
    Для прототипирования аппаратуры Ограничено Эффективно Практически невозможно
    Для производственной разработки прикладных программ Практически невозможно Ограничено Эффективно
    Таблица 2. Эффективность применения кросс-инструментов, получаемых рассмотренными методами на основе различных языков.

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

    Таким образом, ни один из существующих ADL-языков не позволяет описывать потактово-точные модели аппаратуры, включающие в себя все типичные для встраиваемых архитектур возможности: конвейер, прерывания, циклы с нулевой задержкой, периферию, зависимости между командами и отдельными операндами (для диагностики конфликтов). Поддержка расширяемой аппаратуры присутствует только в EXPRESSION, но и там соответствующие описания могут быть созданы только в рамках единой спецификации всей системы, что не позволяет разделять описания отдельных компонентов. Кроме того, ни одно из существующих инструментальных решений на основе ADL-языков не поддерживает генерацию полного набора кросс-инструментов, а скорость работы и удобство использования отдельных получаемых компонентов остаются на низком уровне.



    Характеристика nML ISDL EXPRES-SION
    Общие возможности
    Описание синтаксиса ассемблера и бинарного кодирования команд + + -
    Описание потактового поведения команд - - неявно
    Описание иерархии памяти + + +
    Описание структуры функциональных модулей - - +
    Поддержка описания различных особенностей аппаратуры
    Машинное слово переменной длины - + -
    Межкомандные зависимости - + ?
    Ограничения на комбинации операндов команд + + -
    Конвейер - - +
    Прерывания - - -
    Циклы с нулевой задержкой - - -
    Сопроцессоры - - +
    Периферийные устройства - - -
    Возможности инструментальной поддержки
    Генерация симулятора + + +
    Потактово-точная симуляция - - +-
    Скорость симулятора (модельных тактов в сек.) 106 ? 106
    Генерация ассемблера + + -
    Генерация дисассемблера + - -
    Генерация компоновщика + + -
    Генерация пошагового символьного отладчика - - -
    Интегрированная среда разработки (IDE) - - -
    Таблица 3. Возможности основных современных ADL-языков и соответствующих инструментальных средств поддержки.

    Таким образом, ни один из существующих ADL-языков не позволяет описывать потактово-точные модели аппаратуры, включающие в себя все типичные для встраиваемых архитектур возможности: конвейер, прерывания, циклы с нулевой задержкой, периферию, зависимости между командами и отдельными операндами (для диагностики конфликтов). Поддержка расширяемой аппаратуры присутствует только в EXPRESSION, но и там соответствующие описания могут быть созданы только в рамках единой спецификации всей системы, что не позволяет разделять описания отдельных компонентов. Кроме того, ни одно из существующих инструментальных решений на основе ADL-языков не поддерживает генерацию полного набора кросс-инструментов, а скорость работы и удобство использования отдельных получаемых компонентов остаются на низком уровне.


    Содержание раздела