МАРСОХОД

Open Source Hardware Project

FPGA & Verilog БлогFPGA chips

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


О переносе 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?

Подборка проектов для платы Марсоход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, должны работать и более поздних версиях квартуса.

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

Создание toolchain с помощью crosstool-NG

compiler creation with crosstool-ng

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

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

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

Цифровая схемотехника и архитектура компьютера. Дэвид М. Харрис и Сара Л. Харрис

Digital Design and Computer Architecture

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

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

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

Обновление статей MIPSfpga

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 стал вновь полностью актуальным.

 


ВКонтакте  facebook  GitHub  YouTube  Twitter
Вы здесь: Начало