Как уменьшить количество ошибок в проектах FPGA с помощью софта ALINT-PRO
(вольный перевод с английского)
Ни для кого не секрет, что около половины времени, потраченного на проектирование RTL-кода для FPGA, уходит на верификацию и поиск ошибок. Одним из важных инструментов, предотвращающих появление ошибок, можно считать средства статической проверки кода с точки зрения корректности кодирования. Эти проверки, особенно, если их можно выполнять онлайн в процессе редактирования проекта, могут существенно снизить головную боль как у разработчика, так и у его коллег, которые в дальнейшем проверяют результаты его работы. В этой статье мы поговорим о конкретном инструменте для статической проверки проектов ПЛИС – это пакет ALINT-PRO от компании ALDEC.
ALINT-PRO™ – это решение для проверки проекта RTL, написанного на VHDL, Verilog и SystemVerilog, которое ориентировано на проверку стиля кодирования и соглашений об именах, несоответствий моделирования RTL и пост-синтеза, для обеспечения плавного и оптимального синтеза, правильных описаний FSM. Применение ALINT-PRO поможет вам избежать проблем на дальнейших этапах проектирования, таких как тактирование и проблемы с деревом сброса, CDC, RDC, DFT. Программа ALINT-PRO упрощает кодирование для переносимости и повторного использования. Решение выполняет статический анализ на основе исходных файлов RTL и SDC™, выявляя критические проблемы проектирования на ранних этапах цикла проектирования, что, в свою очередь, значительно сокращает время согласования проекта. Запуск ALINT-PRO перед этапами моделирования RTL и логического синтеза предотвращает распространение проблем кодирования RTL на последующие этапы процесса проектирования, и уменьшает количество итераций, необходимых для завершения проектирования.
Единая структура для анализа DRC и CDC / RDC
ALINT-PRO обладает хорошо разработанной, интуитивно понятной структурой, которая предлагает функции для эффективного анализа проекта, включая просмотр схемы RTL, просмотрщик FSM, просмотр тактовых импульсов и сбросов, просмотр схемы управления, просмотр сложности, просмотр нарушений, и специальные инструменты, такие как просмотрщик CDC, средства просмотра RDC и схемы CDC для анализа пересечений в доменах клоков и инициализации.
Настройка существующего проекта HDL для анализа в ALINT-PRO поддерживается путем чтения внешних форматов файлов проекта (Aldec Active-HDL, Aldec Riviera-PRO, Xilinx Vivado, Xilinx ISE, Intel Quartus), интерпретируя типичные сценарии моделирования (команды совместимости, такие как vcom, vlog, vsim, vlib), а также традиционные списки файлов для инструментов пакетного режима и очень простые мастера графического интерфейса для прямого импорта отдельных файлов и целых каталогов.
Полная проверка на уровне чипа и линейная проверка
ALINT-PRO поддерживает 2 различные методики линтинга: полную проверку на уровне чипа и блочную проверку. Оба метода дополняют друг друга и обычно применяются на разных этапах цикла проектирования.
Полная проверка на уровне чипа выполняет анализ иерархии проекта в целом, с конкретными значениями общих параметров, распространяемых от экземпляров верхнего уровня до конечных подмодулей, а также с применением пользовательских временных ограничений. Эта методология традиционна для типичных инструментов линтинга HDL и чаще используется во время периодов приемки проекта, или для типов проверки, которые требуют одновременного изучения всего проекта в качестве уже интегрированной системы (проверки синхронизации и сброса, CDC, RDC, DFT). Эта методология предполагает, что весь или, по крайней мере, большая часть тестируемого проекта уже реализована.
Фрагментация блоков — это относительно новый подход, который хорошо сочетается с режимом плоской разработки — особый вид разработки, который рассматривает блоки проектирования HDL независимо друг от друга и использует стандартные значения общих параметров. Этот стиль обработки позволяет позже добавлять отсутствующие элементы в проектах, такие как еще не реализованные части иерархии. Это делает модульный линтинг наиболее ценным как при применении к отдельным исходным файлам, независимо от других файлов, так и сразу после того, как файлы были изменены дизайнером. Поэтому многие очень важные проверки правил выполняются очень рано, почти сразу после написания самого кода, что сокращает цикл обратной связи для дизайнера от дней или недель до нескольких секунд. Естественным приложением для блочной проверки является интеграция с HDL-редакторами, причем блочная проверка выполняется в фоновом режиме, что предусмотрено в последних версиях Aldec Active-HDL ™ и Riviera-PRO ™, а также в некоторых популярных сторонних редакторах HDL.
Разумеется, объединение блоков не устраняет необходимость использования полной традиционной проверки, поскольку сочетание независимых блоков может создать дополнительные проблемы после интеграции. Тем не менее, систематическое применение единичного линтинга может значительно сократить количество проверок во время периодов приемки проекта.
Проверка проектов ПЛИС
ALINT-PRO хорошо поддерживает запуск проверки правил для проектов, нацеленных на реализацию FPGA с использованием технологий Xilinx, Altera (Intel), Microsemi и Lattice с минимальной настройкой. ALINT-PRO предлагает последние версии библиотек поставщиков FPGA, которые предварительно собраны, установлены по умолчанию и предварительно настроены для расширенной проверки тайминга и проверки правил CDC.
ALINT-PRO автоматизирует настройку иерархического и инкрементного анализа для схем FPGA на основе IP. Каждый IP-блок может сначала анализироваться отдельно, а извлеченные временные ограничения могут сохраняться и использоваться повторно для гораздо более быстрого анализа проекта более высокого уровня. Если IP-блок не был переконфигурирован в исходной среде разработки, его тело анализируется только один раз, что экономит много времени во время последующих запусков основной схемы FPGA.
Пакетный режим проверки
Ключевые функции ALINT-PRO также доступны через богатый набор команд сценариев на основе языка TCL. Сценарии могут использоваться для автоматизации проверки правил проектирования, повторяющихся настроек и генерации отчетов. Сценарии могут выполняться в интерактивной консоли или в полностью автоматическом пакетном режиме. Наконец, ALINT-PRO способен запускать наиболее типичные сценарии ввода-вывода и проектирования в истинном пакетном режиме с помощью единого вызова приложения командной строки, что делает его идеально подходящим для интеграции с большими сценариями регрессионного тестирования и средами непрерывной интеграции, такими как Jenkins.
Доступные библиотеки правил для ALINT-PRO™
ALINT-PRO включает в себя библиотеки правил, основанные на рекомендациях по проектированию STARC (Центр научных исследований полупроводниковых технологий) и RMM (Руководство по методике повторного использования), в которых используются лучшие методы разработки дизайна, используемые полупроводниковыми компаниями во всем мире. Для критически важных проектов Aldec предоставляет библиотеки правил, основанные на рекомендациях DO-254, ориентированных на анализ критических проблем, влияющих на стабильность проекта.
Плагины для основных правил дополняются настраиваемыми библиотеками правил Aldec Basic и Premium, основанными на собственном опыте фирмы Aldec с цифровым дизайном FPGA и ASIC, а также включают в себя множество дополнений, рекомендованных существующими клиентами ALINT-PRO для борьбы с критическими проблемами в промышленном дизайне – так называемыми «убийцами чипов». Плагин ALDEC SV предназначен для новых разновидностей ошибок RTL, специфичных для подмножеств проектирования SystemVerilog.
Подключаемый модуль правила ALDEC_CDC превращает ALINT-PRO в полномасштабное решение по проверке CDC и RDC, способное к комплексному анализу пересечений доменов клоков и перезапусков, и решению проблем метастабильности в современных конструкциях с несколькими клоками и множественным сбросом. Стратегия верификации в ALINT-PRO состоит из трех ключевых элементов: статическая структурная верификация, настройка проектных ограничений и динамическая функциональная верификация. Первые два шага выполняются в ALINT-PRO, в то время как динамические проверки осуществляются посредством интеграции с симуляторами (поддерживаются Riviera-PRO™ , Active-HDL™ и ModelSim®) на основе автоматически созданного испытательного стенда. Этот подход выявляет потенциальные проблемы с метастабильностью при моделировании RTL, которые в противном случае потребовали бы обнаружения с помощью лабораторных тестов. Отладка проблем CDC и RDC достигается с помощью мощных схем и механизмов перекрестного зондирования HDE, а также всесторонних отчетов и API на основе TCL, который позволяет просматривать результаты синтеза, синхронизировать и сбрасывать структуры, обнаруживать пересечения доменов клоков и сброса, а также идентифицировать синхронизаторы.
В заключение перечислим основные характеристики ALINT-PRO:
- Анализ цепей клоков и сбросов
- Предотвращение пост-RTL и пост-синтезных несоответствий моделирования
- Проверка правильности описания
- FSM Графическое исследование выделенных автоматов и выявленных проблем с автоматами
- Переносимость и повторное использование кода
- Обширные проверки CDC и RDC с плагином правила ALDEC_CDC
- Усовершенствованная среда отладки CDC и RDC
- Просмотр схем
- DFT проверки
- Поддержка SDC™
- Расширение ограничений проекта для описаний IP
- Фоновый и пакетный режимы работы
Пакет ALINT-PRO можно запускать под управлением 32-разрядных или 64-разрядных операционных систем Windows или Linux. При инсталляции надо выбрать базовую конфигурацию и необходимые для работы дополнительные пакеты:
Можно также устанавливать дополнительные библиотеки конкретных вендоров FPGA, причем можно сделать это как при первоначальной инсталляции, так и в дальнейшем.