Одним нажатием кнопки вы можете сгенерировать код из MATLAB и Simulink и запустить его на железе. Однако, кодирование — это только одна из задач. Используя MATLAB и Simulink, вы можете проектировать, переносить в код и верифицировать вашу встраиваемую систему — начиная от прототипа и заканчивая серийным производством. Вы можете:

  • Генерировать оптимизированный C, C++, CUDA, Verilog, VHDL и Structured Text

  • Использовать инструменты для проектирования в арифметике с плавающей и фиксированной точкой и генерации чисто целочисленного кода

  • Верифицировать и профилировать сгенерированный код, используя методы тестирования «в контуре»

  • Соответствовать стандартам, таким, как AUTOSAR, ISO 26262, DO-178, MISRA C и CERT C

  • Прототипировать алгоритмы на популярных отладках начиная от Arduino® и заканчивая Zynq® с использованием пакетов поддержки оборудования

Запрос консультации

Моделирование алгоритма

Инструменты MathWorks для проектирования систем управления поддерживают все этапы процесса разработки — от моделирования объекта управления и окружения до анализа, синтеза и настройки регулятора. Широкое использование MATLAB, Simulink и Stateflow инженерами по всему миру обусловлено гибкостью, с которой эти инструменты позволяют решать различные задачи управления, описывать событийную логику и разрабатывать передовые алгоритмы.

Цифровые алгоритмы играют существенную роль в облике современных комплексных систем. МОП предоставляет среду для графического построения алгоритмов, наборы готовых библиотек с реализованными алгоритмами, а также средства для автоматической настройки алгоритмов для удовлетворения требований технического задания.

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

Автоматическая генерация С/С++ кода

Автоматическая генерация встраиваемого кода в корне меняет работу инженеров. Вместо написания тысяч строк кода вручную, инженеры автоматически генерируют промышленный код для повышения производительности, улучшения качества и стимулирования инноваций.

Используя продукты MathWorks для генерации C/C++ кода, вы можете:

  • Разрабатывать приложения реального времени для процессоров с плавающей или фиксированной точкой

  • Генерировать C или C++ код из MATLAB и Simulink

  • Оптимизировать код для определенных процессорных архитектур

  • Интегрировать сгенерированный код с кодом, написанным вручную (существующим или специализированным)

  • Профилировать и осуществлять верификацию встраиваемого кода на микроконтроллерах и DSP

  • Разрабатывать в соответствии с промышленными стандартами сертификации

Автоматическая генерация VHDL/Verilog кода

Используя продукты MathWorks для генерации VHDL/Verilog кода, вы можете:

  • Генерировать либо платформонезависимый, либо оптимизированный под конкретную платформу HDL код

  • Программировать ПЛИС Xilinx, Intel и Microsemi, а также СнК из MATLAB и Simulink

  • Верифицировать проекты ПЛИС относительно системных спецификаций

Автоматическая генерация CUDA кода

Используя продукты MathWorks для генерации CUDA кода, вы можете:

  • Генерировать CUDA код из MATLAB

  • Генерировать CUDA код для нейросетей

  • Оптимизировать сгенерированный CUDA код

  • Запускать сгенерированный код на GPU процессорах, таких, как NVIDIA Tesla и Tegra

Автоматическая генерация Structured Text

Используя продукты MathWorks для генерации ST кода, вы можете:

  • Генерировать Structured Text и Ladder Diagrams из моделей Simulink

  • Оптимизировать сгенерированный код

  • Комментировать, трассировать и документировать сгенерированный код

  • Тестировать и верифицировать сгенерированный код через интеграцию со сторонними IDE для разработки под ПЛК

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

В наших проектах мы используем Embedded Coder для перевода моделей в высококачественный исходный код и исполняемые файлы для прототипирования и серийных изделий. Настройки генерации C и C++ кода, доступные по умолчанию позволяют быстро начать. Для промышленных или военных проектов мы рекомендуем воспользоваться опытом инженеров ЦИТМ Экспонента по настройке генерации более оптимального кода с использованием SIMD инструкций, настройке классов памяти и управлением размещением в памяти.

Воспользуйтесь нашим опытом по настройке процесса получения кода, соответствующего стандартам ANSI/ISO C/C++, MISRA-C или AUTOSAR, который встраивается в ваше системное окружение. Для ускорения разработки алгоритмов, создания кода и отладки мы рекомендуем настроить получение готового исполняемого файла, который автоматически загружается и запускается на вычислителе разрабатываемого изделия. 

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

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

Верификация и профилирование сгенерированного кода

При разработке сложных современных систем зачастую верификация и отладка занимает до 80% усилий на проект, что не добавляет мотивации ни самим разработчикам, ни руководителям предприятий. Налаженный процесс МОП позволяет радикально автоматизировать и упростить задачу верификации встроенного ПО за счет удобства создания требований и их наглядной трассируемости к моделям, сгенерированному коду и тестовым примерам. Для стимулирования командной работы и унификации мы рекомендуем использовать автоматизированные проверки на соответствие стандартам моделирования - внутрикорпоративным или общепризнанным, таким, как MAAB. Проверенным методом ранней верификации является запуск имитационных тестов при помощи методов “программа-в-контуре”, “процессор-в-контуре”, а также тестирование в реальном времени при помощи полунатурного моделирования. Embedded Coder интегрирован с пакетами поддержки целевых платформ РИТМ ВС используемых для

  • верификации функционального соответствия исполняемого объектного кода и оригинальной модели,
  • профилирования времени выполнения сгенерированного кода вплоть до отдельных задач и функций
  • измерения покрытия кода тестами.

Как для рукописного кода так и для автоматически сгенерированного мы рекомендуем применять Polyspace проверки. Мы имеем широкий опыт внедрения Polyspace в инструменты CI/CD наших заказчиков, выстраивания процесса доказательства отсутствия ошибок времени выполнения, соблюдения стандартов кодирования и проверки на уязвимости в безопасности с использованием таких стандартов, как CWE, CERT-C и ISO/IEC 17961.

Используя наш опыт, вы можете выстроить рабочий процесс в соответствии с промышленными стандартами разработки ПО повышенной надежности для сертификации по таким стандартам, как КТ-178С, ГОСТ Р МЭК 61508 и ISO 26262.

Программное обеспечение

${message}

${message}