Авторская разработка исходного проекта для аудиосистемы в Совете ZYBO

В этом примере показано, как создать исходный проект, чтобы запустить аудио алгоритм и аудиовход доступа и выход на плате ZYBO.

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

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

  • Пакет поддержки HDL Coder для платформы Xilinx Zynq

  • Пакет поддержки Embedded Coder для платформы Xilinx Zynq

  • Xilinx Vivado 2017.4

  • Макетная плата Digilent® Zybo Zynq™ со вспомогательным набор

Чтобы установить плату ZYBO, отошлите к разделу "Set up the Zybo board" в Задавании и Регистре Пользовательский Совет и Исходный проект для статьи Zynq Workflow.

Введение

В этом примере вы создадите исходный проект, который получает аудиовход от платы ZYBO, выполняет некоторую обработку на нем и передает обработанные аудиоданные из платы ZYBO. Вы также генерируете ядра IP для периферийных интерфейсов с помощью HDL Workflow Advisor.

Чтобы выполнить обработку аудиоданных на плате ZYBO, после 2 протоколов необходимы:

  1. I2C, чтобы сконфигурировать чип аудиокодека SSM2603 на плате ZYBO.

  2. I2S, чтобы передать оцифрованные аудиоданные потоком между чипом кодека и zynq матрицей.

Вышеупомянутая фигура является схемой высокоуровневой архитектуры, которая показывает, как исходный проект используется IP Алгоритма фильтрации на плате ZYBO. Этот пример похож на исходный проект аудиосистемы для Zedboard за исключением того, что плата ZYBO использует чип аудиокодека SSM2603, где, когда Zedboard использует чип аудиокодека ADAU1761. Отдых рабочих параметров - то же самое как исходный проект Аудиосистемы для Zedboard. Для получения дополнительной информации обратитесь к Авторской разработке исходного проекта для аудиосистемы на примере платы Zynq.

Следующие шаги используются, чтобы создать исходный проект, описанный выше:

  1. Сгенерируйте Ядра IP для периферийных интерфейсов

  2. Создайте пользовательский исходный проект аудиокодека в Vivado

  3. Создайте файл определения исходного проекта

  4. Проверьте исходный проект

1. Сгенерируйте Ядра IP для периферийных интерфейсов с помощью HDL Workflow Advisor

В этом примере,

  1. IP I2C разрабатывается с помощью stateflow блоки & устаревший код VHDL для буфера с тремя состояниями.

  2. I2S IP разрабатывается путем моделирования его в Simulink.

1.1 Создание IP I2C

Для создания IP I2C, чтобы сконфигурировать Аудиокодек SSM2603, пошлите к Генерации Ядра IP Контроллера I2C IP Сконфигурировать статью Audio Codec Chip.

1.2 Создание I2S IP

Спроектируйте модель в Simulink с функцией MATLAB, которая реализует протокол I2S.

modelname = 'hdlcoder_I2S_ssm2603';
open_system(modelname);

Тестирование и шаги генерации ядра IP - то же самое как модель Zedboard I2S. Поскольку генерация I2S IP обратитесь к Авторской разработке исходного проекта для аудиосистемы на примере платы Zynq.

2. Создайте пользовательский исходный проект аудиокодека в Vivado

I2C, I2S и дюйм/с FIFO включены в пользовательский исходный проект. Чтобы создать пользовательский исходный проект, отошлите к разделу "Create and export a custom reference design using Xilinx Vivado" в Задавании и Регистре Пользовательский Совет и Исходный проект для примера Рабочего процесса Zynq.

Ключевые пункты, которые будут отмечены при создании этого пользовательского исходного проекта:

  1. Мы должны изучить теорию работы чипа аудиокодека на плате ZYBO.

  2. FIFOs установлены в значения по умолчанию для своей настройки.

  3. Для ядер IP, сгенерированных с помощью HDL Workflow Advisor, IPCORE_CLK и AXI4_Lite_ACLK должны быть соединены с тем же источником часов.

  4. При проверке блочной конструкции в Vivado не должно быть никаких критических предупреждений за исключением неподключенных портов.

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

Следующие сигналы, запущенные между исходным проектом на Zynq Soc и аудиокодеком на плате ZYBO:

  1. Bit_clock является продуктом частоты дискретизации, количеством битов на канал и количеством каналов. Это управляется аудиокодеком в привилегированном режиме. В этом примере Частота дискретизации составляет 48 кГц, Никакие из каналов не равняются 2, Количество битов на канал равняется 24.

  2. Serial_data_in является аналого-цифровыми конвертированными аудиоданными от кодека.

  3. Serial_data_out является данными о цифровом аудио, собирающимися в кодек быть преобразованными в аналоговую форму.

  4. I2C_CLK и I2C_DATA являются стандартными сигналами I2C

  5. MUTEN является Аппаратным бесшумным контактом, соединенным с аудиокодеком SSM2603.

  6. MCLK является сигналом часов на 12.288 МГц, требуемым кодеком.

Пользовательский исходный проект аудиокодека, созданный для этого примера, показывают ниже:

3. Создайте файл определения исходного проекта

Следующий код описывает содержимое файла определения исходного проекта платы ZYBO plugin_rd.m для вышеупомянутого исходного проекта. Для получения дополнительной информации о том, как задать и указать пользовательскую плату, относится, чтобы Задать и Указать Пользовательский Совет и Исходный проект для примера Рабочего процесса Zynq.

Перейдите к папке ZYBO с помощью следующей команды:

cd ([matlabroot '/toolbox/hdlcoder/hdlcoderdemos/customboards/ZYBO']);

Все файлы, которые требуются для исходного проекта, такого как файлы ядра IP, файлы XDC, plugin_rd файл и т.д., должны быть добавлены к пути MATLAB в папке ZYBO с помощью иерархии, показанной ниже. Сгенерированные файлы ядра IP пользователя должны быть в +vivado папке. plugin_rd.m, tcl файлы и xdc файлы должен быть в +vivado_audio_filter_2017_2 папке.

4. Проверьте исходный проект

Чтобы проверить исходный проект, сгенерировать ядро IP Аудиофильтра из модели и интегрировать его с исходным проектом аудиокодека, относятся к Выполнению аудиофильтра на живом аудиовходе с помощью примера платы Zynq.