PDA

Просмотр полной версии : Karabas-Go и Karabas-Go Mini



andykarpov
03.12.2024, 01:45
Приветствую!


Соскучились? Нечем заняться перед новым годом? А вот вам две новых железки!
Встречайте, Karabas-Go (https://github.com/andykarpov/karabas-go) и Karabas-Go Mini (https://github.com/andykarpov/karabas-mini)!

Karabas-Go, как и предшественник Karabas-Pro:

https://github.com/andykarpov/karabas-go/raw/master/docs/karabas-go-top.png?raw=true


Плата размером с 3.5" дисковод, монтажные отверстия предполагают прикрепить реальный флопик к плате.


На борту Karabas-Go присутствуют:


- Xilinx Spartan 6 на 25к ячеек
- RP2040 в качестве периферийного контроллера
- 4 МБ 10нс SRAM
- 32 Мб SDRAM
- USB-хаб на 4 USB порта для клавиатуры, мыши, джоев и геймпадов
- ESP8266 модуль для wifi / zifi / интернетов
- VGA 8:8:8 через ADV7125
- VDAC2 (FT812)
- Аудио-ЦАП PCM5102A
- MIDI-синтезатор SAM2695
- CF-карта
- 2х мини-СД карты
- 34-пиновый коннектор для флопа (ВГ93 либо другого контроллера дисковода на плате нет, подразумеватся софт-реализация в соотв. корках)
- магнитофонный вход-выход
- часики, EEPROM
- 2 DB9 порта для SEGA/Atari джойстиков
- питание от usb type-C

Karabas-Go Mini - это просто миниатюрная копия большого собрата, с некоторыми отличиями в железе:
- вместо VGA - HDMI выхлоп
- нет дисковода
- нет CF-карты
- нет портов DB9 джоев
- нет ЦАП (аналоговый звук выводится через ШИМ прямо с FPGA)
- есть АЦП (для захвата аналогового звука с миди-чипа и с FT812)
- есть пока некоторые проблемы по захвату изо с FT812 и выводу через HDMI

https://github.com/andykarpov/karabas-mini/raw/master/docs/karabas-mini-top.png?raw=true

Фактически, приходится пилить параллельно две ветки с корками.

Цель: цели нет, есть только путь :) Развитие железа Karabas-Pro, можно и так сказать. Проекту уже год, но так и не было желания особого анонсировать, потому что вялотекуще там что-то течет и медленно пилятся корки :)

Пока можно похвастаться:
- Ядро TS-Conf, с VDAC2, ZIFI, Турбосаунд+ФМ, GS на 2 метра, SAA и прочими плюшками
- Ядро ZX Spectrum Next
- Ядро NES
- Ядро Karabas-Pro (нужно фиксить, работает пока через одно место)
- Ядро Радио-86РК

Корки в FPGA грузит RP2040 ногодрыгом, но довольно шустро. Это развязало руки по многим вопросам, в частности - по способу обновления корок. Просто закидываются файлы на микроSD карточку и все, готово. С обновлением прошивки периферийного контроллера - там тоже все просто, спасибо заводскому загрузчику в RP2040.

Привествуется участие заинтересованных лиц в проекте, в частности:
- для написания ровной прошивки под RP2040 (сейчас там arduino framework и много *****кода)
- для портирования других (вкусных) корок

Из ближайших планов был Minimig, точнее его собрат под Gowin чипы - Nanomig. Там автор сильно (в лучшую сторону) упросил обмен между периферийным контроллером и FPGA. Но все равно и часть по монтированию образов на стороне RP2040, и принимающую сторону (FPGA) надо будет переделывать, потому как обмен между 2040 и FPGA у меня идет по своему стандарту (пачками фиксированной длины). Это все поправимо.
Пока основная проблема портирования чужих корок с MIST/MISTer - это отсутствие поддержки System Verilog в Xilinx ISE под Spartan 6.

Чего не хотелось бы - так это портирования корок 1-в-1 с ZX UNO, где гвоздями прибиты какие-то костыли в плане софт-процессоров для ОСД и монтирования, загрузки образов и катриджей, либо необходимости использовать FAT16 карт или вообще карт в своем формате. На "гошах", чтоб этого избежать, есть для этого целая малинка :)

gdv2002
03.12.2024, 09:02
Машинка супер!
Конечно не хватает некоторых корок, Амиги, нормальной корки на РС-ХТ с EGA графикой и цветами...

Dexus
03.12.2024, 10:15
Прям вундерфафля.
Корки всяких C64, CPC, Atari и Амиги (ведь не просто так minimig присмотрен), надеюсь, в перспективе можно будет добавить!

andykarpov
03.12.2024, 13:30
Машинка супер!
Конечно не хватает некоторых корок, Амиги, нормальной корки на РС-ХТ с EGA графикой и цветами...

Амига, надеюсь, будет когда-нибудь :)

А вот PC XT с EGA - это нужно брать Next186 SoC за основу.
Но это не совсем PC XT, там круто сделано, конечно, но многое впилено сбоку - например опрос ps/2 клавы, загрузка видео-биоса с SD карты да и вообще работа с SD-картой. Я читал ветку разработчиков MIST/MISTer, сколько они потратили ресурсов времени, чтобы разобраться и переделать этот boot sequence, а также выпилить прямую работу с SD картой в пользу монтирования образов :) Ну и там вроде все на асме на уровне биоса сделано вот это.
Это, конечно, демотивирует и останавливает чуток.

gdv2002
03.12.2024, 14:27
А вот PC XT с EGA - это нужно брать Next186 SoC за основу

А с Мурмулятора?

CityAceE
03.12.2024, 19:54
А с Мурмулятора?
Там софт-эмулятор, а здесь FPGA. Абсолютно разные вещи.
А... Ну разве только в набортную RP2040 его засунуть.

gdv2002
04.12.2024, 07:16
Там софт-эмулятор, а здесь FPGA. Абсолютно разные вещи.
А... Ну разве только в набортную RP2040 его засунуть.

Я не очень понимаю в этих эмулях, но получается в ФПГА типа железная эмуляция, а в мурме софтовая, так?

CityAceE
04.12.2024, 09:02
в ФПГА типа железная эмуляция, а в мурме софтовая, так?
Грубо говоря, в чип FPGA загружается полная схема компьютера со всеми её цифровыми элементами, и таким образом всё, что собрано на рассыпухе, в случае FPGA находится в одном чипе. Это даже эмуляцией сложно назвать, но пусть это будет аппаратная эмуляция. А Murmulataor - это чистой воды софтовый эмулятор, просто заточенный под конкретную аппаратную платформу.

gdv2002
04.12.2024, 09:29
Значит я правильно понял.

Ну собственно РС не особо конечно.
Вот Амига уже другое дело.
Ну и хотелось бы Специалиста, Орион-128... :)

Titus
04.12.2024, 13:06
Грубо говоря, в чип FPGA загружается полная схема компьютера со всеми её цифровыми элементами, и таким образом всё, что собрано на рассыпухе, в случае FPGA находится в одном чипе. Это даже эмуляцией сложно назвать, но пусть это будет аппаратная эмуляция. А Murmulataor - это чистой воды софтовый эмулятор, просто заточенный под конкретную аппаратную платформу.

Почему-то многие считают, что если платформа реализована в FPGA, то она или полностью соотвествует характеристикам реальной машинки, или практически точно. Однако, как и с случае софтового эмулятора, все зависит от того, кто и как реализовал эмуляцию/симуляцию машинки. Те же софтовые процессоры T80 вообще не соответствуют реалу, например. А то, что они написаны на Verilog'е, а не в виде программного эмулятора, почему-то склоняет людей к мысли, что все равно все почти-что точно) Это же железо!
Хардварная эмуляция (FPGA) отличается от софтварной только тем, что хардварно зачастую гораздо проще реализовать сложные схемы ввиду реального параллелизма. При софтварной эмуляции приходится переходить на другой уровень абстракции и превращать параллельные процессы в последовательные, что само по себе уже либо ведет к упрощению модели (и уменьшению совместимости), либо к большому ее усложнению по сравнению с FPGA-версией.
Существуют, например, программные эмуляторы параллельных процессов (например, Z80 Explorer и т.д.), которые по совместимости ничуть не уступают FPGA-реализации кристалла, но при этом жутко меделенные, т.к. написаны 'в лоб'.

- - - Добавлено - - -


Грубо говоря, в чип FPGA загружается полная схема компьютера со всеми её цифровыми элементами, и таким образом всё, что собрано на рассыпухе, в случае FPGA находится в одном чипе. Это даже эмуляцией сложно назвать, но пусть это будет аппаратная эмуляция. А Murmulataor - это чистой воды софтовый эмулятор, просто заточенный под конкретную аппаратную платформу.

Почему-то многие считают, что если платформа реализована в FPGA, то она или полностью соотвествует характеристикам реальной машинки, или практически точно. Однако, как и с случае софтового эмулятора, все зависит от того, кто и как реализовал эмуляцию/симуляцию машинки. Те же софтовые процессоры T80 вообще не соответствуют реалу, например. А то, что они написаны на Verilog'е, а не в виде программного эмулятора, почему-то склоняет людей к мысли, что все равно все почти-что точно) Это же железо!
Хардварная эмуляция (FPGA) отличается от софтварной только тем, что хардварно зачастую гораздо проще реализовать сложные схемы ввиду реального параллелизма. При софтварной эмуляции приходится переходить на другой уровень абстракции и превращать параллельные процессы в последовательные, что само по себе уже либо ведет к упрощению модели (и уменьшению совместимости), либо к большому ее усложнению по сравнению с FPGA-версией.
Существуют, например, программные эмуляторы параллельных процессов (например, Z80 Explorer и т.д.), которые по совместимости ничуть не уступают FPGA-реализации кристалла, но при этом жутко меделенные, т.к. написаны 'в лоб'.

backa
07.12.2024, 17:10
- Xilinx Spartan 6 на 25к ячеек
Вы планируете выложить "исходники" для FPGA (на гитхабе не наше. Может плохо искал ).

andykarpov
07.12.2024, 17:20
Вы планируете выложить "исходники" для FPGA (на гитхабе не наше. Может плохо искал ).

В шапке темы по первой ссылке - основная репа Гоши. там есть ссылки на остальные репозитарии с исходниками корок.

backa
07.12.2024, 17:34
репозитарии с исходниками корок
вот теперь понял - я на них не обращал внимания до этого))))

backa
14.12.2024, 17:53
VDAC2 (FT812)
у меня есть опыт работы с этой "спецмикросхемкой" - связка дисплея ME813A-WH50C (https://brtchip.com/product/me813a-wh50c/) по SPI и очень удачного микроконтроллера TM4C1294. Я использовал как встроенную графику для создания меню так и напряму с памятью работал (делал подобие осциллографа - удобство нескольких "лэйров" - в одном сетка осциллографа или фон а в другом меняющаяся картинка - кривая сигнала). Звук тоже задействовал - выводил озвучку голосом человека менюшки))
Если будут вопросы - могу глянуть в своем проекте как и что)) Правда давно это было ...

andrews
15.12.2024, 13:32
и превращать параллельные процессы в последовательные
за счет разделения времени можно и в псевдо-параллельные, это если софт исполняется на одном процессоре.

Owl
30.06.2025, 21:45
Вечер добрый.
Почти собрал Go Mini, но при старте виснет.
Положу ссылку на старт и вылет. Может кто подскажет куда смотреть ?

https://disk.yandex.ru/i/d3NA-Vz-9_4wUQ

Похоже на память, но я не пойму какой это чип.
07/07/25
Поменял один чип памяти. Комп вроде работает.
Но при входе в TSCONF вываливается в TR-DOS. Так должно быть ?

https://disk.yandex.ru/i/Thi5vYoHg6EY2g

И что за файл TBBLUE.FW ?? Для чего ?
Есть ли какая-нибудь инструкция по меню и клавишам ?
Очень мало информации.
16/07/25
Разобрался методом тыка.
Всем спасибо.