_______________
__________________
_____
_______________________
_______________________
____________________
____________________
_______________
__________________
_____
_______________________
_______________________
____________________
____________________

От модели в Engee до ПЛИС: как мы протестировали цифровые модуляции в реальной радиолинии

Главная / Проекты / От модели в Engee до ПЛИС: как мы протестировали цифровые модуляции в реальной радиолинии
Цифровая модель радиолинии
Ядро системы включает в себя: QPSK-модулятор/демодулятор, фильтры Найквиста, квадратурный модулятор, генератор данных, тестовый модуль сравнения
>1500 функциональных блоков
Реализовать полный цикл проектирования цифровой радиолинии — от алгоритмической модели в среде Engee до работающего прототипа на ПЛИС
Результаты
Задача
Использовали командное управление Engee для скриптовой генерации сложных подсистем, что исключило рутину и ошибки
Выходной продукт: автоматически сгенерированный Verilog-код, верифицированный на ПЛИС
Цель и задачи
Нашей ключевой задачей была отработка полного цикла проектирования: от математической модели и симуляции до генерации кода для FPGA (ПЛИС) — программируемой логической интегральной схемы, которая представляет собой универсальный микрочип, конфигурацию которого можно многократно менять под конкретную задачу, и проверки его на стенде. В начале мы сосредоточились на перспективных схемах модуляции, которые лягут в основу будущих систем связи.
Первый этап: строим виртуальную радиолинию
В Engee мы создали графические модели радиолиний с типами модуляции BPSK, QPSK, 8PSK и 16QAM. Все они были дополнены фильтрацией Найквиста — это стандарт для борьбы с межсимвольной интерференцией. Так выглядела наша тестовая модель:
Модель тестирования различных модуляций
Для каждой схемы мы построили и проанализировали:

  • Модуляционные созвездия — чтобы визуально оценить «качество» сигнала.
  • Графики BER (Bit Error Rate) — зависимость вероятности ошибки от отношения сигнал/шум, главную метрику любой системы связи.
  • Спектральные характеристики — чтобы понять, как сигнал ведёт себя в частотной области.
График спектра для всех модуляций
BER для модуляций и сопоставление его с теоретическими значениями
Результаты симуляций идеально совпали с теорией, что подтвердило корректность наших моделей. Касаемо BPSK, BER равен QPSK, небольшие отклонения от теории возможны и естественны. Проанализировав данные, для дальнейшей реализации мы выбрали QPSK как оптимальный баланс между помехоустойчивостью и спектральной эффективностью. Наша итоговая модель для генерации кода включала:

  • Генератор данных.
  • QPSK-модулятор.
  • Фильтр Найквиста на передаче.
  • Модель канала связи (с шумом).
  • Фильтр Найквиста на приёме.
  • QPSK-демодулятор.
  • Счётчик ошибок (BER).

Особенностью системной модели стала техника синхронизации: мы реализовали алгоритм выбора оптимального момента дискретизации с помощью параметра Select_index (от 1 до 8), когда частота дискретизации в 8 раз выше тактовой.
Системная модель проекта
Спектр сигнала для модели радиолинии с модуляцией QPSK
Генерируем Verilog-код из графической модели
Следующим шагом была трансформация проверенной системной модели в модель, готовую к генерации аппаратного кода. Мы перешли к вычислениям с фиксированной точкой, что критично для реализации на ПЛИС, после чего финальная модель была расширена за счёт блока квадратурной модуляции, данный блок был необходим нам для тестирования итого проекта на ПЛИС.

Здесь нам очень пригодились возможности Engee по автоматизации:

  • Генерация кода из базовых блоков — мы не писали код вручную, а использовали готовые примитивы.
  • Пользовательские шаблоны — для кастомизации выходного кода под наши нужды.
  • Командное управление — это позволило автоматически создавать длинные цепочки однотипных операций.

Яркий пример — реализация КИХ-фильтра Найквиста. Вместо ручного рисования 80 однотипных звеньев, мы сгенерировали его автоматически, задав рассчитанные коэффициенты. Это не только сэкономило время, но и исключило человеческие ошибки.
Сравнение системной модели и модели под генерацию кода
Итоговая модель под генерацию кода
Детальное сравнение поведения системной модели с плавающей точкой и модели для генерации кода с фиксированной точкой подтвердило их полную идентичность. Использование сигналов валидности в кодовой модели помогло избежать накопления данных, что сделало её выход даже «чище».
Тестирование и верификация
Прежде чем заливать код на ПЛИС, мы устроили нашей модели настоящий «стресс-тест». Использовали несколько методов верификации:

1. Прямое моделирование в Engee. Самый быстрый способ проверить функциональность.
2. Симуляция сгенерированного Verilog-кода. Проверяем, что код ведёт себя так же, как модель.
3. Использование Verilator. Этот инструмент создаёт из нашего Verilog-кода C-функцию, которую можно напрямую сравнить с исходной моделью Engee. Это мощный метод, не требующий написания дополнительных тестовых окружений.

Результаты тестов были безупречны:

  • Битовая ошибка (BER) равна нулю при отсутствии шума в канале (см. график ошибок и валидности).
  • Фильтры Найквиста идеально отработали одиночный импульс, их характеристики полностью соответствовали теории («корень из приподнятого косинуса»).
  • Квадратурный модулятор блестяще справился с переносом спектра с нулевой частоты на несущую.
Битовая ошибка
Данные на выходе модулятора и фильтров
Тестирование фильтров Найквиста
Тестирование квадратурной модуляции
Спектры сигналов на выходах блоков
Запуск на реальной ПЛИС
Финальный и самый волнительный этап — аппаратная реализация. Мы развернули нашу радиолинию на оценочной плате Cyclone II DSP Development Board (Altera EP2C70F672 FPGA). Сгенерированный в Engee Verilog-код был без замечаний скомпилирован в Quartus II, и конфигурационный файл был загружен в ПЗУ платы. И вот он, результат — осциллографы и анализаторы спектра показали, что наша система работает именно так, как и было задумано!

Выбор оборудования связан с его доступностью на стороне клиента и с нашим желанием в сжатые сроки убедиться в возможности реализации подобных задач в среде проектирования Engee.
Исходная битовая последовательность и квадратурные огибающие QPSK сигнала (Предоставлено коллегами из Корпорации Комета)
Исходная битовая последовательность и сформированный QPSK сигнал на радиочастоте (Предоставлено коллегами из Корпорации Комета)
Энергетический спектр QPSK сигнала (Предоставлено коллегами из Корпорации Комета)
Мы увидели четкие сигналы и правильные спектры. Теория, симуляция и «железо» сошлись в одной точке.
Итоги и выводы: на что способна связка «Engee + ваша команда»?
В качестве финального акта мы подвели итоги, оценив успех проекта по четырем ключевым критериям. Результаты говорят сами за себя.

Во-первых, среда блестяще справилась с реализацией функциональных узлов через графический интерфейс. Мы не только использовали готовые библиотечные элементы, но и с помощью Julia и C создали свои собственные компоненты — фильтры, модуляторы, генераторы сигналов, — которые затем были верифицированы и использованы для генерации кода для ПЛИС.

Во-вторых, была полностью подтверждена возможность всестороннего тестирования. Ключевым индикатором служила битовая ошибка (BER). Наши тесты показали как полное совпадение с теоретическими кривыми BER в условиях шума, так и нулевую ошибку на идеальном канале. Дополнительным плюсом стала встроенная отладка и две независимые методики верификации сгенерированного Verilog-кода.

Наконец, быстродействие моделирования оказалось на высоком уровне. Даже самая сложная модель проекта, содержащая свыше 1000 блоков, была промоделирована всего за 20 секунд, что подтверждает практическую пригодность инструмента для итеративной разработки.
Время выполнения модели
По результатам проекта среда проектирования Engee продемонстрировала полную готовность к решению промышленных задач. Нам удалось пройти весь цикл:

  • От модельно-ориентированного проектирования и тестирования различных схем модуляции.
  • Через создание комплексной системы связи с синхронизацией.
  • До генерации верифицированного Verilog-кода и его успешного запуска на ПЛИС.

Главный вывод: Engee — это не прототип, а зрелый инструмент, который значительно ускоряет разработку сложных систем связи и ЦОС, позволяя инженерам сосредоточиться на алгоритмах, а не на рутинном кодировании. Полученные результаты позволяют с уверенностью рекомендовать его для использования в реальных проектах.
У меня есть вопрос о проекте

Другие проекты

Смотреть все
ЦНИИ «Судового машиностроения» оценил потенциал Engee для импортонезависимого моделирования
Применение Engee для определения уровня топлива: точность, надежность и перспективы
Engee для моделирования складской техники: опыт ПАО «МЗИК»
ГосНИИАС применил ПО Engee в разработке критически важной логики бортовых индикаторов
Все актуальные проекты мы публикуем на Хабре и в Telegram-канале