Открыть сервисСервис

Floorplan — язык описания аппаратуры

Floorplan — это язык описания (IDL, от англ. interface description language), предназначенный для формализованного представления структуры аппаратной части вычислительных систем: процессоров, систем на кристалле (SoC), периферийных контроллеров и их взаимосвязей. Разработан в рамках проекта OpenPOWER и используется как основа для генерации моделей, документации и средств верификации аппаратуры.

История и назначение

Язык был создан в IBM в конце 2000-х годов в контексте разработки процессоров семейства POWER. Первоначально он использовался внутри команд проектирования для описания регистров, памяти, интерфейсов и их адресного пространства. В 2013 году IBM открыла спецификацию языка и передала его в проект OpenPOWER Foundation, что позволило сторонним разработчикам создавать совместимые с POWER инструменты и модели.

Основная задача floorplan — обеспечить единый машинночитаемый источник истины о том, как устроено устройство: какие у него регистры, где они расположены в адресном пространстве, какими свойствами обладают поля, как устроены прерывания и DMA-интерфейсы. Такой файл обычно сопровождает проект на этапе проектирования и далее используется для генерации заголовков, документации, тестов и моделей эмуляции.

Структура описания

Файл floorplan представляет собой текстовый документ, в котором описывается иерархия компонентов устройства. Каждый компонент (блок, контроллер, регистр) объявляется с указанием его типа, адреса, размера и свойств. Основные конструкции языка включают:

  • device — описание целого устройства или подблока;
  • register — описание регистра с указанием смещения, ширины и типа доступа;
  • field — описание отдельного поля регистра (битовой группы) с его значением по умолчанию и допустимыми значениями;
  • memory — описание области памяти;
  • interrupt — описание источника прерывания;
  • connection — описание связи между компонентами (шина, канал данных).

Пример упрощённого описания регистра:

``text register STATUS at 0x10 { width 32; field READY at 0 { width 1; access ro; }; field ERROR at 1 { width 1; access ro; }; field CODE at 8 { width 8; access rw; }; }; ``

Такое описание позволяет однозначно определить, что по адресу 0x10 находится 32-битный регистр состояния, младший бит которого отражает готовность устройства, следующий — наличие ошибки, а биты 8–15 хранят код ошибки.

Применение

Генерация документации

Из файла floorplan автоматически строится документация на устройства: таблицы регистров, описания полей, диаграммы адресного пространства. Это исключает расхождения между документацией и реальной реализацией, поскольку оба артефакта выводятся из одного источника.

Генерация кода

Инструменты на основе floorplan генерируют заголовочные файлы для прошивок и драйверов: структуры, описания смещений, макросы доступа к регистрам. Это ускоряет разработку программного обеспечения и снижает вероятность ошибок адресации.

Верификация и моделирование

Файл используется для построения моделей устройств в эмуляторах и симуляторах. В частности, в проекте OpenPOWER модели процессоров и периферии строятся на основе floorplan-описаний, что позволяет запускать и отлаживать программное обеспечение ещё до изготовления кристалла.

Обратная инженерия и анализ

В ряде исследований floorplan-описания применяются при анализе закрытых аппаратных платформ, где документация недоступна, а структура восстанавливается по поведению устройства.

Отличия от других форматов

ФорматНазначениеОтличие от floorplan
IP-XACTОписание IP-ядер и системБолее широкий стандарт, ориентированный на интеграцию IP; floorplan проще и сфокусирован на регистровом уровне
SVD (CMSIS)Описание периферии микроконтроллеров ARMФормат XML, распространён в экосистеме ARM; floorplan — текстовый язык с собственной грамматикой
SystemRDLОписание регистровСфокусирован исключительно на регистрах; floorplan описывает иерархию устройства целиком

Ограничения

Язык изначально проектировался под архитектуру POWER и аппаратуру IBM, поэтому описание специфичных для других архитектур конструкций (например, сложных схем прерываний ARM GIC) требует дополнительных соглашений. Спецификация языка развивается медленно, и часть возможностей остаётся фактически задокументированной только примерами.

См. также

  • OpenPOWER Foundation
  • POWER (архитектура)
  • IP-XACT
  • SystemRDL

Источники

  • OpenPOWER Foundation. Floorplan Language Specification.
  • IBM. POWER Architecture Reference Documentation.
  • IEEE Std 1685 (IP-XACT) — стандарт описания IP-ядер.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru