FPGA chips

Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика  FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.


Вот только что был у нас проект - подключение модуля Bluetooth к плате Марсоход. И плата Марсоход и модуль Bluetooth были установлены на машинке. Такая машинка ездила под управлением Scratch программы работающей на компьютере.

Сегодня мне пришла в голову мысль: "А почему бы не использовать сотовый телефон с Bluetooth, как пульт управления к машинке?"

Ну так вот, сделал:

Мы уже делали разные автономные машинки, которые ездят вдоль полосы, выбираются из лабиринта. Делали мы и машинки управляемые с IR пульта от телевизора (смотрите здесь и здесь).

Bluetooth и плата Марсоход

Теперь будем делать "радиоуправление", а точнее управление через Bluetooth. В конечном счете цель такая - на компьютере с Bluetooth запускаем среду программирования для детей Scratch. Устанавливаем связь через Bluetooth между компьютером и машинкой. Тогда пишем программу на Scratch, которая управляет машинкой.

Очень часто бывает довольно трудно разобраться как работает тот или иной модуль. Можно часами рассматривать принципиальную схему устройства или его описание на языке Verilog и ничего не понимать в ней. Пожалуй самый правильный способ разобраться - симуляция проекта или отдельных его модулей. Я уже как-то писал на эту тему здесь и здесь.

Сейчас попробуем еще что нибудь посимулировать.
Я предлагаю взять для наших экспериментов модуль приемника USB из последнего моего USB проекта и просимулировать его. USB - это довольно важная тема для меня.

Для того, что бы просимулировать наш модуль USB приемника нужно написать еще одну программу - тестбенч (testbench). Написание тестбенча ни чем не легче описания самого устройства - это в общем такое же программирование. При написании тестбенча программист так же может совершать ошибки. К сожалению цена этих ошибок может быть высока. Если симуляция произведена не очень тщательно, не правильно, то устройство в реальной жизни может не работать или работать не правильно. Хорошо если проект предназначен для программируемых микросхем ПЛИС (CPLD). Тогда не работающее устройство можно просто перешить. А вот если проект - это заказная микросхема типа ASIC (Application Specific Integrated Circuit), то после того, как микросхема выпущена в кремнии в ней изменить уже ничего нельзя. Цена ошибки - миллион долларов Wink Ну мы таких микросхем не делаем, поэтому нам бояться нечего. Мы программируем простую плату Марсоход.

Еще раз о том, что такое тестбенч.

Что такое тестбенч (testbench)?


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