В этом примере показано, как:
Моделирование аудиосистемы с фильтрами нижних и полосовых частот
Реализуйте его на плате Intel с помощью звукового эталона

Цель этого примера состоит в том, чтобы получить входной аудиосигнал через линейный вход Arrow SoC Development Kit, обработать его на FPGA и передать обработанный аудиосигнал на динамик. На приведенном выше рисунке показана высокоуровневая архитектура такой системы. Он использует аудиокодек для сопряжения с периферийными устройствами и преобразования аналоговых сигналов в цифровые и наоборот. IP-адреса аудиокодеков используются для настройки аудиокодека и передачи аудиоданных между Intel SoC и аудиокодеком. IP-адрес фильтра используется для обработки звука. Процессор ARM используется для управления типом используемого фильтра, т.е. низкочастотным или полосовым.
Для выполнения этого примера необходимо установить и настроить следующее программное и аппаратное обеспечение:
Пакет поддержки кодера HDL для устройств Intel SoC
Пакет поддержки встроенного кодера для устройств Intel SoC
Intel Quartus Prime Standard с поддерживаемой версией, указанной в документе Поддержка языка HDL и Поддерживаемые сторонние инструменты и оборудование
Комплект Intel SoC для разработчиков встраиваемых систем
Комплект для разработки Arrow SoC
Чтобы настроить комплект разработки Arrow SoC, см. раздел «Настройка оборудования и инструментов Intel SoC» в примере рабочего процесса совместного проектирования аппаратного и программного обеспечения для платформ SoC. Подключите звуковой вход мобильного или MP3 проигрывателя к разъему LINE IN, а наушники или динамики - к разъему LINE OUT на устройстве Arrow SoC, как показано ниже.

В следующей модели аудиофайл используется как вход в подсистему DUT, Audio_filter. При моделировании этой модели в Simulink обработанный аудиоэффект можно услышать через блок записи аудиоустройств, а блок анализатора спектра отображает спектрограмму отфильтрованного аудиовыхода.
modelname = 'hdlcoder_audio_filter_biquad';
open_system(modelname);

Коэффициенты фильтра могут быть сгенерированы с использованием функции matlab или в Simulink. В этой модели filterDesigner Инструмент (DSP System Toolbox) используется для генерации коэффициентов фильтра для каждого типа фильтра. Затем эти коэффициенты фильтра экспортируются и сохраняются в виде файла matlab. Эти коэффициенты будут использоваться для проектирования фильтров в Simulink. В этой модели дискретные блоки фильтров БИХ от Simulink ® используются в качестве фильтров нижних частот или полосовых фильтров Biquad в зависимости от соответствующих коэффициентов фильтра.
Эту модель можно протестировать, смоделировав модель в Simulink. Диапазон частот, отображаемых на анализаторе спектра, и аудиоэффект, слышимый через блок записи аудиоустройств, должны изменяться в зависимости от типа выбранного фильтра. Блок выбора фильтра используется для выбора типа фильтрации, выполняемой на входе звука.
Чтобы реализовать эту модель на Arrow SoC, необходимо сначала создать эталонный дизайн в Qsys, который принимает аудиосигнал на Arrow SoC и передает обработанные аудиоданные из Arrow SoC. Дополнительные сведения о том, как создать эталонную конструкцию, объединяющую модель аудиофильтра, см. в разделе Разработка эталонной конструкции аудиосистемы на примере системной платы Intel.
В эталонной конструкции аудиоданные левого и правого каналов объединяются для формирования одного канала. Они соединены таким образом, что нижние 24 бита являются левым каналом, а верхние 24 бита являются правым каналом. В модели Simulink, показанной выше, Data_in разделяется на 2 канала, т.е. соответственно левый и правый. Их величина делится на 2, и 2 канала складываются вместе, образуя один канал. Фильтрация выполняется на этом канале.
Data_in и Valid_in являются AXI4-Stream сигналами. Data_in содержит аудиоданные, подлежащие обработке, и Valid_in действует как разрешающий сигнал. Каждый фильтр отображается на СИД на стрелке SoC, чтобы визуально указать, включен или выключен фильтр.
Вход FilterSelect управляется через AXI4 интерфейс.
Затем вы можете запустить мастер рабочего процесса HDL и использовать рабочий процесс совместного проектирования аппаратного и программного обеспечения 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 из подсистемы DUT, hdlcoder_audio_filter_biquad/Audio_filter или двойным щелчком на поле Запустить помощника по рабочим процессам HDL (Launch HDL Workflow Advisor) в модели.
В задаче 1.1 выберите IP Core Generation for Target workflow и выберите Arrow SoC Development Kit для целевой платформы.

В задаче 1.2, Audio System with AXI4 Stream Interface выбран в поле Ссылочный проект (Reference Design).

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

Интерфейс AXI4-Stream осуществляет связь в режиме ведущий/ведомый, где ведущее устройство передает данные ведомому устройству. Поэтому, если порт данных является портом ввода, назначьте его интерфейсу AXI4-Stream Slave, а если порт данных является портом вывода, назначьте его интерфейсу AXI4-Stream Master.
3. Щелкните правой кнопкой мыши Задание 3.2, Создать код RTL и ядро IP и выберите Выполнить до выбранного задания, чтобы создать ядро IP. Сопоставление адресов регистров и другую документацию по IP-ядру можно найти в созданном отчете по IP-ядру.
Затем в помощнике по рабочим процессам HDL вы запускаете задачи интеграции встраиваемых систем для развертывания созданного IP-ядра HDL на платформе Intel SoC.
1. Запустите задачу 4.1 «Создание проекта». Эта задача вставляет сгенерированное ядро IP в аудиосистему с эталонным дизайном интерфейса AXI4 Stream. Как показано на первой диаграмме, эта эталонная конструкция содержит IP для обработки аудиоданных в стрелке SOC и из нее. Созданный проект представляет собой полный проект, включающий в себя часть алгоритма (сформированный IP-адрес алгоритма DUT) и часть платформы (эталонный проект). Дополнительные сведения о том, как создать эталонную конструкцию, объединяющую модель аудиофильтра, см. в разделе Разработка эталонной конструкции аудиосистемы на примере системной платы Intel.
2. Щелкните ссылку «Сгенерированный проект Altera Qsys» на панели «Результат», чтобы открыть созданный проект конструктора платформы Qsys.

3. В помощнике по рабочим процессам HDL выполните остальные задачи для создания модели интерфейса программного обеспечения, а также создайте и загрузите битовый поток FPGA. Выберите команду Download programming method (Загрузить метод программирования) в задаче Program Target Device (Целевое устройство программы), чтобы загрузить битовый поток FPGA на карту памяти SD на плате Intel, поэтому при включении и включении питания плата Intel будет автоматически перезагружена.

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

В созданной модели перейдите на панель Оборудование (Hardware), а затем откройте диалоговое окно Параметры конфигурации (Configuration Parameters), щелкнув Настройки оборудования (Hardware Settings).
Выберите Решатель и установите для параметра «Stop Time» значение «inf».
Затем в области оборудования нажмите кнопку Monitor & Tune. Embedded Coder строит модель, загружает исполняемый файл ARM на аппаратное обеспечение платы Intel, выполняет его и подключает модель к исполняемому файлу, работающему на аппаратном обеспечении платы Intel. Затем можно настроить параметры модели.
Тип используемого фильтра можно выбрать с помощью раскрывающегося списка в блоке «Выбор фильтра»

Отфильтрованный аудиовыход можно прослушать, подключив наушники или динамики к разъему LINE OUT на Arrow SoC. В зависимости от выбранного фильтра загорается соответствующий светодиодный индикатор на SoC со стрелкой. В этом примере LD0 включается при выборе параметра Пройти (фильтр не используется), LD1 включается при выборе фильтра Biquad Low pass LD2 включается при выборе фильтра Biquad Band pass.