Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.
Поздравляем с Новым Годом! Новый Год 2019 стучится в двери и мы к нему уже готовы: FPGA проект "цветомузыка" готов и можно звать гостей на дискотеку. На этих видео смотрите, как оно работает:
Вот еще такое видео записал:
Проект довольно сложный, но я рад, что он заработал. Далее, читайте немного описания и комментариев..
Поскольку я делаю новогодний проект "Цветомузыка", то мне нужны для нее цветные управляемые огни / лампы / светодиоды. Тут я вспомнил, что у нас есть светодиодная лента. Сперва нужно научиться управлять ею и я это сделал! На этом видео выше показано, как плата Марсоход3bis управляет светодиодами на ленте. Описание этого маленького отдельного проекта читайте далее.
В предыдущей статье я писал об изготовлении самодельного микрофонного шилда к плате Марсоход3bis. Для чего мне понадобилась такая плата? Мне захотелось сделать "новогодний проект" - "Цветомузыка". Я хочу сделать автономное устройство, которое будет слушать микрофоном окружающий звук, оцифровывать его с помощью АЦП в ПЛИС платы MAX10, далее фильтровать на низкие, средние и высокие частоты и светить соответственно тремя цветами: красным, зеленым и синим в такт музыки.
Конечно, я понимаю, что оцифровывать звук таким маленьким электретным микрофоном типа CZN-15E - это не очень здоровое занятие.. но хотелось получить именно автономное устройство, которое бы не зависило от проигрывателя, компьютера или еще чего..
Пожалуй самый сложный вопрос в этом проекте будет цифровой фильтр. Далее я расскажу, как собираюсь делать фильтр в FPGA MAX10 платы Марсоход3bis.
Задумал я подключить микрофон к плате Марсоход3bis. Микрофон электретный CZN-15E. Первая мысль была очень простая: нужно приобрести микрофонный модуль для Ардуино и использовать его. Я нашел и купил вот такой модуль:
Казалось, что осталось только подсоединить этот "усилитель" и дальше заниматься программированием, но не тут-то было. Этот микрофонный модуль, как оказалось, был абсолютно не предназначен для усиления аудио сигнала. По сути дела это просто пороговый детектор, который выдает импульс по хлопку или громкому звуку. Я же собирался усиленный сигнал подавать на АЦП моей платы, на FPGA MAX10, и оцифровывать этот аудио сигнал и обрабатывать его цифровыми методами, цифровыми фильтрами там и все такое. Теперь стало понятно, что все придется делать самому. Возможно придется паять какую-то платку расширения для платы Маросход3bis..
Ну раз такое дело и нужно делать свою плату - значит буду делать плату. Здесь я решил применить широко известную всем Лазерно-Утюжную Технологию. Далее расскажу, что у меня получилось.
Понадобилось мне средство создания схемы из Verilog файла. Самый понятный способ для меня - это использования самого Intel Quartus. В среде квартуса после компиляции проекта, а именно, после анализа и синтеза проекта, можно посмотреть результирующую схему устройства.
always @(posedge clk) if(rst) q <= 0; else if( ena ) begin if( q==9 ) q <= 0; else q <= q+1; end
endmodule
Квартус после синтеза покажет его в RTL Viewer вот так:
Все это очень хорошо, но мне хотелось найти средство попроще, желательно opensource и чтобы можно было бы запускать из скрипта. Самый подходящий вариант, который я нашел - это Yosis - Yosys Open SYnthesis Suite. Далее расскажу, что я знаю про него.
Подробнее...