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.


compiler creation with crosstool-ng

Наверное каждый, кто занимается программированием FPGA однажды задумывался о создании своего собственного процессора. Дело это несомненно интересное. Найти и использовать готовые реализации процессоров уже сейчас довольно просто. Сама компания Intel предлагает использовать в проектах софт процессор Nios. Компания Wave Computing дает исходные тексты процессора MIPS. Есть opensource процессор ARM v2a, у нас в блоге целый раздел ему посвящен. Есть OpenRisc и другие.

Я и сам постоянно думаю о создании своего собственного процессора (нетрадиционной архитектуры, с динамически переконфигурируемым ядром).

Однако, эта статья не о процессорах, а о компиляторе. Каждый создатель процессора должен не в последнюю очередь думать о компиляторе. Создать процессор - это только пол дела, а вот как на нем запустить свою программу? Как текстовая программа будет преобразована в машинный код? Как запустить операционную систему на новой системе с новым процессором. Тут нужен не просто компилятор, но toolchain.

Digital Design and Computer Architecture

Сейчас просматриваю и местами читаю книгу "Цифровая схемотехника и архитектура компьютера" Дэвида М. Харрис и Сары Л. Харрис в русском переводе. Я давно про эту книгу слышал, но все как-то не до нее было. Казалось книга ну и книга, мало что ли их написано? Её в свое время рекламировал на Хабре Юрий Панчул, я так понимаю это он приложил усилия и организовал людей, и таким образом эта публикация была переведена на русский язык.

Цель этой статьи познакомить читателей нашего блога интересующихся цифровой схемотехникой с этим произведением инженерной мысли. Очень рекомендую книгу для изучения студентам технических вузов и даже школьникам старших классов. Я намеренно положу эту статью в наш раздел о процессоре MIPS, так как сама книга умело подводит читателя от простых понятий, от транзисторов и логических элементов к микроархитектуре реального процессора MIPS.

В конце статьи будет ссылка для скачивания книги.

MIPSopen

Возможно вы знаете, что компания Wave Computing приобрела технологию MIPS. Это правда не сейчас случилось, а довольно давно уже, но вот наконец у меня появилось время уделить этому внимание. У нас на сайте по проекту MIPSfpga было написано несколько статей. Я занимался портированием проекта на нашу плату Марсоход3 с чипом MAX10. После того как Imagination продала технологию MIPS компании Wave Computing наступил некоторый период неизвестности, что дальше будет с МИПСом? К счастью сейчас уже видно точно, что Wave продолжила поддержку открытого процессора.

В моих статьях про MIPSfpga были довольно подробные инструкции, что и как нужно делать, однако некоторые ссылки вели на сайт imgtec.com и там уже нет нужных страниц.

Я только что перечитал свои старые статьи и поправил ссылки в них. Сам заново зарегистрировался теперь уже на mipsopen.com, заново запросил исходники ядра MIPS и получил их. Заново перекомпилировал свой проект https://github.com/marsohod4you/mipsfpga-plus с вновь полученным ядром. Удостоверился, что проект работает и все мои инструкции из статей работают верно.

Таким образом, этот раздел нашего сайта MIPSfpga стал вновь полностью актуальным.

 

28BYJ 48

Честно говоря у нас на сайте уже была статья про двигатели. В той статье было кратко рассказано про коллекторные и шаговые двухфазные и трехфазные двигатели. Там же был и проект Quartus для управления двигателями из платы Марсоход. Здесь в этой статье я расскажу, как управлять именно этим 28byj-48 в полнофазном (full step) и полуфазном (half step) режиме. Напишем программу управления на Verilog HDL.

mbftdi marsohod

На этой фотографии показано подключение платы Марсоход к программатору MBFTDI к каналу B.
Выпущена новая версия драйвера Quartus II / Quartus Prime для программатора MBFTDI.
Скачать можно здесь: 

jtag_blaster_mbftdi_v20b ( 216561 bytes )

Скопируйте файл jtag_hw_mbftdi_blaster64.dll в папку квартуса, например, d:\altera\18.1\quartus\bin64\, если у вас установлена 64х битная Windows и соответственно 64х битная версия Quartus 18.1.

Если у вас 32-х битный windows, то копируйте jtag_hw_mbftdi_blaster32.dll в папку квартуса d:\altera\13.0\quartus\bin\
(ну или какая версия у вас установлена).

Если файл уже существует (предыдущая версия установлена) и оказывается защищенным от записи, то нужно остановить процесс jtagserver.exe в диспетчере задач - потом копировать.

Версия 2.0b программатора jtag_hw_mbftdi_blaster64 может использовать конфигурационный текстовый файл mbftdi.cfg. Он должен лежать рядом с файлом DLL, в той же папке.
В нем может содержаться два параметра:
channel=1
frequency=2500000

channel определяет какой из каналов mpsse будет использоваться. Для канала A channel=0, для канала B channel=1.
Второй параметр frequency определяет тактовую тастоту на JTAG (по умолчанию 10МГц).