Запуск аудиофильтра на Live Audio Input с помощью платы Intel

В этом примере мы иллюстрируем, как:

  1. Моделируйте аудиосистему с Low pass и Band pass фильтрами

  2. Реализуйте его на системной плате Intel с помощью аудио исходного проекта

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

Прежде чем вы начнете

Чтобы запустить этот пример, вы должны установить и настроить следующее программное и оборудование:

Для настройки комплекта для разработки Arrow SoC см. раздел «Настройка оборудования и инструментов Intel SoC» в рабочем процессе «Совместное проектирование аппаратного и программного обеспечения для платформ SoC». Подключите аудиовход от мобильного или MP3 проигрывателя к разъему LINE IN и наушникам или динамикам к разъему LINE OUT на SoC Arrow, как показано ниже.

Введение

В следующей модели аудио файла используется как вход в подсистему DUT, Audio_filter. При симуляции этой модели в Simulink обработанный аудиоэффект можно услышать через блок Audio Device Writer, и блок Spectrum Analyzer отображает спектрограмму отфильтрованного аудиовыхода.

modelname = 'hdlcoder_audio_filter_biquad';
open_system(modelname);

Моделируйте систему с низкочастотными и полосными фильтрами

Коэффициенты фильтра могут быть сгенерированы с помощью функции matlab или в Simulink. В этой модели filterDesigner (DSP System Toolbox) используется для генерации коэффициентов фильтра для каждого типа фильтра. Затем эти коэффициенты фильтра экспортируются и сохраняются как файл matlab. Эти коэффициенты будут использоваться для разработки фильтров в Simulink. В этой модели дискретные блоки БИХ из Simulink ® используются как биквадовские фильтры нижних частот или полосы пропускания в зависимости от соответствующих коэффициентов фильтра.

Можно протестировать эту модель, симулируя модель в Simulink. Области значений частот, наблюдаемых на анализаторе спектра, и аудио эффекта, услышанное через блок Аудио устройства Средства записи, должны варьироваться в зависимости от типа выбранного фильтра. Блок Filter Select используется для выбора типа фильтрации, которая должна выполняться при входе.

Настройте модель для комплекта разработки Arrow SoC

В порядок реализации этой модели на Стрелу SoC необходимо сначала создать исходный проект в Qsys, который получает аудио входа на Стрелу SoC и передает обработанный аудио данные из Стрелы SoC. Для получения дополнительной информации о том, как создать исходный проект, интегрирующее модель аудиофильтра, см. пример разработки Исходного проекта для аудиосистем на системной плате Intel.

В исходном проекте, левом и правом каналах аудио данных объединяются для формирования одного канала. Они объединены таким образом, что нижние 24 бита являются левым каналом, а верхние 24 бита являются правым каналом. В модели Simulink, показанной выше, Data_in разделяется на 2 канала, т.е. слева и справа соответственно. Их величина делится на 2, и 2 канала складываются вместе, чтобы сформировать один канал. Фильтрация выполняется на этом канале.

Data_in и Valid_in являются AXI4-Stream сигналами. Data_in содержит аудио данных, которое должно обрабатываться, и Valid_in действует как разрешающий сигнал. Каждый фильтр преобразуется в светодиодный индикатор со стрелой SC, чтобы визуально указать, включен или выключен фильтр.

FilterSelect входа управляется через AXI4 интерфейс.

Сгенерируйте IP-ядро HDL с AXI4-Stream интерфейсом

Затем можно запустить HDL Workflow Advisor и использовать рабочий процесс совместного проектирования аппаратного ПО Intel ® для развертывания этого проекта на оборудовании Intel. Для получения более подробной информации о пошаговом руководстве см. пример «Начало работы с устройствами Intel ® SoC».

1. Настройте путь инструмента синтеза Intel Quartus с помощью следующей команды в командном окне MATLAB. Используйте собственный путь установки Intel Quartus при запуске команды. Для примера:

hdlsetuptoolpath('ToolName', 'Altera Quartus II', 'ToolPath', 'C:\intelFPGA\18.1\quartus\bin64\quartus.exe');

2. Добавьте папку IP-репозитория и файл регистрации Arrow SoC Development Kit в путь MATLAB с помощью следующих команд:

addpath(fullfile(matlabroot,'toolbox','hdlcoder','hdlcoderdemos','customboards','ipcore'));
addpath(fullfile(matlabroot,'toolbox','hdlcoder','hdlcoderdemos','customboards','ArrowSoC'));

3. Запустите HDL Workflow Advisor из подсистемы DUT, hdlcoder_audio_filter_biquad/Audio_filter или двойным щелчком по полю Launch HDL Workflow Advisor в модели.

В Задаче 1.1 выберите рабочий процесс Генерация ядра IP для целевого объекта и выберите Arrow SoC Development Kit для целевой платформы.

В задаче 1.2, Audio System with AXI4 Stream Interface выбран для Исходного проекта.

Интерфейс AXI4-Stream используется для передачи аудио данных между исходным проектом и алгоритмом фильтрации IP. Интерфейс AXI4-Stream содержит данные (Data) и сигналы управления, такие как действительные данные (Valid), обратные давления (Ready) и контура данных (TLAST). Для генерации данных IP требуются по крайней мере сигналы Data AXI4-Stream и Valid. В Задаче 1.3 таблица интерфейсов целевой платформы загружается как показано на следующем рисунке. Порты потока аудиоданных, Valid_in, Data_in, Valid_out и Data_out, нанесены на карту к интерфейсам AXI4-потока, Pass_through_LED, BiQuad_LPF_LED, BiQuad_BPF_LED нанесены на карту к светодиодам на Стреле SoC и порт параметра контроля, Filter_select нанесен на карту к интерфейсу AXI4.

Интерфейс AXI4-Stream сообщается в главном/ведомом режиме, где ведущее устройство отправляет данные в ведомое устройство. Поэтому, если порт данных является входом портом, присвойте его интерфейсу AXI4-Stream Slave, а если порт данных является выходом портом, присвойте его главному интерфейсу AXI4-Stream.

3. Щелкните правой кнопкой мыши Задачу 3.2, Сгенерируйте код RTL и IP Core и выберите Выполнить до выбранной задачи, чтобы сгенерировать ядро IP. В сгенерированном отчете IP Core Report можно найти отображение адресов регистров и другую документацию для ядра IP.

Интеграция IP-адресов с AXI4-Stream Audio Compatible Исходный Проект

Далее, в HDL Workflow Advisor, вы запускаете задачи интегрирования встраиваемых систем, чтобы развернуть сгенерированное IP-ядро HDL на СОС Intel.

1. Запуск задачи 4.1, создание проекта. Эта задача вставляет сгенерированное IP-ядро в аудиосистему с AXI4 Stream Interface исходного проекта. Как показано на первой схеме, этот исходный проект содержит IP для обработки аудио данных в и вне Стрелы SOC. Сгенерированный проект является полным проектом, включая часть алгоритма (сгенерированный алгоритм DUT IP) и часть платформы ( исходного проекта). Для получения дополнительной информации о том, как создать исходный проект, интегрирующее модель аудиофильтра, см. пример разработки Исходного проекта для аудиосистем на системной плате Intel.

2. Щелкните ссылку «Сгенерированный проект Altera Qsys» на панели результатов, чтобы открыть сгенерированный проект Qsys дизайнера платформ.

3. В HDL Workflow Advisor запустите остальные задачи, чтобы сгенерировать модель интерфейса программного обеспечения, и создайте и загрузите битовый поток FPGA. Выберите метод программирования загрузки в задаче Целевое устройство программы, чтобы загрузить поток битов FPGA на карту SD на плате Intel, поэтому ваш проект будет автоматически перезагружен при включении питания платы Intel.

Сгенерируйте исполняемый файл ARM для настройки параметров на FPGA Fabric

Модель интерфейса программного обеспечения сгенерирована в Задаче 4.2, Generate Software Interface Model.

1. Прежде чем вы сгенерируете код из модели интерфейса программного обеспечения, закомментируйте источник аудио входа и приемник аудио выхода то есть из мультимедийного файла, преобразования типа данных, буфера, Аудио устройства Средства записи и блоков анализатора спектра. Эти блоки не нужно запускать на процессоре ARM. IP-адрес Audio_filter работает как * Filtering_Algorithm "на фабрике FPGA. Процессор ARM использует AXI4 интерфейс для выбора типа фильтра, например, Biquad Low pass, полоса или Pass Through.

  1. В сгенерированной модели перейдите на панель Hardware, а затем откройте диалоговое окно Параметры Конфигурации, нажав на Hardware Settings.

  1. Выберите решатель и установите «Stop Time» на «inf».

  2. Затем на панели « Оборудовании» нажмите кнопку «Нажатие кнопки и настройка». Embedded Coder создает модель, загружает исполняемый файл ARM на оборудование системной платы Intel, выполняет его и соединяет модель с исполняемым файлом, работающим на оборудовании системной платы Intel. Затем можно настроить параметры модели.

Тип фильтра, который будет использоваться, может быть выбран с помощью раскрывающихся опций в блоке Filter Select

Отфильтрованные аудио выходы можно услышать, подключив наушники или динамики, чтобы ЛИНИЯ разъем OUT на Стрелу SoC. В зависимости от выбранного фильтра включается соответствующий светодиодный индикатор на стрела. В этом примере LD0 включается, когда выбрана опция Pass through (No filter used), LD1 включается, когда выбран фильтр Biquad Low pass, LD2 включается, когда выбран фильтр Biquad Band pass.