Автор Тема: Очень дешевый заменитель NES PPU-RGB на FPGA  (Прочитано 3519 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Решил отдельно создать тему, чтобы не засорять соседнюю.

Дешевый аналог RGB-PPU заменителя на FPGA.  В качестве FPGA был применен самый дешевый  Cyclone I  EP1C3T100C8N в 100 выводном корпусе. В качестве Video DAC применен диcкретный R2R подобный ЦАП на резисторных сборках, на каждый канал 6 бит + бит эмфазиса. Прототип содержит 3 встроенных палитры, которые можно переключать посредством перемычек на плате, всего в данном проекте можно реализовать до 4x палитр без увеличения количества используемых текущих пинов FPGA.
Репозиторий содержит также герберы для печатной платы и располагается тут: https://github.com/andkorzh/PPU-LITE/tree/main. Постепенно наполняю репу информацией, устраняю некоторые мелкие косяки.

ВНИМАНИЕ!!! На этой плате присуствует только интерфес конфигурирования JTAG, не путать с AS. Следовательно нужно прошивать файлом с расширением "jic". При попытке прошить файлом с расширением "pof" получите ошибку.

Демонстрация работы https://www.youtube.com/watch?v=B2EgrhUERuM
« Последнее редактирование: 15 Декабрь 2025, 15:52:20 от and1981 »

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 477
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #1 : 23 Сентябрь 2025, 07:18:56 »
Смотрю ты собирал прошивку в 9 квартусе, насколько понял 11 - последняя версия поддерживающая первый циклон. Надо будет установить, скомпилировать.

Оффлайн quq_CCCP

  • Пользователь
  • Сообщений: 2386
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #2 : 23 Сентябрь 2025, 10:33:44 »
Прям теперь не придется искать SECAM ppu для норм ргб, ну чтож уже очень хорошо.

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #3 : 23 Сентябрь 2025, 11:23:40 »
Смотрю ты собирал прошивку в 9 квартусе, насколько понял 11 - последняя версия поддерживающая первый циклон. Надо будет установить, скомпилировать.
у меня 9-я версия есть под рукой, не стал заморачиваться с поиском и установкой 11-го Кактуса.  :)
Прям теперь не придется искать SECAM ppu для норм ргб, ну чтож уже очень хорошо.
Я как-то хотел себе в коллекцию найти секам, но забил, ибо ценник совсем невменяемый стал.

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 477
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #4 : 23 Сентябрь 2025, 12:36:27 »
and1981, пожалуйста добавь bom на гитхаб.

Я бы заменил корпус преобразователя 1117 на SOT-223, перенес на нижний слой дорогу +3.3в где она идет рядом с CLK, и генератор разместил поближе к циклону. Ну да это мои придирки, проект - огонь  :thumbup:

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #5 : 23 Сентябрь 2025, 12:55:50 »
Генератор не нужен, это опция. Клок идет через резик с ножки разъема ППУ.
У меня много этих стабов, из списанной техники я их много выпаял в свое время, так что использую, что есть в наличии, да и они оригинальные, не то что китайские. Я вот однажды купил  в китае 10 стабов на 1.2 вольта, а по факту после проверки оказалось, что из 10 - 2 на 3.3, хотя маркированы как 1.2. Такое вот попадалово, теперь превентивно проверяю все стабы перед установкой.

and1981, пожалуйста добавь bom на гитхаб.
Добавлю в ближайшее время, времени катастрофически мало к сожалению, проектов много, а я один.  :lol:
« Последнее редактирование: 23 Сентябрь 2025, 15:12:09 от and1981 »

Оффлайн quq_CCCP

  • Пользователь
  • Сообщений: 2386
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #6 : 24 Сентябрь 2025, 10:08:41 »
у меня 9-я версия есть под рукой, не стал заморачиваться с поиском и установкой 11-го Кактуса.  :)Я как-то хотел себе в коллекцию найти секам, но забил, ибо ценник совсем невменяемый стал.
Ищи БТ или клон BSAS, у них были секам версию, и просят за них по сравнению с классиком сущие копейки. Там ТА микросхемы а не UMC но точно такой же секам.

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #7 : 24 Сентябрь 2025, 10:31:19 »
Ищи БТ или клон BSAS, у них были секам версию, и просят за них по сравнению с классиком сущие копейки. Там ТА микросхемы а не UMC но точно такой же секам.
Спасибо за наводку, буду иметь в виду. :thumbup:

Добавлено 3 октября 2025 года:
Начал рисовать прототип FPGA_DENDY. Ибо основные все чипы я уже умею делать в FPGA. Настало время собрать в одном проекте и в одном Циклоне все это.  :biggrin:
« Последнее редактирование: 03 Октябрь 2025, 18:02:39 от ghostdog3 »

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 477
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #8 : 03 Октябрь 2025, 15:49:28 »
 :thumbup: Как будет реализовано согласование уровней? Вверху я так понимаю память?

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #9 : 03 Октябрь 2025, 16:06:29 »
:thumbup: Как будет реализовано согласование уровней? Вверху я так понимаю память?
вверху прозрачная защелка LS373, ибо ног у Циклона дефицит, поэтому используем как в оригинале защелкивание младших адресов  PPU по ALE. Срамки все внутри в ФПГА. Емкость позволяет. СОгласование уровней только по шинам данных, хотя для шины данных PD можно и тупо через резики, отлично работает. Для джоев пока не решил как, в процессе. Будет мультирегион NTSC/PAL/DENDY. Переключать с помощью джамперов. Выход видео RGB по схеме 6+6+6, плюс бит эмфазиса на каждый канал. Аудио в формате PWM, одельно 5 каналов (SQA, SQB, RND, TRIA, DPCM) выводить будем а потом миксить это дело уже в аналоге. ПОка такая концепция.  :cool:
« Последнее редактирование: 27 Декабрь 2025, 17:50:35 от and1981 »

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 477
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #10 : 03 Октябрь 2025, 16:43:44 »
Дело конечно хозяйское, но для спокойствия можно было бы воткнуть 74LVC245A/4245.

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #11 : 03 Октябрь 2025, 17:28:59 »
Шины адреса шифтить смысла нету, ибо они однонаправленные с единственным мастером на шине (CPU или PPU). А 5ти вольтовым устройствам по большому счету 3.3 вольта хватает для срабатывания.
Шина данных DB шифтится и тристэйтится, тут вопросов нет, а вот шина данных PPU тоже шифтится но будет вариант установить 2 резисторные сборки 0603х4 вместо шифтера. Есть небольшие нюансы работы этой шины, пока я еще до конца не сделал её работу идеальной, но думаю все вопросы решим.  :)

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 477
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #12 : 03 Октябрь 2025, 17:50:52 »
Я так понимаю вывод n, p в данном случае как простые IO? Я прост не шарю  :neznayu:

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #13 : 03 Октябрь 2025, 17:53:50 »
Я так понимаю вывод n, p в данном случае как простые IO? Я прост не шарю  :neznayu:
не совсем понял, о каких выводах речь?

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 477
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #14 : 03 Октябрь 2025, 18:01:44 »
Которые для дифпар, в пин планере n p обозначаются

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #15 : 03 Октябрь 2025, 18:10:44 »
Которые для дифпар, в пин планере n p обозначаются
Да, используются как обычные IO. Дифпарой можно сделать в настройке порта наверное, я не пользовался дифпарами, поэтому ничего не подскажу

Оффлайн sanmigel

  • Пользователь
  • Сообщений: 171
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #16 : 07 Октябрь 2025, 14:40:52 »
Начал рисовать прототип FPGA_DENDY. Ибо основные все чипы я уже умею делать в FPGA. Настало время собрать в одном проекте и в одном Циклоне все это. 
Реально сделать выход Svideo?

Оффлайн quq_CCCP

  • Пользователь
  • Сообщений: 2386
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #17 : 07 Октябрь 2025, 15:06:47 »
Реально сделать выход Svideo?
S-video делается из ргб, если будет ргб - то с помощью микросхемы ргб энкодера можно сделать и композит и с видео, тот же cxa1145 из мегадрайва.

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #18 : 07 Октябрь 2025, 15:55:40 »
Реально сделать выход Svideo?
Реально. Можно заюзать отдельный кодер как в NESRGB или c видео ЦАП до кучи как в LAVARGB. Правда эти кодеры стоят денег, а в наше нелегкое время могут возникнуть трудности с их приобретением. Второй вариант реализовать  Svideo на ресурсах уже используемого FPGA. Еще давно у HardWareMan появилась отличная идея и даже был написан Верилог для композитного мультирегионального кодера, используя этот кодер можно было также опционально  выводить отдельно 7 бит Люмы и 7 бит Хромы на 2 цап для Svideo, но вот время летит, а что-то он пока не доделал вроде Svideo в своем кодере. Или доделал но не хочет делиться. :) Я кстати его прикручивал к проекту и выводил при помощи отдельного ЦАП копмозит, который был намного лучше чем в оригинале, но это так, занимательный эксперимент, не более. Ниже видео показана работа этого кодера, где я на лету переключаю режимы FPGA ППУ с НТСЦ в ПАЛ, при этом менюха даже не виснет.  :biggrin:

Оффлайн rgz

  • Пользователь
  • Сообщений: 832
  • Пол: Мужской
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #19 : 09 Октябрь 2025, 19:10:13 »
Ниже видео показана работа этого кодера, где я на лету переключаю режимы FPGA ППУ с НТСЦ в ПАЛ, при этом менюха даже не виснет. 
:thumbup: Это реально работает на LavaRGB и иже клонах? Я правильно понимаю, что режим PAL/NTSC переключается J7, 38 пин FPGA U1? А то я этот вопрос задал в этой теме https://www.emu-land.net/forum/index.php/topic,88697.90.html , но вы мне не ответили. Спасибо

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Re: Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #20 : 09 Октябрь 2025, 23:17:16 »
:thumbup: Это реально работает на LavaRGB и иже клонах? Я правильно понимаю, что режим PAL/NTSC переключается J7, 38 пин FPGA U1? А то я этот вопрос задал в этой теме https://www.emu-land.net/forum/index.php/topic,88697.90.html , но вы мне не ответили. Спасибо
На видео FPGA клон PPU и к работе NESRGB и LAVARGB не имеет никакого отношения, там он работает совершенно другим образом. А пин 38 CPLD в NESRGB переключает режимы работы, меняет биты эмфазиса и коэффициент делителя пиксельклока для внутренних узлов NESRGB. Так что это совершенно другая тема.

Оффлайн Merkury

  • Пользователь
  • Сообщений: 257
  • Пол: Мужской
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #21 : 02 Ноябрь 2025, 12:14:25 »
Спасибо за наводку, буду иметь в виду. :thumbup:

Добавлено 3 октября 2025 года:
Начал рисовать прототип FPGA_DENDY. Ибо основные все чипы я уже умею делать в FPGA. Настало время собрать в одном проекте и в одном Циклоне все это.  :biggrin:

Вот это Отлично👍
Хочу спросить. Будет ли потдержке Pal/Secam, какой сигнал будет выводится на ТВ, Композит или RGB  ?

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #22 : 02 Ноябрь 2025, 12:55:24 »
Вот это Отлично👍
Хочу спросить. Будет ли потдержке Pal/Secam, какой сигнал будет выводится на ТВ, Композит или RGB  ?
Будет NTSC\PAL\DENDY, SECAM не вижу смысл делать, да и нужен кварц под него, а в идеале кварцевый генератор. Не помню чтобы их на али видел.
Вывод планирую в RGB, но можно в теории хоть и YPbPr сделать, или SVideo. Можно даже в хороший композит, с помощью кодера от HardWareMan. Полет фантазии ограничен лишь ресурсами FPGA  :biggrin:

Оффлайн sanmigel

  • Пользователь
  • Сообщений: 171
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #23 : 17 Ноябрь 2025, 10:00:54 »
S-video делается из ргб, если будет ргб - то с помощью микросхемы ргб энкодера можно сделать и композит и с видео, тот же cxa1145 из мегадрайва.
В архитектуре NES RGB изначально отсутствует и приходится фантазировать с палитрой.
А то как формируется видео сигнал, как раз хорошо коррелирует с S-video


Добавлено позже:
Еще давно у HardWareMan появилась отличная идея и даже был написан Верилог для композитного мультирегионального кодера, используя этот кодер можно было также опционально  выводить отдельно 7 бит Люмы и 7 бит Хромы на 2 цап для Svideo,
именно об этом я и говорю



Добавлено позже:
а в идеале кварцевый генератор
SI5351 наше все
я на нем придумал как при помощи ардуины приставки в мультисистемные можно переделывать
если в приставке 2 перемычки (стиплеровский джуниор, например), то ее можно заставить работать в PAL, NTSC, PAL-M (бразильский 60 ГЦ), NTSC 4.43

« Последнее редактирование: 17 Ноябрь 2025, 10:21:24 от sanmigel »

Оффлайн rgz

  • Пользователь
  • Сообщений: 832
  • Пол: Мужской
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #24 : 21 Ноябрь 2025, 12:23:18 »
если в приставке 2 перемычки (стиплеровский джуниор, например)
2 перемычки я правильно понимаю, что это раздельный clock для CPU и PPU или имелось в виду переключение генератора 21 MHz или 26 MHz? И как это будет работать с UMC чипами со встроенными делителями частоты, или это будет работать только для PPU на FPGA?

Оффлайн sanmigel

  • Пользователь
  • Сообщений: 171
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #25 : 21 Ноябрь 2025, 18:36:57 »
2 перемычки я правильно понимаю, что это раздельный clock для CPU и PPU или имелось в виду переключение генератора 21 MHz или 26 MHz? И как это будет работать с UMC чипами со встроенными делителями частоты, или это будет работать только для PPU на FPGA?
нет
в однокристальных клонах бывают перемычки, которые позволяют управлять видеостандартом.

Частота цветовой поднесущей всегда равна частоте опорного генератора деленной на 6

перемычки управляют следующими параметрами:
1. число строк 525 (NTSC, PAL M) или 625 (PAL)
2. частота кадров 50 или 60
3. кодированте цвета PAL или NTSC

перемычек бывает 2 или 3
если 3, то все рулится по отдельности
если 2, то пункты 1 и 2 объединяются след образом:
60Гц+525 строк или 50 Гц+625 строк


Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #26 : 15 Декабрь 2025, 17:02:35 »
В связи с тем, что у некоторых пользователей возникли определенные трудности с прошивкой платы PPU_LITE, я решил провести небольшой ликбез по конфигурации семейства Альтера Циклон.
На данной плате присуствует только интерфейс JTAG, хоть он и похож внешне на интерфейс AS, но это совершенно разные вещи. JTAG очень удобен при отладке проекта и позволяет буквально на лету залить прошивку и проверить что получилось, а не ждать некоторое время пока прошьется конфигурационная флешка циклона. Это экономит уйму времени при дебаге. Однако что делать, если нужно прошить именно конфигурационную флешку через JTAG, есть небольшая хитрость, а именно использовать файл с расширением JIC. При этом сам циклон на время перепрошивки  прикидывается программатором SPI и прошивает нужным битстримом флешку, при этом по окончании програмирования нужно обязательно снять полностью питание с FPGA. Есть небольшой нюанс, Квартус при компиляции  не создает этот JIC, а создает SOF и POF. SOF мы можем быстро залить через JTAG и до снятия питания с FPGA он будет выполнять нужный нам функционал. POF же нужен для программирования флешки через AS и он временно останавливает циклон и заливает прошивку во флешку непосредственно через интерфейсные выводы оной, но это работает медленно. В отладочных платах с FPGA как правило есть оба этих интерфейса (JTAG и AS), что очень удобно, но занимает некоторое место на плате. Поэтому я решил немного сэкономить и отказаться от AS в пользу JTAG. Файл JIC можно получить если сконвертировать файл SOF встроенным конвертером конфигурационных файлов. Располагается он в меню Файл, далее Convert Programming Files. Заходим в конвертер.
Далее устанавливаем нужные параметры конвертирования сверху вниз, не наоборот, иначе настройки сбиваются.
Добавляем SOF файл из скомпилированного проекта, обычно внутри проекта папка output_files, нужно нажать на строчку SOF Data, при этом справа станет активна кнопка Add File
Добавляем конфигурируемое устройство (Циклон), при этом нужно нажать на строчку Flash Loader, при этом справа станет активна кнопка Add Device. Затем жмём на семейство Cyclone I и только потом на EP1C3.
Также при использовании сторонних производителей конфигурационных флешей, например Winbond, нужно установить галочку запрета проверки ID флеши при программировании, жмём слева кнопку Advanced или (Options) и ставим полностью галочку Disable EPCS ID check.
После всех эти манипуляций жмем внизу окошка кнопку Generate и файл JIC появится по пути который вы указали вверху. Вот и все.  :)
Обычно я сам конвертирую и добавляю в папку этот файл, но если вы сами перекомпилировали проект под свои нужды то необходимо будет сконвертировать заново JIC файл. Удачи!  ;)
« Последнее редактирование: 15 Декабрь 2025, 18:45:11 от and1981 »

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #27 : 15 Декабрь 2025, 17:13:16 »
При программировании удаляем все строчки из окошка и добавляем JIC файл.
При этом в окошке мы должны увидеть цепочку из Циклона и конфигурационной флешки, больше ничего другого быть не должно.
Затем ставим 2 галочки и жмем Start, при этом прогресс бар должен пробежать 2 раза, один раз быстро, а второй медленно.
По окончании прошивки обязательно выключаем питание.
« Последнее редактирование: 15 Декабрь 2025, 18:47:43 от and1981 »

Оффлайн and1981

  • Пользователь
  • Сообщений: 288
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #28 : 31 Декабрь 2025, 19:38:22 »
twink3 поделился чистой платкой PPU_LITE v2. 
С красной маской, прям новогодняя раскраска под деда мороза.  :thumbup:
Спаял за пару часов и как и ожидалось все работает. Проверил на AV Famicom, Famicom, клон Hitex в режиме NTSC на отдельных чипах.

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4595
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Очень дешевый заменитель NES PPU-RGB на FPGA
« Ответ #29 : 01 Январь 2026, 06:54:12 »
прям новогодняя раскраска под деда мороза
Цвета Деда Мороза -- холодные. Бело-синий костюм у него (Гугл также утверждает про серый/серебристый вариант). А красный акцент это у буржуйского Санта Клауса. ;)