User Tag List

Страница 59 из 59 ПерваяПервая ... 5556575859
Показано с 581 по 585 из 585

Тема: Компьютер "Aleste 520EX"

  1. #581

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Работаю над арбитром памяти. Мной обнаружены следующие моменты, которые могут помочь другим разработчикам в понимании проблемы совместимости по скорости процессора между Алестой и Amstrad CPC.

    Арбитраж памяти в Алесте:

    • Память работает на частоте 4 МГц.
    • Так как шина памяти 16-битная, видеоконтроллеру для чтения двух байтов за раз достаточно одного доступа.
    • Арбитр чередует доступы: каждый второй такт (частотой 4 МГц) жестко отдается видеоконтроллеру.
    • Теоретически процессор может получить доступ к памяти в оставшемся такте. Фактически, процессор может работать с памятью с эффективной частотой до 2 МГц, используя одно окно доступа за каждый полный цикл.

    Арбитраж памяти в Amstrad CPC:

    • Основной цикл длится 16 тактов частоты 16 МГц (что эквивалентно 4 тактам частоты 4 МГц).
    • Первые 8 тактов (16 МГц) жестко отданы под доступ видеоконтроллера. Для чтения двух байт используется режим страничного доступа (Burst Mode) DRAM: один раз выставляется сигнал /RAS и два раза сигнал /CAS.
    • Вторые 8 тактов (16 МГц) отданы под возможный доступ процессора.
    • В результате процессор также имеет эффективную частоту доступа к памяти 2 МГц, но это выглядит как одно окно размером в четыре такта (4 МГц), а не два отдельных окна, как в Алесте.

    Вывод для совместимости:

    Различие в структуре арбитражных окон (одно большое окно в CPC против чередования тактов в Алесте) делает Алесту в среднем несколько быстрее. Это неизбежно приводит к расхождению в производительности в строго зависящем от таймингов коде.

    Для достижения полной совместимости с оригинальным CPC арбитр памяти должен быть скорректирован и эмулировать не только частоту, но и структуру доступа оригинала — то есть, использовать одно процессорное окно за цикл, а не чередование на каждом такте.

    Эти 3 пользователя(ей) поблагодарили Sherlock за это полезное сообщение:

    Willy(30.10.2025), yevrowl(14.12.2025), Копейкин(30.10.2025)

  2. #582

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Видеоконтроллер полностью закончен и отлажен


    Изображение ниже в формате 320x200-8bpp-4096c (64КБ)


    SDRAM Controller

    Работает на частоте 108МГц использует burst режим читает по два слова 16 бит за один доступ

    Memory Arbiter

    Работает на частоте 108МГц и обрабатывает 16 битные данные. Коммутирует шину между системной шиной, видео-контроллером и графическим сопроцессором. Как и в оригинальной Aleste EX эта подсистема полностью 16 битная.

    System Arbiter

    Работает на частоте 54МГц и обрабатывает 8 битные данные. То есть вся остальная часть всей системы полностью 8-битная.

    Video Buffer

    Двойной 32 битный буфер видеоданных. Превращает 32 слова в поток байтов для генератора пикселов.

    Pixel Pipeline Unit

    Генерирует 8-битные пиксели и потока байтов. Поддерживает оригинальные CPC кодировки и линейные, которые планировались на Alexte EX, но так и небыли реализованы. Это режимы более простой упаковки. Например для 16 цветного режима первые два пикселя [7:4][3:0], а для 4 цветового [7:6],[5:4],[3:2],[1:0]

    Color Paletter

    Конвертирует 8 бит в 12 бит. Для этого имеет таблицу 512 байт. При заполнении таблицы (как и в Alesta EX) данные могут транслироваться в 12 битный формат. Поддерживаются форматы:

    12 bit
    CPC
    MSX2+ RGB
    MSX2+ YJK

    Также палитра имеет автоинкремент и модификатор цвета для использования банков цвета

    Scan Doubler

    Конвертирует одну 12-bit на пиксел строку в две HDMI строки

    HDMI Controller

    Сериализует данные в HDMI интерфейс, и формирует основной кадровый и строчный темп в системе.

    UART Bridge

    Отладочное устройство которое позволяет управлять системой с хост компьютера. Оно осуществляет доступ к Wishbone шине через последовательный интерфейс.

    6845 Mod

    Модифицированная версия контроллера которая наряду со стандартной версией имеет следующее:

    Имеет дополнительные регистры управления которые позволяют: адресоваться к 24 битной памяти, изменять bpp, изменять скорость потока данных,а также использовать линейный режим. Последнее было одной из нереализованных идей в EX. В этом адрес по окончании первой строки переходит во вторую. Кроме этого контроллер поддерживает burst, для этого он меняет адрес через +2, а также может это делать 2 раза в символе.

    Итоговый список режимов стал такой: cpc режимы и linear. Вторые разбиты на три группы 16КБ страница, 32КБ страница и 64КБ страница. Теоретически можно использовать 128КБ но не используется.

    cpc: mode0, mode1, mode2
    linear: 16KB (4bpp,2bpp,1bpp), 32KB (8bpp-160x200, 4bpp-320x200, 2bpp-640x200), 64KB (8bpp-320x200, 4bpp-640x200)

    Синхронизация

    Wishbone работает на частоте 54МГц
    Видео-подсистема на частоте 27МГц
    Память на частоте 108МГц

    Основной цикл состоит из 16 тактов 27МГц. У некоторых тактов есть назначение:

    T04 - Sync 1 запуск цикл доступа в память для получения 32 бит. (и загрузка в выходной буфер если необходимо)
    T12 - Sync 2 загрузка 32 бит данных из памяти в выходной буфер (и запуск нового доступа если необходимо)
    T15 - Конец символа

    В зависимости от режима пиксель clk формируется в T{0,2,4,6,8,10,12,14} тактах, в самом медленном случае T{0,4,8,12}

    В целом диаграмма подобна то которая используется в Myst/Myster для CPC.

    Следующий этап

    Процессор и периферия.
    Последний раз редактировалось Sherlock; 09.11.2025 в 20:30.

    Эти 6 пользователя(ей) поблагодарили Sherlock за это полезное сообщение:

    breeze(09.11.2025), CityAceE(09.11.2025), CodeMaster(09.11.2025), RW9UAO(09.11.2025), yevrowl(14.12.2025), Копейкин(09.11.2025)

  3. #583

    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,876
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    129
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sherlock Посмотреть сообщение
    Видеоконтроллер полностью закончен и отлажен
    А на базе чего вообще делается проект? Это какая-то готовая плата или собственная разработка?

  4. #584

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от breeze Посмотреть сообщение
    А на базе чего вообще делается проект? Это какая-то готовая плата или собственная разработка?
    Отличный вопрос.

    В качестве базовой FPGA была выбрана микросхема ECP5 от компании Lattice. Альтернативным вариантом рассматривался чип от Gowin. Ключевым аргументом в пользу ECP5 стала поддержка открытых инструментов разработки: Verilator, Yosys и NextPNR.

    В качестве конструктива решено использовать SODIMM-модуль, на котором размещаются сама FPGA, память SDRAM и FLASH для прошивки. Для этих целей хорошо подходит плата ICE Sugar Pro.

    Была разработана материнская плата XiAletse, однако в связи с известными событиями проект пришлось приостановить. Как это часто бывает, со временем подход пересмотрели в сторону снижения стоимости и оптимизации.

    В итоге появился проект FPGA LX, который стал символом минимализма — напоминанием о том, что разработчик должен ограничивать свои «хотелки» на каждом шагу. В то же время Xi олицетворял максимализм и стремление к идеальной, но избыточной реализации.

    После завершения работы над FPGA-ядром будет спроектирована новая печатная плата — это будет сильно оптимизированная версия Xi.

    Планируемые изменения:

    • Wi-Fi-чип и аналогичные модули будут удалены с платы — вместо них появится PMod-разъём для подключения внешних периферийных устройств.
    • Legacy Edge-коннекторы будут полностью убраны — они занимают много места, недостаточно надёжны, а при текущих ценах на память их необходимость сошла на нет.
    • Встроенный J-Link отладочный интерфейс, вероятно, также будет удалён.
    • MIDI-разъёмы заменят на Mini DIN — более компактный и современный вариант.
    • ЦАП и АЦП будут заменены на более доступные коммерческие аналоги.
    • Звуковая шина станет основной, а PCIe-разъёмы уступят место компактным 40-контактным прямоугольным коннекторам.
    • Микроконтроллер будет заменён на более дешёвую модель (без чрезмерного удешевления — разница составит несколько долларов).
    • Аудиоразъём, вероятно, будет заменён на Mini-JACK.
    • VGA, вероятно, будет удален.
    • Габариты платы будут уменьшены.

    Для простоты понимания левая часть платы будет удалена, а на правой компоненты заменены по принципу меньше, дешевле -> лучше.

    Последний раз редактировалось Sherlock; 10.11.2025 в 12:24.

    Эти 3 пользователя(ей) поблагодарили Sherlock за это полезное сообщение:

    Radon17(13.11.2025), wiktors75(16.11.2025), Willy(14.12.2025)

  5. #585

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    # [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
    ============================================================
    ТРАССИРОВКА ЗАВЕРШЕНА
    ============================================================
    [свернуть]


    Что дальше

    1. Запускать более сложные программы для тестирования платформы
    2. Добавлять native устройства (таймеры, контроллеры прерываний)
    3. Тестировать legacy устройства (старые Z80 периферийные чипы)
    4. Разрабатывать простую операционную систему или монитор


    Система готова для дальнейшего развития!

    "Один маленький шаг для Z80, но гигантский скачок для нашей FPGA-платформы!"

    ---
    Проект Aleste-LX FPGA продолжает развиваться. Следите за обновлениями!

    Эти 5 пользователя(ей) поблагодарили Sherlock за это полезное сообщение:

    breeze(14.12.2025), CityAceE(14.12.2025), Pyk(16.12.2025), Willy(14.12.2025), yevrowl(14.12.2025)

Страница 59 из 59 ПерваяПервая ... 5556575859

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 1076
    Последнее: 11.05.2022, 06:59
  2. Ответов: 0
    Последнее: 15.08.2010, 14:38
  3. Ответов: 27
    Последнее: 19.12.2009, 18:49
  4. Куплю компьютер Aleste 520EX (Алеста)
    от Nickolas в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 23.10.2009, 05:06
  5. Ответов: 0
    Последнее: 26.06.2005, 11:52

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •