19.08.2016, 15:37:31
Войти Зарегистрироваться
Авторизация на сайте

Ваш логин:

Ваш пароль:

Забыли пароль?

Навигация
Новости
Архив новостей
Реклама
Календарь событий
Right Left

Высокопроизводительный генератор сигналов на базе FPGA с использованием XEM7320, FrontPanel и SYZYGY DAC

  1. кредит
  2. Дополнительные ресурсы

Способность работать с аналоговыми сигналами имеет решающее значение для многих систем на основе ПЛИС, ведь в мире аналоговые. В зависимости от применения решение FPGA может потребоваться для приема, обработки или генерации аналоговых сигналов. Примеры приложений варьируются от генерации простых линейных изменений для широтно-импульсной модуляции (ШИМ) до генерации опорных сигналов (например, синусоидальной, треугольной, пилообразной и т. Д.) До более сложной передачи и приема информации с использованием схем модуляции. Способность работать с аналоговыми сигналами имеет решающее значение для многих систем на основе ПЛИС, ведь в мире аналоговые

Опал Kelly XEM7320 показан с присоединенными PMOD SZG-DAC9116, SZG-PMOD4 и I2S2 ADC.

Конечно, чтобы взаимодействовать с нашим аналоговым миром, мы должны иметь возможность конвертировать между аналоговым и цифровым доменами. Самый популярный способ сделать это для решений FPGA - это использование дискретных устройств АЦП и ЦАП. Когда мы работаем с модулями интеграции на основе Opal Kelly FPGA, сизигия Открытый стандарт позволяет легко добавлять модули АЦП и ЦАП с эффективным подсчетом выводов и низкой стоимостью.

Чтобы продемонстрировать, как мы можем легко работать с модулями интеграции Opal Kelly в аналоговой области, давайте рассмотрим пример, который объединяет XEM7320 SYZYGY перевозчик , SZG-DAC-AD9116 а также Передняя панель , Этот пример позволит пользователю управлять XEM7320 с помощью подключенного ЦАПа SYZYGY для вывода аналоговых сигналов, которые либо не имеют модуляции, либо модулируются с использованием AM, FM или обоих. Эти аналоговые сигналы могут быть загружены в формате WAV с хост-ПК на целевое устройство с помощью FrontPanel или записаны с Digilent I2S2 Pmod, подключенного через периферию SZG-PMOD4.

Для тех, кто не знаком с ним, FrontPanel предоставляет комплект для разработки программного обеспечения и API в сочетании с небольшими блоками HDL IP. Эта комбинация облегчает высокоскоростную связь по USB с целевой FPGA.

Блок-схема FrontPanel SDK

Амплитудная и частотная модуляция (AM и FM) являются двумя простейшими схемами модуляции, изменяющими амплитуду или частоту сигнала несущей в зависимости от входного сигнала.

Генерация этих схем модуляции и многих более сложных схем в цифровой форме - вот где FPGA действительно вступают в свои права. Цифровая модуляция устраняет температурный дрейф и влияние старения, а также дает возможность легко изменять конструкцию при необходимости. Когда мы генерируем модуляцию внутри в наших конструкциях FPGA, мы называем это прямым цифровым синтезом (DDS).

В основе многих схем модуляции лежит алгоритм CORDIC (Coordinate Rotation DIgital Computer), изобретенный в 1959 году Джеком Волдером. Алгоритм CORDIC - это тот, который должен быть знаком каждому инженеру ПЛИС, он позволяет не только генерировать значения синусов и косинусов, но также имеет линейные и гиперболические расширения для вычисления ряда математических функций, включая умножение и деление.

Операции CORDIC

Алгоритм CORDIC и DDS образуют сердце этого примера, так как архитектура верхнего уровня проекта примера

  • Интерфейс передней панели - обменивается данными с ПК по USB и получает информацию о конфигурации. Этот интерфейс также может получать аудиосэмплы с ПК.
  • Интерфейс I2S - обменивается данными с PMOD Digilent I2S2 для сбора аудиосэмплов с аудио-АЦП.
  • FIFO - буфер для полученного сигнала.
  • DAC– Этот модуль реализует модуляцию DDS, а также взаимодействует с ЦАПом SYZYGY.

Именно в файле Verilog syzygy_dac_top.v функции прямого цифрового синтеза и модуляции реализованы на основе CORIDC, предоставленного из библиотеки Xilinx IP. Выход CORDIC затем модулируется входным сигналом в зависимости от режима модуляции.

Когда AM-модуляция включена через FrontPanel, выход CORDIC модулируется с помощью входного сигнала путем умножения этих двух значений вместе с помощью умножителя. Генерация выхода FM немного сложнее, здесь входной сигнал используется для модуляции частоты выхода CORDIC. Это реализуется путем изменения ввода дельта-счета в CORDIC. Архитектура модуля ЦАП представлена ​​ниже.

Блок-схема генератора сигналов

Когда этот пример запускается на целевом оборудовании, желаемая схема модуляции может быть сгенерирована под управлением FrontPanel.

Снимок экрана с помощью программного обеспечения Signal Hound Spike с BB60C, измеряющим выходной сигнал генератора сигналов. Сигнал состоит из несущей с частотной модуляцией. (Бонус указывает любому, кто может правильно сказать нам, какая песня модулируется здесь.) Снимок экрана с помощью программного обеспечения Signal Hound Spike с BB60C, измеряющим выходной сигнал генератора сигналов Снимок экрана с помощью программного обеспечения Signal Hound Spike с BB60C, измеряющим выходной сигнал генератора сигналов. AM и FM оба включены.

AM и FM оба включены

Снимок экрана с помощью программного обеспечения Signal Hound Spike с BB60C, измеряющим выходной сигнал генератора сигналов. FM включен, модулируется синусоидой входа.

Снимок экрана с помощью программного обеспечения Signal Hound Spike с BB60C, измеряющим выходной сигнал генератора сигналов. FM включен, модулируется синусоидой входа.

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

кредит

Генератор сигналов здесь был создан в июне 2018 года нашим потрясающим летним стажером Армином. Спасибо, что присоединились к нам этим летом!

Дополнительные ресурсы

Исходный код для примера находится в нашем GitHub репозиторий с открытым исходным кодом ,

Сайт SYZYGY: http://syzygyfpga.io/

XEM7320 Документация: https://docs.opalkelly.com/display/XEM7320/XEM7320

Документация по периферии SYZYGY: https://docs.opalkelly.com/display/SZGPODS/SYZYGY+Peripherals