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

В этом примере показано, как к:

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

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

Введение

В этом примере вы создаете исходный проект, который получает аудиовход от Стрелы Intel Комплект разработчика SoC, выполняет некоторую обработку на нем и передает обработанные аудиоданные из Стрелы Комплект разработчика SoC. Чтобы выполнить обработку аудиоданных на Стреле SoC, вам нужны следующие 2 протокола:

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

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

Вышеупомянутая фигура является схемой высокоуровневой архитектуры, которая показывает, как исходный проект используется IP Алгоритма фильтрации. I2S IP действует на частоте на 50 МГц, тогда как можно хотеть запустить IP Алгоритма фильтрации на более высокой частоте. Этой частотой управляют на Шаге 1.4 в HDL Workflow Advisor. В этом примере примите, что фильтр действует на уровне 50 МГц. В зависимости от типа выбранного фильтра IP Алгоритма фильтрации фильтрует область значений частот от входящих аудиоданных и раздает отфильтрованные аудиоданные. На вышеупомянутом рисунке IP Алгоритма фильтрации является нашим основным алгоритмом, который мы моделируем в Simulink. В то время как I2C и дюйм/с I2S должны быть созданы. Здесь, у вас есть 3 варианта:

  • Используйте предварительно упакованный IP, e.g., если вы существуете

  • Смоделируйте его в Simulink и сгенерируйте ядро IP использование рабочего процесса генерации ядра IP или

  • Используйте устаревший HDL-код. Чтобы создать IP из устаревшего HDL-кода, используйте модель Simulink для черного квадрата HDL-код и сгенерируйте ядро IP от него. I2C, I2S, дюйм/с PLL и Циклон V Твердых систем процессора (HPS) являются частью исходного проекта.

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

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

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

  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 Сконфигурировать Чип Аудиокодека.

1.2 Создание I2S IP

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

modelname = 'hdlcoder_I2S_ssm2603';
open_system(modelname);

Создайте испытательный стенд в модели, чтобы подражать входящим аудиоданным от кодека.

Накормите этими данными блок Subsystem, который делает операцию I2S. Проверьте выход Подсистемы на Осциллографе.

Запустите HDL Workflow Advisor с подсистемы DUT. В Задаче 1.1, сохраните те же настройки как те из IP I2C сгенерированными ранее. в Задаче 1.2, устанавливает Интерфейсы Целевой платформы как показано ниже:

Запустите Задачу 3.2 и сгенерируйте IP ядро.

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

I2C и дюйм/с I2S включены в пользовательский исходный проект. Чтобы создать пользовательский исходный проект, отошлите к использованию создания Исходного проекта Intel, раздел Куарта Прайма в Задает Пользовательский Совет и Исходный проект для Рабочего процесса Intel SoC.

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

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

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

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

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

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

  2. Left_right_select должен различать левые данные о звуковом канале и правильные данные о звуковом канале. Это находится в синхронизации с Разрядным тактовым сигналом.

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

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

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

  6. ADDR0 и ADDR1 являются Адресные биты I2C.

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

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

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

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

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

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

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

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

Для того, чтобы гарантировать, что исходный проект и интерфейсы в исходном проекте работают как ожидалось, проектируют модель Simulink, которая только отправляет аудио через IP Алгоритма, интегрируйте его с исходным проектом и протестируйте его на Стреле SoC. Необходимо смочь услышать аудио цикл назад.

modelname = 'hdlcoder_audio_pass_through';
open_system(modelname);

Интерфейсы в модели должны быть выбраны как показано ниже:

Чтобы сгенерировать ядро IP из модели и интегрировать его с исходным проектом аудиокодека, отошлите к Выполнению Аудиофильтра на Живом использовании Аудиовхода Совет Intel.