Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.
Вероятно, вы обратили внимание, что внешний вид нашего сайта значительно изменился.
Сайт подвергся глубокой модернизации: были обновлены многие компоненты и плагины системы, установлена, более свежая версия PHP. Был значительно модернизирован шаблон. Мы надеемся, что новая версия сайта будет стабильной и некоторые проблемы безопасности будут устранены.
Самое главное - с новым интерфейсом просмотр страниц сайта на мобильных устройствах, смартфонах и планшетах становится более удобным.
Если вы обнаружите какие-то проблемы с сайтом, просьба оставить комментарии к этому посту или написать на почту Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Компания Intel уже довольно давно выпустила очередную версию САПР Quartus Prime, но вот наконец дошли руки попробовать. Я скачал Quartus Prime Lite Edition версии 19.1 для WIndows и для Linux. Инструкция для скачивания есть здесь. Пробовать я буду соответственно в Windows 10 Professional и в Ubuntu Desktop 18. Надо сказать, что 19.1 - даже на сегодняшний день не самая последняя версия. Точнее говоря, для Lite Edition - это последняя, но вот для версии Quartus Prime Pro Edition последняя версия уже сейчас 19.4. Ну, что же, для моих несложных проектов всегда хватало и бесплатной Lite Edition.
В Release Notes описаны изменения в программном обеспечении для новой версии. Из основного:
в проектах VHDL возможно придется модивицировать пути к модулям удаляя ведущий слэш "/" в файле QSF;
при использовании NIOS придется отдельно вручную ставить Eclipse IDE для NIOS;
удалена поддержка WIndows 7,
удалена поддержка некоторых IP ядер для некоторых семейств микросхем, например, удалены IP DDR/DDR2 для Cyclone IV.
Отдельно говорится о том, что теперь Quartus Prime будет использовать подсистему WSL (Windows Subsystem for Linux), и якобы это должно дать прирост в производительности. Честно говоря не очень понятно для каких версий квартуса это будет работать. Я поставил Lite Edition и не ставил никаких WSL. Все работает, как и работало раньше. Возможно это все будет только для версий Standard или Pro.
Кроме этого, упомянуто, что в новой версии Quartus сделаны security updates, ну вероятно закрыты какие-то проблемы с безопасностью ПО. Наверное это важно.
Но меня, честно говоря в первую очередь интересует, как с новой версией квартуса будет работать наш программатор MBFTDI. Если кратко - работает. Если нужны подробности, то читайте дальше.
В предыдущей статье я рассказал, как запустил свой собственный велосипед USB хост контроллер и как он работает в железе в плате Марсоход3. Там я в основном рассказывал, как взаимодействует управляющая программа с контроллером. Но вот как работает мой контроллер? Чтобы разобраться в этом нужно провести Verilog симуляцию.
Внутреннее устройство моего контроллера схематично показано рисунке выше.
Внутри контроллера есть:
входное FIFO, модуль generic_fifo_dc_gray fifo_in, сюда складываются все входящие команды и данные;
выходное FIFO, модуль generic_fifo_dc_gray fifo_out, отсюда внешние устройства будут забирать результат исполнения команды;
временное FIFO, generic_fifo_dc_gray fifo_out_tmp, где временно хранятся принятые из USB шины байты;
модуль USB передатчика ls_usb_send ls_usb_send_;
модуль USB приемника ls_usb_recv ls_usb_recv_;
машина состояний по регистру состояний state.
Рисунок довольно схематичный, но в целом отражает происходящее в хост контроллере. Далее расскажу подробнее.
Я сделал USB хост контроллер в FPGA для подключения Low Speed устройств, клавиатур или мышей. Немного расскажу про этот проект. Контроллер делается для платы Марсоход3/Марсоход3bis плюс шилд разъемов. Тем не менее, так же все должно работать и на платах Марсоход2 или Марсоход2bis или других FPGA платах (если сделать правильные назначения сигналов проекта). В этом проекте есть два компонента, аппаратный и программный:
USB хост контроллер выполнен в среде Intel Quartus Prime Lite, топ модуль в виде схемы, остальные модули - это Verilog HDL;
Программа управления, написана на C/C++ в среде Visual Studio. Программа открывает последовательный порт, который связывает FPGA плату и компьютер. Через последовательный порт программа отправляет управляющие команды USB хост контроллеру и получает от него результат исполнения команд и принятые данные.
Ниже постараюсь рассказать подробнее, но больше про программный компонент.
Подробнее...