FPGA & Verilog БлогFPGA chips

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


shield 3x7seg onboard FPGA

Сделали новую плату расширения для наших плат. Шилд дает новые возможности отображения информации для плат Марсоход2 / Марсоход2bis и плат Марсоход3 / Марсоход3bis. Он позволяет отображать 4 символа на семисегментном индикаторе с динамическим управлением. Так же добавляются четыре пользовательских кнопочки.

Дальше есть небольшое описание FPGA проекта, который демонстрирует работу этой платы расширения.

port fpga project
Представим себе, что мы увидели какой-то интересный FPGA проект и захотели запустить его на своей плате, но, проблема - плата у нас другая и микросхема FPGA у нас другая. Как перенести тот проект на нашу плату? Возможен ли такой перенос/портирование и трудно ли его выполнить?

В общем случае портирование FPGA проектов - это не очень простая задача. Зависит от многих факторов. Иногда это возможно, иногда нет. Самое главное: ресурсы платы (установленные компоненты, разъемы, интерфейсы) и ресурсы FPGA чипа (количество доступных логических элементов, объем встроенной памяти, PLL, умножители). К примеру, если исходный проект использует SDR память платы, а на нашей плате этой памяти нет или меньше, чем нужно, то что тут можно сделать? В таком случае полный перенос проекта не возможен. Или, к примеру, для проекта требуется минимум 12 тысяч логических элементов FPGA, а на нашей плате их всего 10, тоже не очень хорошо. В общем, по ресурсам имеющейся платы и FPGA нужно смотреть можно ли реализовать в ней проект или нет. Если же платы хотя бы примерно похожи и емкости чипа хватает, то можно пробовать делать перенос проекта.

У нас на сайте уже накопилось довольно много разных проектов для разных плат серии Марсоход. В этой статье я хочу рассказать, как производить портирование проекта с платы Марсоход2 c FPGA Cyclone III на плату Марсоход2bis, Cyclone IV. Я буду портировать проект "Простой текстовый терминал".

В этом проекте реализован текстовый видеоадаптер 56 строк по 180 символов, формируется видеосигнал 1440x900, 60Гц и картинка отображается на VGA дисплее. Плата принимает символы из последовательного порта и печатает их в экран. При этом, если приходит символ 0x0D, это "Enter"/"перевод каретки", то производится скроллирование экрана. Кроме того, терминал понимает символ табуляции 0x09.

Марсоход2 и Марсоход2bis визуально почти ничем не отличаются, но и на самом деле они производятся на одной и той же печатной плате. Главное отличие этих плат обусловлено установленными чипами.

Плата Марсоход2, FPGA Cyclone III, чип EP3C10E144C8, 10 тысяч логических элементов, 414Кбит встроенной памяти, 2 PLL, 23 (18x18) или 46 (9x9) встроенных умножителей.

Плата Марсоход2bis, FPGA Cyclone IV E, чип EP4CE6E22C8, 6 тысяч логических элементов, 270Кбит встроенной памяти, 2 PLL, 15 (18x18) или 30 (9x9) умножителей.

Плата Марсоход2bis немного дешевле, она в базовой комплектации имеет менее емкий чип. К тому же у Cyclone IV меньше I/O выводов, из-за этого на этой плате три светодиода и одна кнопка, у платы Марсоход2 есть 4 светодиода и две кнопки. Но зато Cyclone IV поддерживается современным программным обеспечением Intel Quartus Prime Lite 18.1 Edition, а для Cyclone III последняя версия квартуса - это Quartus II v13.1.

Посмотрим, смогу ли я перенести проект "Простой текстовый терминал" на плату Марсоход2bis?

title

В этой статье я расскажу про несколько совсем простых проектов платы Марсоход2bis. С готовыми проектами обычно легче начинать свой собственный, так как в исходном готовом проекте уже сделаны все важные настройки, задан тип микросхемы FPGA, сделаны назначения контактов ввода/вывода микросхемы, есть модуль верхнего уровня в котором описаны входные и выходные сигналы ПЛИС.

Исходные тексты приведенных ниже проектов можно получить на нашей странице github: https://github.com/marsohod4you/marsohod2bis

Внутри этого репозитория для каждого отдельного FPGA проекта создана отдельная папка, например, counter_verilog - это папка проекта для счетчика, vga_colors - папка проекта генерации VGA сигналов. Здесь есть еще проект сдвигового регистра, hello-world, serial-port эхо, а так же проект генератора сигналов и оцифровки сигнала с помощью АЦП платы. Проекты созданы в среде Intel Quartus Prime 18.1 Lite Edition, должны работать и более поздних версиях квартуса.

Далее есть краткое описание каждого из проектов.

compiler creation with crosstool-ng

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

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

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

Digital Design and Computer Architecture

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

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

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