# [bОтчет о прогрессе проекта Aleste-LX FPGA[/b]
Что было реализовано
Мы собрали первую рабочую версию системы, которая объединяет:
• Видеоконтроллер - выводит изображение на экран
• Систему на Z80 - центральный процессор
• Два менеджера памяти - legacy и native режимы
• Арбитр шины - управляет доступом к памяти и устройствам
• Отладочное устройство для Z80 - позволяет удаленно отлаживать код
Отладочная система
Отладочное устройство подключено через UART-мост и позволяет:
- Загружать программы в память
- Управлять процессором (сброс, прерывания)
- Выполнять пошаговую отладку
- Устанавливать точки останова
- Мониторить состояние процессора
Трудности и их решение
Цитата:
Видеоконтроллер
Заработал сразу, но показывал только черный экран - это уже был прогресс!
UART-мост
Больше всего времени ушло на отладку UART-моста. Проблемы:
• Не проявлялись в симуляции
• В железе работали непредсказуемо
• Сигналы игнорировались или терялись
Решение: Пришлось обновить библиотеку последовательного интерфейса новым кодом.
Отладочная программа на Python
Разработка заняла 1-2 дня. Сегодня мы запустили первую программу!
Что сейчас работает
| Компонент |
Статус |
| Видеоконтроллер |
✅ Работает |
| Процессор Z80 |
✅ Работает |
| Менеджер памяти |
⚠ Требует тестов |
| Удаленный отладчик |
✅ Работает |
| Загрузка программ |
✅ Работает |
[Пример кода для тестирования
Код:
; Test program for Z80 debugger
; Loads at address 0xC00000
org 0x0000 ; Logical Z80 address
start:
jp 0x0005 ; Jump to main code
org 0x0005 ; Main program starts here
main:
ld a, 0x55 ; Load value 0x55 to register A
ld (0x0003), a ; Store A to memory address 0x0003
halt ; Stop CPU execution
; Program ends here (total 10 bytes)
; Bytes: C3 05 00 55 32 03 00 76
Сессия отладки
Пример запуска трассировки
Код:
$ ./dbg.py trace -a 0xC00000 -n 10 test.bin
============================================================
НАЧАЛО ТРАССИРОВКИ
============================================================
1. Включаем сброс CPU...
2. Загружаем программу...
LOAD: 10 bytes at 0xC00000
3. Настраиваем трассировку...
4. Начинаем трассировку...
Шагов: 10
Останов на: inst
============================================================
step: 1 addr:0xC00000 pc:0x0000 bus:0xC3 type:FETCH dis:JP 0x0005
step: 2 addr:0xC00001 pc:0x0001 bus:0x05 type:FETCH dis:db 0x05
step: 3 addr:0xC00002 pc:0x0002 bus:0x00 type:FETCH dis:db 0x00
step: 4 addr:0xC00005 pc:0x0005 bus:0x55 type:FETCH dis:LD A,0x55
step: 5 addr:0xC00006 pc:0x0006 bus:0x32 type:FETCH dis:LD (0x0003),A
step: 6 addr:0xC00007 pc:0x0007 bus:0x03 type:FETCH dis:db 0x03
step: 7 addr:0xC00008 pc:0x0008 bus:0x00 type:FETCH dis:db 0x00
step: 8 addr:0xC0000A pc:0x000A bus:0x76 type:FETCH dis:HALT
STOP: CPU halted at 0x000A
============================================================
ТРАССИРОВКА ЗАВЕРШЕНА
============================================================
[свернуть]
Что дальше
- Запускать более сложные программы для тестирования платформы
- Добавлять native устройства (таймеры, контроллеры прерываний)
- Тестировать legacy устройства (старые Z80 периферийные чипы)
- Разрабатывать простую операционную систему или монитор
Система готова для дальнейшего развития!
"Один маленький шаг для Z80, но гигантский скачок для нашей FPGA-платформы!"
---
Проект Aleste-LX FPGA продолжает развиваться. Следите за обновлениями!