${message}

${message}

В статье описано решение задачи по разработке С и HDL кода под Zynq-7000 и пакета поддержки аппаратуры (драйвера устройств). Результатом стала системная модель, которая позволила проработать различные архитектуры и выбрать вариант с меньшим количеством компонентов под заданные требования (амплитудный детектор реализован в цифровом виде).

kbradar.png

Подсистема разведки — это высокочастотное широкополосное радиоустройство. Ограниченные сроки проекта, связанные с датами сдачи его заказчику, глубокое взаимодействие модулей, реализованных на HDL и С, высокочастотная аппаратная обработка сигнала в ПЛИС стали основными трудностями при реализации проекта. Модельно-ориентированное проектирование и консультации инженеров MathWorks позволили выполнить и сдать проект в срок, а за счет проработки архитектуры на системных моделях — улучшить технические характеристики системы.

Консультации инженеров MathWorks

Проект начался за полгода до обращения в MathWorks, когда, используя классический подход к разработке, уже реализовали одну из двух подсистем. Поскольку было критично сдать проект в установленные сроки, решили подстраховать основную ветвь разработки, инициировав совместный пилотный проект по методике модельно-ориентированного проектирования с использованием генерации кода из моделей Simulink. Так как проект выполнялся в тесном сотрудничестве с MathWorks, удалось сразу применить все преимущества модельно-ориентированного проектирования и наиболее эффективно использовать инструменты MathWorks. Результаты пилотного проекта стали основной ветвью разработки, а время разработки по сравнению с классическим подходом сократилось вдвое.

Проработка архитектуры на системных моделях

Применяя системную модель, включающую в себя как РЧ блоки, так и блоки ЦОС, улучшили архитектуру подсистемы разведки. Изначально здесь предполагалось использовать синфазный канал для амплитудного детектирования (отдельная микросхема), а квадратурный канал — для цифровой обработки сигнала. Системная модель показала, что совместное использование каналов для амплитудного детектирования и цифровой обработки сигнала даст прирост в отношении сигнал/шум в 2дБ, а замена отдельной микросхемы амплитудного детектора с передачей её функций блоку ЦОС позволит исключить её из схемы — это повысит надежность системы и сократит количество компонентов.

Разработка подсистем на HDL и C для Zynq-7000

Широкополосный сигнал обрабатывался на ПЛИС с частотой 125 МГц. Чтобы обеспечить такую пропускную способность, на ПЛИС применили конвейеризацию алгоритмов средствами инструмента HDL Coder. Сгенерированный код алгоритма автоматизировано оборачивался интерфейсами AXI и AXI-Stream, что позволило легко встроить их в общий проект, выполненный в Xilinx Vivado. Сгенерированный HDL код «до такта» и «до бита» соответствует модели, поэтому весь алгоритм отлаживался на моделях с отладкой взаимодействия между модулем, реализованным на языке C. Это значительно упростило процесс, поскольку исключило отладку на уровне HDL кода. Модуль, реализованный на С, получили с помощью генератора кода Embedded Coder, который расширили блоками драйверами к периферии Zynq. Взаимодействие между подсистемами ПЛИС и ARM реализовали по интерфейсу AXI-Stream через модуль DMA, поддержка драйвера которого есть в Embedded Coder.

Резюме.

Задачи:

  1. Разработка системной модели.
  2. Разработка С и HDL кода под Zynq-7000.
  3. Разработка пакета поддержки аппаратуры (драйвера устройств).

Результаты:

  1. Системная модель позволила проработать различные архитектуры и выбрать вариант с меньшим количеством компонентов под заданные требования (амплитудный детектор реализован в цифровом виде).
  2. Отладка алгоритмов на модели с последующим однозначным переносом на аппаратуру.
  3. Разработка драйверов под периферию Zynq-7000.

Задать вопрос

*
Настоящим в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» от 27.07.2006, отправляя данную форму, вы подтверждаете свое согласие на обработку персональных данных . Мы, ООО ЦИТМ "Экспонента" и аффилированные к нему лица, гарантируем конфиденциальность получаемой нами информации. Обработка персональных данных осуществляется в целях эффективного исполнения заказов, договоров и пр. в соответствии с «Политикой конфиденциальности персональных данных». * - обязательные поля