fpga-systems-magazine

Долой RTL описание регистров! (перевод)

Главная » Статьи » Разное » Познавательное
yakovlevap74
13.11.2022 20:17
3152
1
0.0

После почти трех десятилетий, проведенных в EDA бизнесе я до сих пор не могу понять причину, почему многие разработчики микросхем до сих пор продолжают описывать сложные регистровые карты (микросхемы, содержащие сотни регистров и тысячи полей регистров) вручную при помощи RTL. В современном цифровом мире, где программное обеспечение является ключом к успешной реализации продуктов, основанных на микросхемах, именно карта регистров, определяющая аппаратно-программный интерфейс (англ. hardware/software interface - HSI), позволяет реализовывать самые сложные решения на микрочипах для удовлетворения всех потребностей конечного пользователя. В реальном же мире корректная конфигурация HSI даже важнее чем уменьшение задержки на несколько наносекунд или экономия энергии на несколько милливатт. Если HSI не соответствует требованиям клиента (не поддерживает его программные решения) - ваш продукт никому не нужен. Так почему же команды разработчиков до сих пор описывают карты регистров вручную? Если вы задаетесь вопросом почему разработчики должны перестать описывать регистры при помощи RTL, то добро пожаловать под кат.

Документация карты регистров составляется «визионерами» компании – теми людьми, работа которых заключается в представлении как будет выглядеть микросхема в руках конечного пользователя. При этом документация аппаратно-программного интерфейса является неприкосновенным документом для всех участников разработки: начиная от RTL разработчиков и команды верификации, заканчивая командами разработчиков программного обеспечения и документации. Все участники производственного процесса должны ориентироваться на HSI спецификацию, а при острой необходимости внесения изменений – соблюдать дисциплинированный процесс согласования этих модификаций. Именно поэтому RTL реализация должна учитывать каждый нюанс HSI спецификации, потому что даже малейшая неточность и отклонение от документации приведет к катастрофическим последствиям (читать «дорогим»), и именно поэтому команда разработчиков программного обеспечения также должна принимать активное участие в RTL разработке для обеспечения максимального удобства клиента. При этом надо понимать, что процесс финализации HSI – итеративный, очень часто выходящий даже за рамки поставки продукта. Именно поэтому изменения в реализации HSI должны быть максимально быстрыми, аккуратными и всеобъемлющими, и должны включать в себя взгляды всех заинтересованных разработчиков микрочипа. Человеческое вмешательство в таком случае лишь повысит риски, и потребит большее количество ресурсов и замедляет производство.

Такая разная регистровая карта

В современном мире микрочип представляет собой композицию процессорных ядер, блоков памяти, IP сторонних производителей и заказной RTL – RTL, в которую компания добавляет «секретный соус», основанный на опыте и запатентованных инновациях. Привлекательный дифференцированный продукт очень трудно создавать на основе микросхем исключительно из коммерческих IP блоков, но также и нецелесообразно и неэффективно воссоздавать все с абсолютного нуля. Именно это должно побудить разработчиков микросхем сосредоточить свои основные усилия на уникальных архитектурах и потоках данных, выборе оптимальной сторонней IP адресации, индивидуальном RTL, и автоматизации инструментов проектирования. Им не стоит тратить впустую ресурсы команды разработчиков там, где нет дифференцированной добавленной стоимости.

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

Сделайте одолжение себе и компании – начните с языка спецификации карты регистров

Вокруг языков описания регистровых карт существует много путаницы и дезинформации. Это язык или специализированный формат, который используется для сбора подробных требований для регистровой карты, который в дальнейшее становится единым достоверным источником – спецификацией HSI. Такие популярные форматы хранения/передачи данных как IP-XACT и JSON разрабатывались как форматы для обмена информацией, а не для разработки спецификации для регистровых карт. Они не были разработаны для выражения тонких нюансов свойств современных сложных регистровых карт, однако, они превосходят в оптимальности электронные таблицы, но все же не оптимальны для описания сложных регистровых карт.

SystemRDL – это специализированный язык для описания регистровых карт, изначально разработанный для внутреннего использования компанией CISCO Systems, специально для создания спецификации карт регистров. Язык был коммерциализирован под брендом «SystemRDL» компанией Denali в 2006 году, спецификация к которому была выпущена консорциумом SPIRIT/Accellera в 2009 году. Последнее обновление для SystemRDL (SystemRDL 2.0) было выпущено в 2017 году, и, согласно данным веб-сайта компании Accellera – «эта рабочая группа компании Accellera в настоящий момент не функционирует». SystemRDL все ещё используется и по сей день, однако, в нем отсутствуют важные рыночные требования для спецификации регистровой карты.

На сегодняшний день существует лишь один коммерческий доменный язык разработки регистровых карт, который был специально разработан для определения сложных регистровых карт, и устранения недостатков функционала SystemRDL 2.0. Он был разработан для того, чтобы двигаться вперед со временем, отвечая всем современным потребностям в разработке микросхем. Он достаточно прост в освоении и использовании, обладает широкими возможностями для описания регистровых карт, масштабируем до миллионов регистров, и за последние 16 лет прошел неоднократную проверку у многих разработчиков микросхем по всему миру.

Автоматизируйте создание регистровой карты для всех участников производственного процесса, в том числе и для RTL разработчиков

После окончательного выбора масштабируемого языка программирования для написания единственно-верной спецификации, позвольте автоматизированному процессу закончить за вас. Существует несколько взглядов на карту регистров, о которых необходимо помнить для успешного выполнения проекта: RTL (Verilog/VHDL), верификация (UVM), программное обеспечение (заголовки С файлов), и документация (Word). Особенно важна полная синхронизация между данными «взглядами» на протяжении всего цикла разработки чипа, в том числе, и после поставки продукта. Создание данных регистровых карт не должна тратить интеллектуальные ресурсы разработчиков, именно поэтому ее стоит автоматизировать. Более того, процесс автоматизации устранит человеческий фактор, и сократит усилия команды разработчиков, поэтому мы рекомендуем делегировать данный процесс.

CSRCompilier – это кросс-компилятор от Semifore, который принимает спецификацию для регистровых карт в разных форматах – CSRSpec, SystemRDL 2.0, IP XACT, и в виде электронных таблиц, после чего генерирует все необходимые представления для регистровой карты – RTL, UVM, IP XACT, С-заголовки, и Word-документацию.

Послесловие

Теперь – если вы согласны с тем, что я попытался здесь объяснить, то постарайтесь ответить на вопрос почему же RTL разработчики до сих пор вручную описывают регистровые карты, а более того – им разрешено это? Может быть, здесь – дело привычки: раз так делалось до нас, значит, и следует продолжить описывать таким же образом? Может быть это связано с недостаточной осведомленностью о существующих автоматических средствах? Может быть это связано с тем, что процесс проектирования слишком сложен, и у разработчиков нет времени и желания для изменения процесса проектирования. Однако, необходимо помнить, что с течением времени регистровые карты лишь будут усложняться.

Какой бы не была причина, вам следует подумать об интеграции с Semifore, которые продемонстрируют лучшие автоматизированные решения для управления сложной реализацией ваших регистровых карт. Надеюсь, теперь вам понятно, почему команды разработчиков должны ПРЕКРАТИТЬ описывать регистры при помощи RTL.


Ссылка на оригинальную статью

3152
1
0.0

Всего комментариев : 1
avatar
1 barkovian • 16:08, 10.12.2022
Если бы я не знал, что такое регистровые карты и как они используются, я бы решил что это что-то для небожителей и пошёл грустно всё дальше делать руками. Без примера описания регистров и сгенерённых RTL/UVM/C/HTML файлов это выглядит как что-то максимально абстрактное.

А картинки-то стоит тоже переносить из оригинала. Можно не переводить, но хотя бы просто вставить нужно.
avatar

FPGA-Systems – это живое, постоянно обновляемое и растущее сообщество.
Хочешь быть в курсе всех новостей и актуальных событий в области?
Подпишись на рассылку

ePN