Делаем 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-шку с блекджеком :-)