Делаем IBM PC на FPGA

Думаю многие, кто работал с FPGA думали - а не сделать ли свой компьютер полностью на ней, с x86 процессором, периферией и прочим? 8-и битные компьютеры часто реализовывали в FPGA, но вот целый PC...

Для успешной работы помимо x86 процессора нужен еще BIOS со всеми реализованными прерываниями (включая доступ к "диску" на SD карте), BIOS VGA-совместимой видеокарты, вся периферия, контроллер памяти, таймер и многое другое. Задача намного сложнее чем кажется на первый взгляд, но тем не менее, в проекте ZetCPU она решена.

Из ограничений - работает только 16-и битный режим на 12.5Mhz, без математического сопроцессора.

Железо


Для запуска нам понадобится отладочная плата с FPGA. Мне очень понравились плата Terasic DE2-115 (на Altera Cyclone IV с 115тыс. LE). Студенческая цена - 299$, меньше чем розничная цена одного чипа.

На плате куча встроенного железа - 2 по 8Мб SDRAM памяти, 256Кб SRAM, 1Мб флеш памяти, 2 PHY 1Gb Ethernet, VideoDAC для подключения к VGA, светодиоды/переключатели/кнопочки, разъем для SD карты и прочее. Но в данном проекте используется далеко не все (только SD карта, Flash, SDRAM и VideoDAC).

Также проект можно запустить на DE0 Nano со студенческой ценой 59$, но там будет работать только текстовый режим.

Запускаем

В установке есть несколько не очевидных моментов, не описанных в инструкции:

  • Загружаем в плату прошивку DE2_115_ControlPanel.sof
  • Запускаем DE2 ControlPanel и заливаем BIOS и загрузочную дискету во флеш память по инструкции
  • Записываем образ жесткого диска на SD карту с помощью win32-image-writer, а не WinImage - он ломает загрузочный образ с большими картами
  • Компилируем BIOS/VGA BIOS или берем из установочного архива готовые
  • Компилируем нашу PC-шку написанную на Verilog в Quartus-е или берем готовый kotku.sof и прошиваем в плату

Теперь можно подключать к плате монитор, PS/2 клавиатуру - и включаем :-)
Можно добавлять свои инструкции в процессоре, свою периферию, посмотреть реализацию любых инструкций в verilog-исходниках...

Переходим к тестированию

Заранее прошу прощения за экранные копии:








Далее - программирование. Скорость компиляции и выполнения навевает ностальгию...




Заключение

Надеюсь статья заставила вас поверить в силу FPGA и продолжить изучение Verilog.
А у кого-то возможно теперь исполнится мечта сделать свою PC-шку с блекджеком :-)

RSS@BarsMonster3@14.by