Итак, сегодня отличное событие.
Сегодня я во все поля доделал процессор RV32I с частичной реализацией умножения (без деления пока). Но не важно. Я запустил то о чем мечтал так долго – видеоразрешение 640 на 400, 16 цветов, 125К памяти, и 256К (пока что) памяти в целом (включая видеопамять). Это неважно. Другое важно: я подключил мышь и нарисовал кодом окошки в стиле Windows 98! Это то, чего я так долго ждал и так долго не мог сделать.
А вот экран отладчика:
Накопление знаний происходило в множество этапов. Я изучал протокол PS/2, сделал мышь, подключил, а также наконец, смог просто добраться до самой возможности создать процессор RISCV. Это огромное достижение! Процессор, по правде, довольно простой, он в десяток раз проще в понимании процессора X86 и в то же время под него есть нормальный, между прочим, компилятор GCC.
Мне удалось пересилить себя и принудительно пересесть на 32х битную шину данных и адреса, поскольку в данном процессоре это происходит абсолютно нативным способом. Мне нравится минимализм данного процессора, и вообще, так говоря, я могу запускать его, если сделаю конвейер, и на 75 мгц запросто, и даже на 100 мгц, если сильно захотеть. Пока что максимальная частота и предел – 40 мгц.
Итак, и что мне осталось сделать еще? Да вообще-то, тут дел очень много. Это:
- Создание конвейера
- Защита памяти и MMU
- Подключение SDRAM и кеширование
- Добавление FPU-блока
Это колоссальная работа! Я слабо верю что мне даже близко удастся сделать это. Хотя, мне бы свои предыдущие проекты позакрывать, которые давным-давно еще хотел и не смог.
Сейчас я сосредоточусь на разработке интерфейса, подключении клавиатуры, контроллера SDCARD и возможности работать с FAT32.