Vhdl для автомобильных встроенных систем: соображения безопасности и надежности
Введение
VHDL (VHSIC Hardware Description Language) - это стандартный язык IEEE (IEEE 1076), используемый для описания структуры и поведения цифровых электронных систем. Первоначально разработанный для программы VHSIC Министерства обороны США & #8217, VHDL превратился в краеугольный камень современного цифрового дизайна. В автомобильном секторе внедрение VHDL ускоряется, поскольку транспортные средства становятся все более зависимыми от сложных электронных систем, которые контролируют все, от времени двигателя до автономных функций вождения. Спрос на безопасность и надежность в этих системах имеет первостепенное значение, и VHDL предоставляет инструменты, необходимые для проектирования, моделирования и проверки цифрового оборудования, которое соответствует строгим автомобильным стандартам.
Автоматические встроенные системы сегодня управляют критическими функциями, такими как электронный контроль устойчивости, адаптивный круиз-контроль, помощь в поддержании полосы движения и передовая логика развертывания подушек безопасности. Любой сбой в этих системах может иметь катастрофические последствия. VHDL позволяет инженерам создавать точные модели цифровой логики, имитировать их в широком диапазоне условий и выявлять потенциальные неисправности, прежде чем совершать физические аппаратные средства. В этой статье рассматривается, как VHDL способствует созданию безопасных и надежных автомобильных встроенных систем, рассматриваются конкретные соображения безопасности, обсуждаются проблемы надежности и их решения, а также излагаются лучшие практики для инженеров, работающих в этой области.
Роль VHDL в автомобильных встраиваемых системах
Современные транспортные средства содержат десятки электронных блоков управления (ECU), которые обмениваются данными по сетям, таким как CAN, LIN, FlexRay и Ethernet. Эти ECU построены со сложной цифровой логикой, реализованной в специализированных интегральных схемах (ASIC) или программируемых в полевых условиях массивах затворов (FPGA). VHDL является языком выбора для проектирования цифровых частей этих устройств, поскольку он поддерживает абстрактное моделирование, детальное моделирование времени и синтез с реальным оборудованием.
Критические системы автомобильного контроля
VHDL используется для разработки цифровой логики для широкого спектра автомобильных подсистем:
- Пункты управления силовыми агрегатами (EMU) зависят от конструкций на основе VHDL для определения времени впрыска топлива, управления зажиганием и логики рециркуляции выхлопных газов. Эти системы должны работать с микросекундной точностью при экстремальном тепловом и вибрационном напряжении.
- Системы тормозов: Антиблокировочные тормозные системы (ABS) и электронные системы контроля устойчивости (ESC) используют VHDL для реализации критически важных для безопасности государственных машин, сенсорных интерфейсов и контуров управления приводом.
- Передовые системы помощи водителю (ADAS): Обработка зрения, обработка радиолокационных сигналов и слияние данных лидара часто включают высокоскоростные цифровые схемы, разработанные в VHDL. Эти модули должны соответствовать строгим ограничениям в реальном времени и требованиям отказоустойчивости.
- Развертывание подушки безопасности: Схемы стрельбы Squib, алгоритмы обнаружения аварий и диагностическая логика реализованы с использованием VHDL для обеспечения надежного развертывания в миллисекундах.
- Инфоразведка и связь: Хотя эти системы менее критичны для безопасности, они по-прежнему пользуются возможностью VHDL’ обрабатывать высокоскоростные последовательные интерфейсы, контроллеры памяти и шифровальные движки.
Дизайнерский поток с VHDL
Типичный поток проектирования для автомобильных систем на основе VHDL следует этим этапам:
- Определение: Требования фиксируются, часто связанные с целями безопасности ISO 26262.
- RTL дизайн: Инженеры пишут код VHDL на уровне регистр-переноса (RTL), описывающий предполагаемое поведение.
- Имитация: Функциональные и временные модели проверяют правильность на тестбенчах, которые моделируют реальные входные данные, включая сценарии впрыска неисправностей.
- Формальная проверка: Математические методы доказывают, что конструкция удовлетворяет свойствам безопасности (например, “ подушка безопасности не должна разворачиваться, когда транспортное средство находится в неподвижном состоянии”).
- Синтез: Код VHDL компилируется в нет-лист уровня шлюза, ориентированный на технологию ASIC или FPGA.
- Моделирование после синтеза и анализ времени: Обеспечивает соответствие физической реализации ограничениям по времени в наихудших условиях.
- Прототипирование и валидация: Конструкция тестируется на эмуляторах на основе FPGA или в кремнии.
Сильная типизация VHDL’, параллельная модель и поддержка иерархического дизайна делают его особенно подходящим для автомобильных проектов, где несколько команд разрабатывают отдельные IP-блоки, которые должны легко интегрироваться. Кроме того, стандартизация языка’ обеспечивает переносимость различных инструментов EDA и литейных технологий, что является ключевым преимуществом для поставщиков автомобилей, которые часто работают с несколькими партнерами по полупроводникам.
Безопасность в VHDL Design
Безопасность в автомобильной электронике руководствуется стандартом ISO 26262, который определяет уровни целостности безопасности автомобилей (ASIL) A через D, причем ASIL D является наиболее строгим. VHDL непосредственно поддерживает разработку критически важного для безопасности оборудования с помощью нескольких механизмов.
Формальная проверка
Традиционное моделирование может осуществлять лишь малую часть всех возможных комбинаций входов. Формальная проверка использует математические доказательства для исчерпывающей проверки того, что конструкция VHDL придерживается заданных свойств безопасности. Примеры включают в себя доказательство того, что арбитр никогда не выдает два запроса одновременно, или что государственная машина никогда не входит в недействительное состояние. Такие инструменты, как OneSpin, Cadence JasperGold и Siemens Questa Formal, могут применяться к конструкциям VHDL для достижения покрытия, необходимого для сертификации ASIL D. Путем встраивания формальных утверждений непосредственно в код VHDL (с использованием PSL или SVA), инженеры документируют требования безопасности, которые могут быть проверены автоматически.
Недоброжелательность и избыточность
Общим подходом к достижению безопасности в автомобильных системах является избыточность. VHDL позволяет реализовать тройную модульную избыточность (TMR), где три идентичных модуля выполняют одни и те же вычисления, а избиратель выбирает выход большинства. Аналогично, дублирование с сравнением (DWC) использует два модуля и компаратор; любое несоответствие запускает переход в безопасное состояние. VHDL & #8217 генерирует заявления и инстанциацию компонентов, что позволяет легко инстанцировать избыточную логику без повторяющегося кода, при этом позволяя независимое размещение и маршрутизацию в физическом дизайне.
Обнаружение и исправление ошибок
Элементы памяти (флип-флопс, SRAM, регистровые файлы) уязвимы к одномерным расстройствам (SEU), вызванным космическим излучением или альфа-частицами. Конструкции VHDL могут включать коды коррекции ошибок (ECC), такие как коды Хэмминга или CRC для целостности данных. Для критически важных для безопасности путей передачи данных инженеры могут реализовать проверку четности или циклическую проверку избыточности (CRC) в VHDL. Многие автомобильные ECU также включают встроенную логику самотестирования (BIST), описанную в VHDL, которая периодически проверяет здоровье памяти и логических блоков во время работы.
Степные часы и безопасные государственные машины
Таймер сторожевого пса — простой, но эффективный механизм безопасности: счетчик должен регулярно сбрасываться основной логикой; если он разгоняется, предполагается неисправность и система входит в безопасное состояние. VHDL может моделировать таймеры сторожевого пса с точными параметрами времени, а машина безопасного состояния может быть спроектирована для отключения приводов, включения режима хромоты или грациозного выключения. Формальная проверка может доказать, что сторожевой пёс всегда будет запускать до того, как критический сбой распространится.
Соответствие требованиям ASIL
Для обеспечения соответствия стандарту ASIL D процесс проектирования VHDL должен включать:
- Систематическое устранение неисправностей (стандарты кодирования, обзоры дизайна).
- Систематическое обнаружение неисправностей (симуляция, формальная проверка).
- Случайное обнаружение неисправностей (ECC, BIST, избыточность).
- Двойное обнаружение неисправностей (мониторинг механизмов безопасности).
Поддержка VHDL’ для генериков и конфигураций позволяет командам параметризировать механизмы безопасности (например, количество избыточных модулей, прочность ECC) и повторно использовать одну и ту же кодовую базу для разных уровней ASIL в семействе продуктов.
Проблемы и решения надежности
Помимо безопасности, автомобильные системы должны надежно работать более 15 лет в суровых условиях: температура от -40 & # 176; C до + 150 & # 176; C, экстремальная вибрация, влажность и электромагнитные помехи (EMI). VHDL помогает смягчить эти проблемы надежности путем тщательного моделирования и моделирования.
Электромагнитная интерференция (EMI)
Высокоскоростное цифровое переключение генерирует проводимые и излучаемые выбросы, которые могут нарушить близлежащие чувствительные цепи. Моделирование VHDL с помощью обратно аннотированных паразитных данных из компоновки может предсказать влияние синхронизации шума питания и перекрестных разговоров. Инженеры могут затем регулировать силу привода, добавлять экранирование или вставлять ячейки задержки в конструкцию VHDL для снижения восприимчивости. Кроме того, модели VHDL сети доставки мощности помогают имитировать падения напряжения, которые могут вызвать логические ошибки.
Изменения температуры и напряжения
Полупроводник задерживает изменения с температурой и напряжением питания. Симулирование времени VHDL’ может выполняться на нескольких углах PVT (процесс, напряжение, температура), чтобы проверить, что время установки и удержания соблюдается во всех условиях. Для критически важных путей инженеры могут проектировать адаптивные схемы синхронизации в VHDL, такие как контроллеры масштабирования динамического напряжения или осцилляторы с компенсацией температуры.
Механизмы старения и износа
Со временем электромиграция, впрыск горячего носителя и нестабильность температуры отрицательного смещения (NBTI) ухудшают производительность транзистора. Поведенческие модели VHDL могут включать эффекты старения путем корректировки параметров задержек и утечек. Хотя это область активных исследований, некоторые инструменты EDA предлагают моделирование со старением, которое использует тестбенчи VHDL для оценки надежности конструкции & #8217. Увольнение также может смягчить износ: если один модуль замедляется, избиратель все еще производит правильные результаты.
Эффекты однократного события (SEE)
Как обсуждалось в рамках безопасности, SEU являются проблемой надежности, особенно на больших высотах или вблизи ядерных источников. Конструкции VHDL для автомобилей должны включать закаленные провалы (например, защелки DICE) или логику очистки для памяти конфигурации в FPGA. Инженеры могут имитировать впрыск SEU, переключая случайные провалы в тест-выключателе VHDL и наблюдая за реакцией системы, обеспечивая правильную работу механизмов восстановления.
Проектирование для обеспечения тестируемости (DFT)
Надежность не может быть гарантирована без возможности тестирования изготовленного устройства. VHDL используется для вставки цепей сканирования, граничного сканирования (JTAG) и встроенных контроллеров самотестирования (BIST). Эти структуры DFT позволяют автоматическому испытательному оборудованию (ATE) обнаруживать производственные дефекты и обеспечивать полевую диагностику. VHDL описания контроллеров JTAG TAP и конечных машин BIST являются стандартными компонентами в автомобильных ASIC.
Лучшие практики для VHDL в автомобильных приложениях
Для разработки надежных, сертифицированных конструкций VHDL для автомобильных систем необходимо следовать установленным передовым практикам. Приведенные ниже рекомендации соответствуют отраслевым стандартам, таким как ISO 26262 и руководящие принципы MISRA C (которые вдохновили аналогичные правила для VHDL).
Стандарты кодирования и руководящие принципы проектирования
Последовательный стиль кодирования уменьшает человеческие ошибки и облегчает обзоры кода.Принять или создать руководство по стилю VHDL, которое включает в себя:
- Использование std logic и std logic vector вместо бит/бит vector для лучшего моделирования неизвестных и высокоимпедансных состояний.
- Явная логика сброса: убедитесь, что все шлепанцы имеют синхронный или асинхронный сброс, и что политика сброса документирована.
- Избегайте смешивания восходящих и падающих краевых часов в одном и том же процессе, чтобы предотвратить метастабильность.
- Использование assert выражений для проверки времени выполнения, которые могут быть отключены во время синтеза.
- Ограниченное использование ‘X’ и ‘Z’ значений; четко определенная обработка метастабильности.
Многие организации ссылаются на Aldec VHDL Coding Standard или на руководящие принципы MISRA для критически важного для безопасности программного обеспечения, распространяя их на языки описания аппаратного обеспечения. Эти стандарты запрещают неоднозначные конструкции и требуют официальной документации о намерениях проектирования.
Моделирование и Testbenches
Моделирование является основным методом проверки функциональной корректности для автомобильных проектов VHDL:
- Разработайте комплексную тест-скрижаль, которая включает в себя направленные тесты, случайные стимулы и угловые случаи.
- Используйте инструменты покрытия кода (toggle, branch, condition, FSM) для измерения полноты теста. Цель - 100% охват переключения и > 95% охвата ветви / состояния на всех критически важных блоках безопасности.
- Выполняйте впрыск неисправности: имитируйте однократные нарушения, застрявшие неисправности и нарушения времени, чтобы проверить, что механизмы безопасности обнаруживают и реагируют.
- Используйте VHDL’s“after” пункты и генерацию формы волны для моделирования реалистичного времени ввода.
- Интегрируйтесь с непрерывным конвейером интеграции (CI), который выполняет регрессионное моделирование на каждом обязательстве.
Формальная проверка
Для систем ASIL D все чаще требуется формальная проверка.
- Определить формальные свойства (утверждение, предположения, точки покрытия) для всех требований безопасности. Например, утверждение о том, что “brake n и brake p никогда не являются одновременно активными.”
- Используйте многоуровневый подход: сначала докажите свойства на уровне блоков, затем докажите взаимосвязь и интеграцию на верхнем уровне.
- Объедините формальную проверку с динамическим моделированием для обработки сложных конструкций, которые слишком велики для исчерпывающего доказательства.
- Архив официальных результатов в рамках пакета доказательств сертификации. OneSpin Solutions и другие поставщики EDA предоставляют инструменты, которые генерируют отчеты о соответствии, подходящие для аудитов ISO 26262.
Методы увольнения
При проектировании избыточных систем в VHDL следуйте этим рекомендациям:
- Используйте генерировать заявления для создания нескольких экземпляров модуля с минимальным дублированием кода. Параметризуйте количество полос с помощью дженерика.
- Отделите логику избирателя/сравнителя от избыточных модулей, чтобы обеспечить независимый синтез и размещение.
- Предназначьте себе избирателя как безопасную страну: используйте трехкратный подход к выбору избирателей, чтобы избежать одной точки отказа.
- Включите диагностические функции, которые позволяют системе сообщать, какой модуль не согласен (полезно для онлайн-тестирования и обслуживания).
Документация и прослеживаемость
Сертификация требует полной прослеживаемости от требований системного уровня до кода VHDL и результатов проверки.
- Вставить ссылки на требования в комментарии VHDL (например, – REQ-1234: CRC включен для заголовка сообщения).
- Поддерживать матрицу прослеживаемости требований (RTM), которая связывает каждую организацию VHDL с ее целями безопасности.
- Используйте контроль версий (Git, SVN) с подписанными тегами для релиза кандидатов.
- Автоматизация генерации документации из источника VHDL с использованием таких инструментов, как Doxygen с фильтрами VHDL.
Заключение
VHDL остается основополагающим языком для проектирования цифрового оборудования в автомобильной промышленности. Его способность моделировать сложную логику, моделировать экстремальные условия и поддерживать формальную проверку делает его незаменимым для удовлетворения требований безопасности (ISO 26262) и надежности современных транспортных средств. Приняв строгие стандарты кодирования, обширное моделирование с впрыском неисправности, формальную проверку и систематическое резервирование, инженеры могут создавать цифровые системы, которые работают правильно в течение всего срока службы автомобиля, даже в неблагоприятных условиях.
Будущее VHDL в автомобилестроении выглядит многообещающим: предстоящий стандарт IEEE 1076-2019 добавляет улучшенную поддержку дженериков, пакетов и внешних имен, делая проверку еще более эффективной. В то же время, толчок к зональным архитектурам и централизованным вычислительным платформам (контроллеры домена, автономные управляющие компьютеры) потребует еще более сложных конструкций VHDL для высокоскоростных соединений, двигателей безопасности и мониторов безопасности. Инженеры, которые осваивают эти методы VHDL, будут хорошо расположены для формирования следующего поколения безопасных, надежных транспортных средств.
Для дальнейшего чтения обратитесь к стандарту ISO 26262 для функциональной безопасности и SemiEngineering article on car safety and HDL verification для получения дополнительной информации.Сочетание VHDL с формальными инструментами и отказоустойчивыми архитектурами будет продолжать стимулировать автомобильную промышленность к более высоким уровням автономии и безопасности.