МАРСОХОД

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.


Запуск тестовых программ в SoC MIPSfpga на плате Марсоход3

Первоначально, вариант обвязки MIPSfpga+ процессора MIPS microAptiv UP для FPGA написал Yuri Panchul на основе обвязки MIPSfpga 1.0 написанной Sarah Harris. Затем MIPSfpga+ существенно развил Stanislav Zhelnio, который и ведет проект сейчас. В проект также вносили добавления и создавали на его основе другие проекты разработчики из России, Украины, США, Великобритании, Италии и других стран.. В mipsfpga-plus репозитории на github есть примеры программ, которые можно запустить в процессоре.

Здесь я дам некоторые пояснения к некоторым программам и расскажу, как я запускаю их в плате Марcоход3.

Итак, в проекте mipsfpga_plus есть папка programs и в ней еще несколько подпапок:

00_counter
01_light_sensor
02_cache_misses
03_pipeline_bypasses
04_memtest
05_uart
06_timer_irq
07_eic
08_uart_irq
09_adc
10_linux

Это примеры программ, которые можно откомпилировать и запустить в процессоре (или правильнее сказать в SoC) MIPSfpga. В предыдущей статье я уже компилировал сам проект FPGA, загружал ПЛИС платы Марсоход3 и запускал программу 00_counter.

Давайте теперь попробуем запустить некоторые другие программы.

Компилируем и испытываем процессор MIPSfpga в плате Марсоход3

Здесь расскажу, как откомпилировать проект MIPSfpga для платы Марсоход3, как загрузить образ в плату, откомпилировать простую сишную программу и запустить ее в плате на процессоре MIPS.

Далее описано по шагам, что нужно сделать.

Проект MIPSfpga

MIPSopen logo

На сайте habr.com появилось очень много статей о процессоре с архитектурой MIPS. Конечно это интересно. Компания Imagination Technologies Group еще 2013 году приобрела MIPS Technologies, Inc. и ее разработки в области архитектурных решений микропроцессорного ядра и IPCores. С тех пор многое изменилось. Стремясь вернуть МИПСу былое влияние на рынок, компания Imagination предприняла ряд решительных мер. Например, она открыла исходные тексты ядра всем заинтересованным лицам. Университеты могут бесплатно получить исходники и обучающие материалы по MIPS процессору и могут преподавать студентам его внутреннее устройство и принципы работы. Ядро MIPS можно запустить на многих платах с ПЛИС: de0_cv, de0_nano, de10_lite, nexys4 и других.

Позже, в 2018 году, Wave Computing приобрела технологии MIPS, однако, ядро MIPS остается открытым и это хорошая новость.

Мы подумали, что запуск ядра MIPSfpga в плате Марсоход3 должен быть интересным нашим читателям. Именно поэтому последнее время я занимаюсь портированием этого проекта на нашу плату.

Виртуальные светодиоды и 7-ми сегментный индикатор

 

Когда человек начинает осваивать какой нибудь микроконтроллер или ПЛИС, то первый проект, который он делает - это моргание светодиодом. На нашем сайте есть примеры таких простых проектов и для первой платы Марсоход, и для второй платы Марсоход2 и для третьей.

Плата Марсоход3 имеет 8 светодиодов, но даже этого иногда оказывается мало для отображения нужной информации. Конечно, можно отображать и изображения или даже видео, это слишком сложно и требует много ресурсов.

На плате Марсоход3 есть разъем видеовыхода HDMI. Я подумал, почему бы не сделать простой проект для отображения простейшей двоичной информации - такие виртуальные светодиоды и семисегментный индикатор, которые показываются на экране монитора?

Я сделал такой проект, его исходники можно взять на github: https://github.com/marsohod4you/hdmi_leds_seg7

Далее - описание проекта.

Новая версия драйвера программатора MBFTDI

knott pcie

Готова новая версия драйвера программатора MBFTDI для Altera Quartus II или более новой версии квартуса Intel Quartus Prime. Драйвер, как обычно представляет собой DLL которую нужно скопировать в папку квартуса, например, в папку d:\altera\16.1\quartus\bin64.

Долгое время мы пользовались версией 1.6b, но вот пришло время версии 1.8b. Нечетные версии думаю буду оставлять для Linux версии драйвера, которая выйдет чуть позже. У нас уже была версия драйвера для Linux  - это была версия драйвера 1.7b.

Немного волнуюсь, так как исходный код драйвера был значительно изменен, можно сказать на 90% - это новый код. Значительно изменена внутренняя структура, так называемый рефакторинг, переход на C++11 (всего лишь) вместо чистого C и многое другое. Это позволит нам в будущем делать новые продукты основанные на этом же коде. Кое какие планы на этот счет есть.

С точки зрения пользователя возможно изменилось не многое. Вероятно, кто-то сможет заметить (но это не точно), что программатор стал работать чуть-чуть быстрее в режиме JTAG и значительно быстрее в режиме Active Serial. В частности, на фото выше я программирую чип памяти EPCS16 платы Knott PCIe Dev Kit в режиме Active Serial. Вместо 60 секунд со старым драйвером 1.6b теперь программирует 12 секунд с новым драйвером 1.8b.

POF файл в ПЛИС  MAX10 10M50SAE144 теперь зашивается 45 секунд вместо 50-ти. Конечно, не кардинально, но чуть быстрее.

И еще одна фича: DLL должна работать с программаторами построенными не только на FT2232H, но и FT4232H. Возможно кому-то это важно.

Новая DLL v1.8b тестировалась с ПЛИС Cyclone II и Quartus II Web Edition v13.0SP1, а так же с ПЛИС MAX10 и Quartus Prime Lite v16.1. Думаю так же она должна работать и со всеми промежуточными версиями квартуса.

Скачать новую версию 1.8b можно вот здесь:

 

Предыдущая версия 1.6b вот здесь:

 

 


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