Осенью 2025 года в ЦИТМ «Экспонента» обратились инженеры АО «Концерн «НПО «АВРОРА» - флагмана отечественного судостроения, предприятия с полувековой историей и серьезным портфелем гражданских и специальных проектов. Коллеги поставили перед нами задачу: провести комплексную оценку среды Engee как платформы для модельно-ориентированного проектирования программного обеспечения для программируемых логических интегральных схем (ПЛИС) и микроконтроллеров (МК). Цель проекта – заменить зарубежные решения в реальных промышленных задачах, а далее мы расскажем подробно как проходила эта работа, какие технические вызовы пришлось преодолевать и к каким выводам пришли инженеры с обеих сторон.
Почему модельно-ориентированное проектирование критично для «Авроры»
Современное судостроение - это сложная отрасль, где традиционный подход к разработке ПО сталкивается с некоторыми ограничениями. Каждый переход от технического задания к спецификации, от спецификации к коду, вносит потенциальные ошибки интерпретации. Каждый такой переход требует привлечения новых специалистов: системных инженеров, программистов встроенных систем, верификаторов. Каждый раз возникает барьер коммуникации между разработчиком аппаратуры, который понимает физику процесса, и программистом, который пишет код, не всегда глубоко погружённый в специфику предметной области.
Модельно-ориентированный подход решает эту проблему. Модель объекта, созданная в среде моделирования, становится единым источником истины. Из нее автоматически генерируется код, который по определению точно соответствует поведенческой спецификации. Разработчик аппаратуры, тот, кто создаёт целевое изделие и глубоко понимает его физику, может самостоятельно реализовать алгоритм управления, не привлекая отдельного программиста.
Однако такой подход предъявляет крайне высокие требования к самой среде моделирования.
Выбор тестовой модели.
Главным принципом проекта стал отказ от синтетических задач. Вместо этого была выбрана реальная модель из практики — система цифрового дифференцирования и сведения импульсного и токового диапазонов контроля плотности нейтронного потока. Эта система выполняет несколько функций: формирует сигнал периода удвоения мощности, обеспечивает автоматическое переключение между импульсным и токовым диапазонами контроля нейтронной мощности, а также осуществляет непрерывный контроль исправности измерительного канала.
Модель, с которой предстояло работать, была изначально реализована в Simulink и состояла из трёх функциональных частей. Первая часть включала блок аналого-цифрового преобразователя, реализованный в MATLAB с последующей кодогенерацией, — это типовой подход для работы с реальными физическими сигналами. Вторая, центральная часть, содержала два идентичных цифровых дифференциатора, которые и предстояло реализовать в Engee. Третья часть включала блок сведения диапазонов и цифро-аналоговый преобразователь, также реализуемый в MATLAB. Схема была продумана таким образом, чтобы максимально загрузить тестируемую среду реальными задачами: дифференциаторы требовали работы с фиксированной точкой и реализации CIC-фильтров с высоким коэффициентом децимации, блок сведения диапазонов — сложной логики переключения и сигнализации, а взаимодействие с блоками MATLAB проверяло возможности ко-симуляции, импорта и встраивания сгенерированного кода в Engee в уже разработанные проекты на Verilog.

Этап первый: миграция и валидация в фиксированной точке
Первый этап проекта предполагал реализацию модели в фиксированной точке, аналогичной модели Simulink, и всестороннее сравнение результатов моделирования.
Здесь стоит пояснить, почему фиксированная точка так критична для задач ПЛИС. В отличие от процессоров общего назначения, где вычисления с плавающей точкой стандартны и эффективны, в программируемой логике каждый бит регистра имеет физическую стоимость в виде занимаемых логических ячеек. Разработчик должен точно знать, сколько бит необходимо для представления каждого промежуточного результата, чтобы не переплатить ресурсами ПЛИС и не потерять точность из-за переполнения или недостаточной разрядности.
Инженеры из АО «Концерн «НПО «АВРОРА» начали перенос моделей с цифровых дифференциаторов. Эти блоки представляют собой классическую задачу цифровой обработки сигналов: на вход поступает оцифрованный сигнал, пропорциональный мощности, который проходит через CIC-фильтр с коэффициентом децимации 500, что позволяет резко снизить частоту дискретизации при сохранении необходимой полосы пропускания. Далее следует собственно дифференцирование для получения периода, блок насыщения для ограничения диапазона, и ряд вспомогательных операций.
Блок сведения диапазонов оказался ещё более интересным с точки зрения логики. Этот блок получает на вход сигналы от импульсного и токового каналов, анализирует их соотношение и текущий режим работы, и принимает решение о переключении диапазонов. Внутри него работают две подсистемы: подмодель переключения диапазонов, которая формирует выходной сигнал мощности и периода, выбирая между импульсным и токовым каналами, и подмодель сигнализации, которая отслеживает состояние работы модуля и диагностирует неисправности. Сигнализация включает индикацию работы в импульсном или токовом диапазоне, зоны перехода между ними, а также контроль выхода уровня входных сигналов за допустимые пределы и расхождения сигналов мощности и периода в диапазонах.


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

Сравнение моделей проводилось комплексно. На вход подавались сигналы от генераторов синусоиды с различными параметрами — разной амплитудой, частотой, фазой. Проверялись переходные процессы при резком изменении параметров входного сигнала. Особое внимание уделялось поведению в граничных случаях — при насыщении, при переходе через ноль, при резком изменении крутизны входного сигнала. Результаты показали полную идентичность поведения блоков А6 и А7 в обеих средах. Выходные сигналы моделей, выполненных в Engee и Matlab, накладывались друг на друга и совпадали во всех смоделированных ситуациях. Дискретные выходы индикации — состояния работы в импульсном или токовом диапазоне, флаги неисправностей — также совпали во всех тестовых сценариях. Это стало важным подтверждением: математическое ядро Engee работает корректно, и миграция моделей возможна без потери функциональности.


Этап второй: генерация HDL-кода и сравнение подходов
Второй этап предполагал генерацию кода Verilog для блока сведения диапазонов встроенными генераторами кода обеих сред и сравнение полученных результатов. Этот этап был критичен для оценки готовности Engee к промышленному применению, поскольку именно качество генерируемого кода определяет, можно ли его использовать в реальных изделиях без ручной переработки.
Код, сгенерированный Simulink с использованием HDL Coder, продемонстрировал классический иерархический подход к проектированию цифровых устройств. Верхний модуль чётко структурирован: он инстанцирует подкомпоненты, каждый из которых отвечает за строго определенную функцию. Несмотря на избыточность, обусловленную обилием промежуточных узлов, такой подход соответствует промышленным стандартам разработки.
Код, сгенерированный Engee, представлял собой качественно иной подход. По умолчанию код выполнен в монолитном стиле: вся логика устройства, от арифметических операций до формирования выходных флагов, сосредоточена непосредственно в теле единственного модуля, при этом имеется возможность включить генерацию комментариев, которые упрощают понимание кода. Такой код компактен, он эффективен с точки зрения объёма, он представляет собой пример быстрого прототипирования, где основной целью является получение работоспособного кода, поэтому для достижения идентичной иерархической структуры подсистемы модели были переведены в атомарный режим, что позволило получить читабельный, разбитый на модули код.
Сравнительный анализ показал, что с точки зрения структурной организации и компоновки код, сгенерированный в Engee, отличается от кода из Simulink. В том случае, если не выполнять дополнительную настройку модели в Engee, мы получаем единый модуль, но при должной настройке, код сгенерированный Engee не уступает реализации представленной в MATLAB.
Что особенно ценного обнаружили инженеры «Авроры»
В ходе работы специалисты из АО «Концерн «НПО «АВРОРА» сформулировали ряд ключевых преимуществ Engee, которые они считают решающими для дальнейшего внедрения. Прежде всего, это соответствие требованиям импортозамещения. В текущих условиях, когда использование зарубежного ПО в критической инфраструктуре сопряжено с рисками санкционных ограничений и недоступности обновлений, наличие отечественной среды моделирования с доказанной функциональностью становится стратегически важным фактором. Engee — это не просто замена Simulink, это гарантия технологического суверенитета в области проектирования встроенных систем.
Второе важное преимущество — низкий порог вхождения и совместимость. Пилотный проект подтвердил заявленную способность Engee обеспечивать удобный и быстрый перенос наработок из среды Simulink. Интуитивно понятный интерфейс, знакомая логика работы с блоками, поддержка основных форматов файлов — всё это позволило инженерам, имеющим многолетний опыт работы с MATLAB, сосредоточиться на решении прикладных задач, а не на освоении нового инструмента. Возможность импорта моделей и ко-симуляции с Simulink означает, что переход может быть эволюционным, а не революционным: существующие проекты не выбрасываются, а постепенно мигрируют, что критично для промышленных предприятий с большим портфелем наработок.
Третье преимущество, которое отметили в «Авроре», — открытость к диалогу и оперативность поддержки. В ходе работы команда столкнулась с рядом пожеланий по развитию функциональности. Мы оперативно отвечали на запросы и принимали пожелания. Это была не формальная поддержка, а живая работа над продуктом вместе с клиентом, что было оценено по заслугам.
Итоги и перспективы
По итогам проекта модели были успешно перенесены в новую среду, проведено сравнение с моделями Simulink. Сотрудники концерна ознакомились с возможностями платформы и доступным инструментарием. Сравнение показало идентичность моделей с точки зрения математического моделирования. Первый и второй этапы проекта завершены полностью: миграция модели и генерация HDL-кода показали ожидаемые результаты.
Общий вывод от АО «Концерн «НПО «АВРОРА» звучит так: “Engee представляет собой крайне перспективную и стратегически важную платформу, способную в перспективе стать полноценной заменой зарубежным аналогам. Проект показал, что продукт уже сейчас пригоден для решения прикладных задач, а главное — имеет мощный импульс к развитию благодаря открытости команды.”
Для ЦИТМ «Экспонента» этот проект стал важным промышленным кейсом в сфере ОПК. Мы получили детальную обратную связь от высококвалифицированных инженеров, работающих с критичными системами, и подтверждение того, что выбранный путь развития продукта — верный.
Материал подготовлен в соавторстве с ведущим инженером АО «Концерн «НПО «Аврора» Шалаком Н.М. и специалистами ЦИТМ «Экспонента» Гурьевым А.А., Юрьевым Ю.Ю. и Филаретовым Н.А.