PDA

Просмотр полной версии : Не спеком единым или ретро комбайн



PavelZX
26.09.2020, 19:20
Фантазия у меня разыгралась, смотрю нет ничего подобного вроде бы)

На одной плате ставим много "железных" процессоров, статическую память и накопитель на флэш (вместо дисководов, карт памяти и прочее, писать напрямую через USB к ПК), всё это связываем FPGA, цепляем к сети...

Большинство 8 и 16 бит ретро компьютеров и консолей, на реальных процессорах в одном устройстве, возможность экспериментировать, соединяя между собой устройства от разных систем и прочее... Игровой центр, музей и учебное пособие в одной коробке)

COSMAC VIP (1977) -- RCA1802
Telmac 1800 (1977) -- RCA1802
Tandy TRS-80 (1977) -- 63C09
Apple II (1977) -- 6502 (W65C816S)
Atari 800 (1979) -- 6502 (W65C816S)
Comx-35 (1981) -- RCA1802
Sinclair ZX80/81 (1981) -- Z80
BBC Micro (1981) -- 6502 (W65C816S) и видеочип MC6845
Texas Instruments TI-99/4A (1981) -- TMS9900 и видеочип TMS9918
Commodore Vic-20 (1981) -- 6502 (W65C816S) и видеочип MOS 6561
NEC PC-88 (1981) -- Z80
IBM PC (1981) -- i8088 и видеочип MC6845
ZX Spectrum 48k и 128k (1982) -- Z80
Commodore 64/128 (1982) -- MOS8502 (6510) и видеочип MOS8565
Dragon 32/64 (1982) -- MC6809 и видеочип MC6847
Acorn Electron (1983) -- 6502 (W65C816S) и видеочип MC6847
VTech Laser 200/300 (1983) -- Z80 и видеочип MC6847
MSX и MSX2 (1983) -- Z80 и видеочип TMS9918
Amstrad CPC 464 (1984) -- Z80 и видеочип MC6845
IBM PC/AT (1984) -- i80286 и видеочип MC6847
Apple Macintosh (1984) -- MC6809(63C09)
Atari ST (1985) -- 68000
Commodore Amiga (1985) -- 68000
Sharp X68000 (1987) -- 68000

АГАТ-9 (1984) -- 6502 (W65C816S)
Ириша (1985) -- 8085 (i8080)
Корвет (1985) -- 8085 (i8080)
ПК8000 (1985) -- 8085 (i8080)
Специалист (1985) -- 8085 (i8080)
Ямаха КУВТ и КУВТ2 (1985) -- Z80 и видеочип TMS9918
Радио-86РК (1986) -- 8085 (i8080)
Вектор-06Ц (1986) -- 8085 (i8080)
ПК-01 Львов (1986) -- 8085 (i8080)
Электроника МС 0511 (УКНЦ) (1987) -- кр1802вм2 - 2 шт.
Поиск (1988) -- i8088
Электроника БК 0010-01 (1989) -- кр1802вм2
ДВК-2М (1989) -- кр1802вм2
Пентагон-48К/128К (1989) -- Z80
Орион-128 (1990) -- 8085 (i8080)
ATM Turbo 1/2 (1991) -- Z80
Scorpion ZS-256 (1991) -- Z80
Пентагон-1024SL (2005) -- Z80
ZX Evolution (2009) -- Z80 и FPGA Cyclone
ATM-turbo 3 (2017) -- Z80

Channel F (1976) -- Fairchild F8 эмуляция
Atari 2600 (1977) -- 6502 (W65C816S)
IntelliVision (1979) -- MCP-1600 эмуляция
ColecoVision (1982) -- Z80 и видеочип TMS9928A
NES/Famicom (1983) -- 6502 (W65C816S)
Atari 7800 (1986) -- 6502 (W65C816S)
SEGA MD (1987) -- 68000, Z80
Super NES (1990) -- W65C816S
Dendy (1992) -- UA6527 и видеочип UA6538

Микропроцессоры (CPU):
RCA1802 https://aliexpress.ru/item/32963605765.html
8085 (i8080) https://aliexpress.ru/item/33001064116.html
Z80 https://aliexpress.ru/item/33059762125.html
i8088 https://aliexpress.ru/item/2016570265.html

63C09(MC6809) https://aliexpress.ru/item/4000418163219.html
W65C816S (6502) https://aliexpress.ru/item/32240215825.html
MOS8502(6510) https://aliexpress.ru/item/4001124711919.html
UA6527P https://aliexpress.ru/item/4000830376903.html

TMS9900 https://aliexpress.ru/item/32798292244.html
кр1802вм2, можно найти у российских поставщиков
68010 (68000) https://aliexpress.ru/item/32530678208.html
i80286 https://aliexpress.ru/item/4000197211702.htm

В упрощённом варианте только 3 CPU одновременно, но можно будет их менять на другие, с одновременной заменой кварцевых генераторов и установки другой прошивки в CPLD (Z80 на 8085, только выбрав процессор перемычкой):
Z80 или 8085 https://aliexpress.ru/item/33059762125.html https://aliexpress.ru/item/33001064116.html
W65C816S (6502) https://aliexpress.ru/item/32240215825.html
68H000 (68000) https://aliexpress.ru/item/33013562123.html

Согласование уровней: https://aliexpress.ru/af/74lcx245.html
ОЗУ https://aliexpress.ru/item/4000545530029.html
ПЗУ https://aliexpress.ru/item/4001124017923.html возможны варианты...

Видео и звуковые процессоры (некоторые раритеты имеют завышенную цену, поэтому их приобретение, для меня под вопросом):

TMS9918 и TMS9928 https://aliexpress.ru/item/33027043581.html https://aliexpress.ru/item/32991349674.html
MOS6561и MOS8565 https://aliexpress.ru/item/4000782905939.html https://aliexpress.ru/item/4001124724949.html
MC6845 и MC6847 https://aliexpress.ru/item/4000838349215.html https://aliexpress.ru/item/32881588778.html
V9938 и V9958 https://aliexpress.ru/item/33010933002.html https://aliexpress.ru/item/32518270037.html
UA6538 https://aliexpress.ru/item/33000161944.html

SN76489AN https://aliexpress.ru/item/4000711864701.html
MOS6581 https://aliexpress.ru/item/1005001535575297.html
AY-3-8910 https://aliexpress.ru/item/32855820479.html
YM2164 https://aliexpress.ru/item/32993790338.html
YM2612 https://aliexpress.ru/item/4000830413507.html

и прочие...

На stm32f105 контролер USB OTG и LAN, выполняет роль управляющего монитора.
На FPGA в 2 чипах, соединённых быстродействующим последовательным интерфейсом XC6SLX9-2TQG144C https://aliexpress.ru/item/4000111664619.html реализуется вся остальная логика. В упрощённом варианте процессорный модуль делается на CPLD, от Альтеры или Ксайлинк)

Lethargeek
26.09.2020, 21:19
очевиднейший офтоп в разделе "zx spectrum hardware"
и даже если в перспективе спектрум-совместимо - только в "концепции"

PavelZX
26.09.2020, 22:09
очевиднейший офтоп в разделе "zx spectrum hardware"
и даже если в перспективе спектрум-совместимо - только в "концепции"

Спектрум конечно же будет, плюс Сега, Амига, Эппл и прочее... Пусть модератор перенесёт тему, если я ошибся)

6502, Z80, i8085 и i8088 можно запараллелить по выводам, включать тот, который будет востребован. Надо смотреть, все ли они могут в высокоимпедансное переходить для этого...

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

Может ещё какие-нибудь сопроцессоры добавить, для звука, к примеру... Жду предложений и начну прикидывать схему уже)

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

Ещё идея, поставить панельку для ретро ПЗУ (любого типа) и сделать возможность читать её содержимое, либо однократно, чтоб добавить в коллекцию, либо загружать соответствующую систему с неё)

CLR
26.09.2020, 22:21
На одной жирной фпга стоило и остановиться. Хотя, если есть желание пройтись по россыпям граблей, почему бы и нет?

P.S. Вашу бы энергию, да в мирное русло.

PavelZX
26.09.2020, 22:51
На одной жирной фпга стоило и остановиться. Хотя, если есть желание пройтись по россыпям граблей, почему бы и нет?

P.S. Вашу бы энергию, да в мирное русло.

На жирных FPGA полно проектов, а вот так, чтоб с кучей разных железных процессоров нет. Просто захотелось придумать что-то оригинальное, а когда всё в FPGA и не интересно получается. Потом и стоят такие платы дорого. Из всего что я смотрел, только i8088 дороговат получается. FPGA может даже не надо такую, хотя этот вариант вполне приемлем по цене. Паять тоже её не трудно, не BGA... Не определился только на счёт того, нужно ли встраивать выход на VGA, может достаточно поставить кодёр PAL/NTSC и вывести только композит (RGB на SCART) телевизор в качестве экрана более "лампово"))

tank-uk
27.09.2020, 17:40
ПЗУ https://aliexpress.ru/item/4001124017923.html
это же NAND

andrews
27.09.2020, 17:45
а вот так, чтоб с кучей разных железных процессоров нет
есть! и даже через Tindie продают. RetroShield называется и список процессоров старых там подлиннее. Ну да, подключаются к Arduino только и простейшая модернизация была бы некая плата на FPGA, подсоединенная через USB3 к писишке. Список CPU может быть расширен: TMS9900(99105,99110), MC6809(HD6309),RCA 1802(список неполон). На многих из них были не просто стартовые боарды, но и компьютеры, пользовавшиеся различной степенью популярности и софт к ним.

PavelZX
27.09.2020, 22:02
это же NAND

На STM32 прилично своей флэш на борту и она может быть контроллером NAND. Знаю, что у такой памяти главная особенность это большие объёмы блоков. Впрочем может стоит поставить ещё и Quad SPI небольшого объёма... На МК сделать что-то вроде управляющего терминала, может даже с отдельным экраном, но простым текстовым...

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


есть! и даже через Tindie продают. RetroShield называется и список процессоров старых там подлиннее. Ну да, подключаются к Arduino только и простейшая модернизация была бы некая плата на FPGA, подсоединенная через USB3 к писишке. Список CPU может быть расширен: TMS9900(99105,99110), MC6809(HD6309),RCA 1802(список неполон). На многих из них были не просто стартовые боарды, но и компьютеры, пользовавшиеся различной степенью популярности и софт к ним.

Посмотрел, что это за ретро шильд, там 8-битные вроде только, но тоже интересная штука, в общем на любителя. Микропроцессоры там меняются вместе с шильдой, как я понял) В идее ретро-комбайна задумка в том, чтоб все эти процессоры поставить вместе на одной плате. Пару корпусов не сильно её увеличат, можно попробовать TMS9900 https://aliexpress.ru/item/1000006315812.html и RCA1802 поставить, может ещё какие-то, если удастся их приобрести...

Я, кстати, особо не интересовался раньше историей компьютеров так подробно. А тут почитал и про игровые приставки и ПК 80-90-ых. В Хабаровске возможностей было не много и как у многих тут, первый компьютер у меня был свой именно ZX совместимый, скорее всего ленин-1 какой-то кооперативный. Мне его родители купили в 1992 году, когда я с армии в отпуск приехал домой на пару недель. В отпуск, так просто не отпускали, часть кадрированная была. Но начальник по связи дивизии сделал исключение, так как я отремонтировал радиоаппаратуру стоящую на боевом дежурстве...

Позже я покупал Скорпион-256 плату, делал на ней комп, а затем вскоре продал однокурснику в институте. Ностальгии нет по Спекам, до этого я смог с БК-0010 и ДВК в школе познакомится, потом на УПК с большими и не очень ЭВМ СССР в институте, где оно проходило. До армии ещё работал в том же институте лаборантом, увидел первые IBM-XT. В 1993-1994 у папы на работе появился (AT) 286, а потом я смог уже сам приобрести 486, в 1996-1997 где-то, не помню точно... По игровым приставкам не особо болел, но на SEGA играли с друзьями и даже делали небольшой игровой салон, для детворы, хотя мода тогда на них уже проходила. Пришла пора Sony Playstation. Ни о каких других компьютерах или игровых консолях я не слышал особо, Хабаровск тогда занимался перегоном японских тачек и вырубкой леса, в основном)

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

MC6809P https://aliexpress.ru/item/4000111219300.html на Али есть, а вот RCA1802 не смог найти, наверное большой раритет...

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

Корпус сделать с прозрачной, легко открывающейся крышкой. Сделать какую-нибудь шину, более менее универсальную, хотя бы один слот, но чтоб в него какой-нибудь расширитель можно было ставить. Чтоб на ней можно было ставить платы расширения, к примеру мультикарту с MIDI и другими старыми портами. Кому-то может захочется Floppy и IDE (хотя это не каждому доступно, поддерживать в живом виде раритетные накопители). А с учётом размера комбайна не сложно будет сделать стандартный LPT и порты джойстиков SEGA в базовом варианте)

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

Если сделать пару VGA разъёмов, то, при наличии двух мониторов, можно было бы сравнивать разные, не слишком требовательные к ресурсам системы одновременно и даже футболить между ними какие-то данные, впрочем это наверное лишнее, хотя если вообще ставить VGA разъёмы, то второй такой не слишком много займёт места, даже с резистивным ЦАП, тем более, что выводы с FPGA можно мультиплексировать, если их мало окажется... Да и GPIO нужно для любителей поморгать светодиодом. Гулять, так гулять))

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

В чём особенность такой идеи, как я думаю, в отличии от чисто софтовых эмуляторов, хоть на ПК, хоть на FPGA, что вот как я сейчас познакомился чуть больше с историей развития компьютеров, так и ещё кто-то сможет прикоснуться к этому знанию. Это немного другое, когда видишь корпус процессора, можешь даже осциллографом посмотреть что у него на ножках творится (в системе в лёгкую можно встроить анализатор сигналов, кстати, если мы решим со вторым экраном всё-таки положительно). То есть это может быть не просто игрушка для гиков, а настоящее учебное пособие!

andrews
27.09.2020, 22:07
Ну у этого чела с RetroShield насколько я понял была более скромная цель - быстро "потрогать" старый чип. Работоспособен ли он и попробовать пустить на нем что-то в терминальном режиме. Отсюда и скорости ниже оригинальной и отсутствие видеоконтроллеров.
Вместо достаточно дорогих 6809 можно посмотреть еще HD6309 и кмоп-версию HD63C09.
Да, RCA1802(1805) недешевые, есть на eBay у американских продавцов.

Вообще логичней было бы сделать универсальную плату на FPGA(чтобы иметь в перспективе vhdl образы для всей перефирии 8-биток) и 48(40) ногий сокет с нулевым усилием, чтобы можно было вствалять CPU любой. По сути это универсальный ICE что по мировым ценам стоит недешево. И это весьма затратный проект. Шаг же модернизации идеи г-на с RetroShield относительно недорогой. Потянет не слишком дорогая Alter-а связь с компом и настройку на конкретный CPU и обеспечит отображение всех его регистров, памяти, трассы программ, областей данных, пошаговый режим и точек останова.

PavelZX
28.09.2020, 08:45
Вообще логичней было бы сделать универсальную плату на FPGA(чтобы иметь в перспективе vhdl образы для всей перефирии 8-биток) и 48(40) ногий сокет с нулевым усилием, чтобы можно было вставлять CPU любой. По сути это универсальный ICE что по мировым ценам стоит недешево. И это весьма затратный проект. Шаг же модернизации идеи г-на с RetroShield относительно недорогой. Потянет не слишком дорогая Alter-а связь с компом и настройку на конкретный CPU и обеспечит отображение всех его регистров, памяти, трассы программ, областей данных, пошаговый режим и точек останова.Как ребята сделали три версии "Карабаса", так можно, как вариант, сделать, как минимум, две модификации. Только для 8-бит и более продвинутую на 8 и 16...

Сама по себе идея возникла, когда я прочитал по SEGA 16, что там вместе с Z80 стоит 68000, поэтому сразу резонно возникла идея о совмещении её со спектрумом, в одном проекте. Ну и не просто контролер ввода-вывода на микроконтроллере, а более продвинутый терминал на STM32 со множеством функций, как самостоятельный компьютер, своего рода)

andrews
28.09.2020, 10:34
Здесь другая история. Тогда надо посмотреть на софт, который возможно запускать на этом дополнительном железе, чтобы он был особо ценен и не портирован куда либо еще. Например, делают клоны ранних писишек, если Dosbox кого-то не удовлетворяет по своим возможностям. И эта "фишка" как раз и сделает железо не просто уникальным, но и востребованным.

LeoN65816
28.09.2020, 11:10
Вообще логичней было бы сделать универсальную плату на FPGA(чтобы иметь в перспективе vhdl образы для всей перефирии 8-биток) и 48(40) ногий сокет с нулевым усилием, чтобы можно было вствалять CPU любой.
Модульная ретро-консоль Polymega (https://idpixel.ru/news/179-polymega-modulnaja-retrokonsol-s-podderzhkoj-cd/).

PavelZX
28.09.2020, 13:14
Здесь другая история. Тогда надо посмотреть на софт, который возможно запускать на этом дополнительном железе, чтобы он был особо ценен и не портирован куда либо еще. Например, делают клоны ранних писишек, если Dosbox кого-то не удовлетворяет по своим возможностям. И эта "фишка" как раз и сделает железо не просто уникальным, но и востребованным.

Уникальность такого проекта, пусть пока будет ретро-ПиСи-комбайн, как рабочее название, может быть как раз в возможности совмещать разные и железные, и софтверные компоненты. Я вот почитал про Агат сейчас и про БК-0010, которые в отличии от РАДИО-86РК и специалиста были вполне массовым продуктом, несравнимо конечно же, с зарубежными объёмами, но всё-же... Энтузиасты собирают информацию по крупинкам, о железе и софте. Мне только мельком удалось на Агате позаниматься, была олимпиада по информатике 1988 год, а с БК-0010 и ДВК наоборот занимался относительно много, в том числе и с ЕС ЭВМ чуть позже. Жалко не попадалось хороших учителей, а интернета тогда не было)

На счёт уникальности, как раз наличие встроенного в систему терминала на STM32, который сам по себе будет не слишком сложен для понимания, в отличии от более навороченных систем с Lunix, который так же можно будет программировать. К примеру делать дополнительные программные модули, для эмуляции каких-то железок, которые трудно приобрести. Я просто смотрю, что большинство разнообразных эмуляторов отдельных девайсов делается на разных МК, где ATmega, где PIC, где что ещё более редкое, а тут можно более широкий диапазон устройств делать на единой платформе. Чисто "жирная" FPGA это немного другое, нет модульности, возможности на лету варьировать компоненты системы и многие вещи в МК делаются всё-таки проще, за счёт использования готовых счётчиков ШИМов и прочего обвеса...

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

Чисто практический вопрос возник, кто что посоветует для рисования схемы и последующей разводки платы. Есть архив для EP3C25Q240C8N, в котором библиотечный элемент для множества CADов, я последнее время с ДипТрэйсом занимался, по мелочи с ним удобнее. ОрКАД и Альтиум знакомы, но слишком монструозны кажутся для небольших проектов. Под ДипТрэйс не смог пока разобраться как добавить в библиотеку компонент (не сильно старался правда). Остальные компоненты добавить нетрудно, если нет в библиотеках, единственное что не придерживаясь ГОСТов разных)

Размер платы вроде не слишком большой получается, даже если сразу 8-9 процессоров поставить, хотя надо смотреть ещё по согласованию уровней, смогут ли они совместно висеть на одних выводах шин. Не все конечно скопом, а разделить их на 2-3 группы. Есть ещё вариант, чтоб не зацикливаться на одном многоногом корпусе FPGA, а разделить всё на два корпуса, тогда система будет намного гибче. В данном случае может вместо Альтеры использовать Ксайлинк, который в России мало популярен конечно же, но по цене вполне приемлем...
К примеру, два 144 ногих XC6SLX9 https://aliexpress.ru/item/32898467328.html от Ксайлинка,
либо два EP4CE10 144 ногих https://aliexpress.ru/item/32547807816.html от Алтеры)
Альтера немного дороже, но зато в одном корпусе много вариантов чипа от 3 до 4 циклона, что конечно же привлекло создателя ReVerSe проекта)

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


Модульная ретро-консоль Polymega (https://idpixel.ru/news/179-polymega-modulnaja-retrokonsol-s-podderzhkoj-cd/).

Крутой проект, но заточенный на игровых приставках, с замахом большинство из них охватить. Это немного другое и, как кажется, мне как "советскому нищеброду" будет просто не по карману))

16-битная Нинтендо, в отличии от SEGA-16, это уже более высокий уровень графики, который эмулировать намного сложнее, как и Sony Playstation, здесь пошло уже более сильное различие ПК и игровых приставок, по наличию дополнительных процессоров графики и специализированной памяти... Не любительский уровень, как в плане возможности самостоятельного изготовления, так и программирования)

coffee
28.09.2020, 13:35
Чисто "жирная" FPGA это немного другое, нет модульности, возможности на лету варьировать компоненты системы и многие вещи в МК делаются всё-таки проще, за счёт использования готовых счётчиков ШИМов и прочего обвеса...

Зачем Вам вообще fpga, вы же не эмулировать процессоры собираетесь? Нужна просто glue logic для соединения с RAM, PROM, ну и ещё может видеоконтроллер. Все этот легко влезает в MAX2. Бонусом идёт толерантность к 5В. Т.е. на выход макс конечно даст 3.3в (можно и 5В конечно, если использовать ОК, но и 3.3В достаточно, так как вся древность работает на ttl уровнях и все что выше 2.4в для неё лог.'1'). Накидайте на плату панелек, разведите шины данных, адреса и контрола. Не надо мудрить, втыкайте процы по одному - зачем лишняя нагрузка на шинах? Проект элементарный, правда не совсем ясно зачем это? Я например ностальгирую по z80/i8080 (ZX, MSX и самоделки) и 6502(apple, агат - делал даже векторный сопроцессор для обсчета э/м полей в виде платы расширения под них). Под них что то сваять интересно. А под абстрактый ретро-процессор, который до этого в руках не держал...? Неа.
Но если возьметесь - удачи!

andrews
28.09.2020, 13:37
Что ж, определяйтесь, на этом форуме каждый рано или поздно находит дело по своим интересам, возможностям и финансам.

PavelZX
28.09.2020, 14:14
Зачем Вам вообще fpga, вы же не эмулировать процессоры собираетесь? Нужна просто glue logic для соединения с RAM, PROM, ну и ещё может видеоконтроллер. Все этот легко влезает в MAX2. Бонусом идёт толерантность к 5В. Т.е. на выход макс конечно даст 3.3в (можно и 5В конечно, если использовать ОК, но и 3.3В достаточно, так как вся древность работает на ttl уровнях и все что выше 2.4в для неё лог.'1'). Накидайте на плату панелек, разведите шины данных, адреса и контрола. Не надо мудрить, втыкайте процы по одному - зачем лишняя нагрузка на шинах? Проект элементарный, правда не совсем ясно зачем это? Я например ностальгирую по z80/i8080 (ZX, MSX и самоделки) и 6502(apple, агат - делал даже векторный сопроцессор для обсчета э/м полей в виде платы расширения под них). Под них что то сваять интересно. А под абстрактый ретро-процессор, который до этого в руках не держал...? Неа.
Но если возьметесь - удачи!

Толерантность к 5 вольтам у MAX2, это конечно здорово (не надо преобразователей уровня), но их надо программировать отдельно, потом количество циклов стирания и записи ограничено. То есть вариант с ZIF панелькой и множество процов на выбор уже сильно ограничен будет... FPGA можно перестраивать прям на лету, практически, в этом очень большое преимущество. Для одного семейства хватает MAX2, но вот если нужно будет поддержать две разные платформы одновременно, то уже не получится, не хватит ресурсов. А возможность запуска двух систем уже даёт преимущество для программистов, дебажить программу, к примеру. То есть можно будет что-то делать комфортно, не используя современный комп вообще, только для чтения интернета и различных электронных книг-справочников... Как я писал, помимо просто коллекционирования железок и программ, такой ретро-ПиСи-комбайн может стать очень хорошим учебным пособием. Можно даже будет найти заинтересованных лиц, среди тех, кто преподаёт программирование и робототехнику в разного рода кружках и он-лайн школах)

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

На счёт процессоров 1801ВМx интересно, на сколько доступны они для приобретения. Не хочу обделять ДВК и БК-0010. 1801ВМ2 наверное лучше использовать, там просто добавлены несколько инструкций и с программы для 1801ВМ1 пойдут и на нём. Более поздние, как я понял, более редки...

coffee
28.09.2020, 14:49
но их надо программировать отдельно, потом количество циклов стирания и записи ограничено
переписывал EPM570T144 больше 200 раз - живая.

FPGA можно перестраивать прям на лету
а что это дает?
FPGA = 4 слоя PCB + преобразователи уровня. Ваша плата скорее всего будет больше 10х10см или "бутерброд" из 2х плат. CPLD = 2 слоя. Посчитайте цены.

Для одного семейства хватает MAX2
его хватит под десяток семейств сразу (выбор конкретного проца через свичи).

вариант с ZIF панелькой
ZIF панелька хуже чем куча обычных хороших четко подписанных шелкографией цанговых панелек. Везде земля и питание в разных местах. Электр.ключами их коммутировать нельзя. Реле? свичи? джамперы? Перепутали, забыли скоммутировать - что-то может сгореть. Клок и ресет тоже у некоторых процев с особенностями (например i8080), многие контрол-линии надо подтягивать резисторами к питанию. Универсальная ZIF панелька не так хороша как думается сначала. Увидите.

PavelZX
28.09.2020, 15:40
переписывал EPM570T144 больше 200 раз - живая.

а что это дает?
FPGA = 4 слоя PCB + преобразователи уровня. Ваша плата скорее всего будет больше 10х10см или "бутерброд" из 2х плат. CPLD = 2 слоя. Посчитайте цены.

его хватит под десяток семейств сразу (выбор конкретного проца через свичи).

ZIF панелька хуже чем куча обычных хороших четко подписанных шелкографией цанговых панелек. Везде земля и питание в разных местах. Электр.ключами их коммутировать нельзя. Реле? свичи? джамперы? Перепутали, забыли скоммутировать - что-то может сгореть. Клок и ресет тоже у некоторых процев с особенностями (например i8080), многие контрол-линии надо подтягивать резисторами к питанию. Универсальная ZIF панелька не так хороша как думается сначала. Увидите.

FPGA, это ещё и синтезатор частот, небольшая внутренняя память, которая для того же видео-контроллера пригодится может. В итоге обвеса меньше, чем с CPLD. Можно в 2 слоя под FPGA развести (но размер конечно больше 10*10 получится), бутерброд не хочу, можно плоским шлейфом, если что, пустить сигнал. Прототип вообще хочу сделать сначала на макетках, есть как раз под 144 ноги такие, там можно каждый вывод кондёром или резюком SMD на землю соединить. Поэтому и думаю, что лучше 2 FPGA на 144 ноги ставить, больше частот можно сгенерировать одновременно, больше гибкости по дизайну. Хотя можно и вообще на три маленьких платы в итоге всё развести, но шлейфов соединительных много получится, что мне не нравится...

Использование ZIF панель тоже мне не нравится, как и само по себе втыкание и вытыкание процев постоянное. Лучше конечно же множество панелек с постоянно сидящими в них процами (пока из них не пошёл волшебный дым). Интересно, чтоб процессоры могли быть подключены в любой момент, по управлению с терминала, может даже с учётом состояния регистров и дампом ОЗУ куда-то на флэш. Только надо определится, как их подключать, все по отдельности не прокатит, только если на каждый не ставить по отдельному преобразователю уровня, который сможет в месте с другими собратьями коммутировать процессоры. Самое простое разделить на группы, тогда остановленный процессор просто будет переведён в высокоимпедансное состояние, в данном случае преобразователей уровня будет не так уж много и вообще количество корпусов будет относительно не много)

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

По кр1802вм2 нашёл тему: http://www.forum.pk-fpga.ru/viewtopic.php?f=15&t=5617

Отредактирую первый пост внесу этот процессор, а также MC6809 и TMS9900 в основной список...

PavelZX
28.09.2020, 19:06
Думаю, на счёт связи между собой, если использовать два чипа FPGA, если один будет чисто обслуживать сами процессоры (плюс ОЗУ), которые я пока ещё не решил либо на две группы, или три разделить, проблема не в количестве ячеек, а в возможности нехватки выводов одного чипа FPGA. Самое логичное разделить, по аналогии с современным ПК, на "южный" и "северный" мост, а между ними сделать некую универсальную шину, которая сама по себе много выводов будет занимать. Чтоб количество выводов сократить, сделать передачу по последовательному скоростному протоколу, по аналогии с PCIe 1x, просто может скорость и разрядность не нужны высокие. Со старыми CLPD, кстати, это уже сложнее будет реализовать... Поставить микросхемы ромбиком, где они уголками рядышком примыкают, коротенькие проводники связи между ними. Тут же рядом сделать разъём шины расширения, а в платы расширения вставлять в плату переходник с отдельным чипом CPLD и микросхемами преобразователей уровня, на которой можно реализовать множество вариантов разъёмов расширения, чтоб можно было подключить какие-то уникальные старые платы. Мне нужно научится работать с проектированием под PCIe 1x плат расширения, так заодно потренируюсь на "кошечках"))

Eltaron
28.09.2020, 19:15
Отредактирую первый пост внесу этот процессор, а также MC6809 и TMS9900 в основной список...
Ох, я такой старый, что помню, когда в этом списке было лишь три процессора.

Ты б сделал для начала хоть 6502 (6527) и Z80. Для такой конфигурации хоть немного софта уже есть (https://zx-pk.ru/threads/2846-videoprotsessor-dendy-dlya-sektruma.html?p=44197&viewfull=1#post44197) (ну, 6538 ещё надо). Так никто и не повторил же с 90-х.

PavelZX
28.09.2020, 19:56
Посмотрел открытые корки для шины PCIe 1x в FPGA https://opencores.org/projects/pcie_mini тут для SPARTAN-6 как раз, в них есть начальная поддержка скоростной последовательной передачи, есть ли для Альтеры что-то вроде не знаю...

Прикол, если сделать вообще такое разделение со связью через последовательную высокоскоростную шину, то можно сюда подключать не только плату расширения, но и модуль с ещё какими-то процессорами с ОЗУ. По идее там по звезде соединение, вопрос только в организации арбитража. Тогда всё-таки арбитр поставить нужно в северном мосте и из него вывести точки шины, на подключение плат расширения. Одну для Процессорных плат как минимум, а другую для устройств ввода-вывода. Вроде вполне логично получается)

andrews
28.09.2020, 20:02
TMS9900
The TMS9900 was used in the TI-99/4 and TI-99/4A home computers, современная реинкарнация nanoPEB
6809, 6309 внушительный список компьютеров( более дюжины)
RCA1802 аналогично
просто эти чипы были не распотрошены в странах СЭВ.

Но софта и игр к ним дополна и более! Есть впрочем и эмуляторы.

PavelZX
28.09.2020, 20:06
Ох, я такой старый, что помню, когда в этом списке было лишь три процессора.

Ты б сделал для начала хоть 6502 (6527) и Z80. Для такой конфигурации хоть немного софта уже есть (https://zx-pk.ru/threads/2846-videoprotsessor-dendy-dlya-sektruma.html?p=44197&viewfull=1#post44197) (ну, 6538 ещё надо). Так никто и не повторил же с 90-х.

Хорошо, записываю UA6527, UA6538: https://aliexpress.ru/item/33000161944.html Но про Денди и вправду информации мало, как и по этим процессорам, как я понял это тайваньский клон 8 битной NES...

Eltaron
28.09.2020, 20:19
Хорошо, записываю UA6538: https://aliexpress.ru/item/33000161944.html Но про Денди и вправду информации мало, как и по этому процессору, как я понял это тайваньский клон 8 битной NES...
6538 - это видеопроцессор, он не нужен для работы, но удобно его иметь, чтоб заюзать уже существующий софт.
Сам проц в денди - это 6527, и он мало чем отличается от 6502.

Я это к чему - присоединить два проца к одним шинам относительно просто, но софт-то кто под это будет писать? Особенно для двух параллельно работающих процессоров, как в Сеге. А для связки z80+денди такой софт уже есть (правда, никто не знает, что там вообще на дискетке этой - железку кроме автора никто, похоже, не собрал).

PavelZX
28.09.2020, 20:26
The TMS9900 was used in the TI-99/4 and TI-99/4A home computers, современная реинкарнация nanoPEB
6809, 6309 внушительный список компьютеров( более дюжины)
RCA1802 аналогично
просто эти чипы были не распотрошены в странах СЭВ

Пока поверхностно смотрю, вопрос встанет в наличии самих процессоров и можно ли найти информацию по компьютерам, на них построенным. Не маловажно так же, сохранились какие-то программы для них. Возможно имеет смысл саму платформу разработать, а потом искать информацию и компоненты по миру. Поставить панельку и подключить к группе не сложно, завести отдельный вход для синхронизации и выбора чипа... Но согласен, отдельные уникальные вещи можно подключать к процессорной плате расширения, как я написал выше)

andrews
28.09.2020, 20:30
Пока всё в инете есть, только надо убить уйму времени(чтобы собрать) и нет ни одного сайта, где все по 8-ми 16-битникам в кучу собрано. Мне во всяком случае не встречалось. Софт и игры правда не блещут разнообразием, видимо портировались с платформы на платформу и со всех баблосы собирали предприимчивые авторы.

PavelZX
28.09.2020, 20:49
6538 - это видеопроцессор, он не нужен для работы, но удобно его иметь, чтоб заюзать уже существующий софт.
Сам проц в денди - это 6527, и он мало чем отличается от 6502.

Я это к чему - присоединить два проца к одним шинам относительно просто, но софт-то кто под это будет писать? Особенно для двух параллельно работающих процессоров, как в Сеге. А для связки z80+денди такой софт уже есть (правда, никто не знает, что там вообще на дискетке этой - железку кроме автора никто, похоже, не собрал).

http://dendy.migera.ru/nes/g01.html
https://habr.com/ru/post/397577/

Я впервые всё это читаю, честное слово, очень интересно, спасибо за наводку)

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

Сайт начал делать, чтоб всё собрать в кучу... Чуть позже приглашу туда. Это реально целый пласт культуры, хотя и захватывает всего лишь небольшой промежуток времени, в масштабе истории вообще...

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

Можно, как написал уже, создав платформу, обеспечив железо, попробовать поискать энтузиастов за рубежом, для написания софта. Есть эмуляторы разные, можно на основе анализа их работы попытаться сделать прошивку для FPGA...

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

По Денди и SEGA на вскидку:
https://github.com/Torlus/fpgagen
https://habr.com/ru/post/185872/

PavelZX
29.09.2020, 11:34
The TMS9900 was used in the TI-99/4 and TI-99/4A home computers, современная реинкарнация nanoPEB
6809, 6309 внушительный список компьютеров( более дюжины)
RCA1802 аналогично
просто эти чипы были не распотрошены в странах СЭВ.

Но софта и игр к ним дополна и более! Есть впрочем и эмуляторы.

Есть на Али 6809 https://aliexpress.ru/item/32968281997.html а вот его улучшенного аналога 63C09 от Hitachi не смог найти, также и RCA1802 у китайцев нет, только стучатся к японским и американским товарищам как-то, чтоб и железяки найти и другую информацию)

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

Нашёл 1802 https://aliexpress.ru/item/32963605765.html

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

Видео процессоры TMS9918 https://aliexpress.ru/item/33027043581.html
и UA6538 https://aliexpress.ru/item/33000161944.html

Их можно ставить не в процессорном, а блоке ввода-вывода (северный мост). Кстати, всё больше склоняюсь к двух платной реализации с 144 ногими чипами от Ксайлинка. Не сильно же будет против сообщество, если уйти от Альтеры в таком проекте?)

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

Такой видеопроцессор стоит дороже V9958: https://aliexpress.ru/item/32518270037.html
Музыкальные сопроцессоры есть тоже разные, пока не сильно разбирался. Северный мост также будет снабжён статической ОЗУ (обычной, не двух-портовой)

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

Во как она называется hd63c09 оказывается: https://aliexpress.ru/item/4000418163219.html

andrews
29.09.2020, 11:40
Не сильно же будет против сообщество
при таком проекте на мировой рынок надо ориентироваться. Назвать его можно, кстати, "Ковчег". Только насчет совместной работы надо сильно подумать, если загружать компы целиком, а не одни MCU

PavelZX
29.09.2020, 12:29
Смотрю процессоры MOS8502 https://aliexpress.ru/item/4001124711919.html ценник кусается, MOS6510 ещё дороже, но первая перекрывает её полностью)) Видео и звук от Commodore вообще раритет такой, что ой... Впрочем предусмотреть возможность их подключения можно, а там уж кому как надо. Эмулировать эти чипы в FPGA, или ставить "ламповое" железо)

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

Ковчег... А что, мне нравится, каждой твари по паре))

LeoN65816
29.09.2020, 14:04
Смотрю процессоры MOS8502 https://aliexpress.ru/item/4001124711919.html ценник кусается, MOS6510 ещё дороже, но первая перекрывает её полностью))
Тогда уж лучше WDC65C816S8P-14: умеет 6502, 65C02 и 65C816.

PavelZX
29.09.2020, 14:57
Тогда уж лучше WDC65C816S8P-14: умеет 6502, 65C02 и 65C816.

W65C816S https://aliexpress.ru/item/32240215825.html есть такой, интересный процессор!) Может полностью заменить 6502, но MOS8502 всё-таки немного другой, как мне показалось...

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

Достаточно удобная для пайки и не дорогая FPGA https://aliexpress.ru/item/4000111664619.html кто бы поспонсировал, чтоб закупится и начать эксперименты, преобразователи уровня, память ещё нужны и сами процессоры конечно же с панельками дип-40, под 64 ногие процы цанговые разъёмы можно использовать. Как писал уже, можно на макетных платах собрать прототип... STM32f105 едет где-то, есть девборда STM32f103 такая же по выводам. Могу, с помощью сообщества, сделать прошивку для FPGA и управляющего монитора на STM32f105, мне это интересно, есть время свободное (до весны точно). В общем плане концепт уже сложился...

LeoN65816
29.09.2020, 15:03
По поводу FPGA и удобства макетирования взгляни сюда (https://zx-pk.ru/threads/30964-revers-inzhiniring-uknts-(1515khm1-amp-2-1801vp1-1801vm2).html?p=1081965&viewfull=1#post1081965).

PavelZX
29.09.2020, 15:14
По поводу FPGA и удобства макетирования взгляни сюда (https://zx-pk.ru/threads/30964-revers-inzhiniring-uknts-(1515khm1-amp-2-1801vp1-1801vm2).html?p=1081965&viewfull=1#post1081965).

https://aliexpress.ru/item/4000122321131.html такие макетки есть под 144 ноги в некотором количестве, как писал выше, можно ещё прикупить. Там с обратной стороны можно SMD конденсаторы и резисторы, если нужно на минус цеплять. Питание чипов кварц тоже могу на обратной стороне распаять, то есть готовая девборда получается и компактная, к тому же)

LeoN65816
29.09.2020, 15:47
Вот смотри. 144 копыта, из них останется доступных юзерпинов меньше 100 (для EP4CE10 их будет 91). Это очень мало для такого проекта (ну к такому выводу ты еще сам придешь в будущем). А еще на этой платке надо три питальника приделать, флэшку, генератор, JTAG. А футпринты под SMD конденсаторы и резисторы на землю в данном случае совершенно бесполезны.
На указанных мной макетках это все уже есть, и юзерпинов намного больше.

PavelZX
29.09.2020, 18:29
Вот смотри. 144 копыта, из них останется доступных юзерпинов меньше 100 (для EP4CE10 их будет 91). Это очень мало для такого проекта (ну к такому выводу ты еще сам придешь в будущем). А еще на этой платке надо три питальника приделать, флэшку, генератор, JTAG. А футпринты под SMD конденсаторы и резисторы на землю в данном случае совершенно бесполезны.
На указанных мной макетках это все уже есть, и юзерпинов намного больше.

Смотрю думаю пока, побюджетнее надо что-нибудь... Наиболее интересным считаю этот чип (недорого, но достаточно современно и много исходников можно взять в зарубежных проектах): https://ruecm.forum2x2.ru/t275-topic Spartan-6. https://vrn.terraelectronica.ru/pdf/show?pdf_file=%252Fz%252FDatasheet%252FX%252FXB-XC6SLXX-TQ144.pdf У него 102 ножки ввода-вывода вроде бы. Хочу развести на два чипа, связь между ними будет занимать 8 выводов (4 диф. канала), то есть (102-8)*2=188. Так как преобразователи уровня обязательны, то их можно использовать для коммутации групп процессоров, на южном чипе и видео-звуковых микросхем на северном)

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

Я сам облизываюсь на эти девборды с жирными FPGA, но лучше 10 чипов купить сейчас, всё остальное уже есть, по цене меньше чем 2 девборды выйдет. Связь между чипами мне всё равно нужно разрабатывать, и в этом проекте даёт преимущество и на будущее пригодится. Прошивку думаю грузить через контроллер на STM32, поэтому флешка рядом с чипом не нужна...

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

Ещё немного фантазии. Интересно, если какой-нибудь аналог браузера для ретро-ПК, такой чтоб поддерживал несколько платформ, который можно было портировать на большинство других, которые будут работать в "Ковчеге"? Если сделать, чтоб из монитора можно было заходить на сайт, скачивать варианты прошивок и через любую из запускаемых платформ читать документацию на нём, скачивать программы и игры. Через него запускать игры на двоих и более игроков, в вроде комнат ожидания. Можно сделать специальный сайт, который можно будет посещать через любые современные средства, а так же из "Ковчега"... Самое прикольное, если можно будет какие-то игры запускать на разных платформах. Можно было бы подумать о подобных вариантах, доработав схожие игры до использования соединения через интернет)

omercury
29.09.2020, 20:23
По поводу FPGA и удобства макетирования взгляни сюда (https://zx-pk.ru/threads/30964-revers-inzhiniring-uknts-(1515khm1-amp-2-1801vp1-1801vm2).html?p=1081965&viewfull=1#post1081965).

Гумно несусветное.
Вот на этом дизайне (с обратной стороны практически сплошная земля) НИ ОДНА из ТРЁХ памятей не завелась.
7358773590
По второй ссылке ничего не скажу - не пробовал.

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


Посмотрел открытые корки для шины PCIe 1x в FPGA https://opencores.org/projects/pcie_mini тут для SPARTAN-6 как раз, в них есть начальная поддержка скоростной последовательной передачи, есть ли для Альтеры что-то вроде не знаю...

Ну так и сравнивай с аналогичным от конкурентов - cyclone-v.
Всё есть.

andrews
29.09.2020, 20:43
На Aliexpress есть недорогие макетки на XC6SLX16-2FTG256C (https://aliexpress.ru/item/32830041809.html?spm=a2g0o.productlist.0.0.227823d 7ikVs1L&algo_pvid=9aff211a-8118-456a-9753-49182fec663c&algo_expid=9aff211a-8118-456a-9753-49182fec663c-8&btsid=0b8b034e16014011802514887e8a52&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_) а на Cyclone v?

omercury
29.09.2020, 20:56
На Aliexpress есть недорогие макетки на XC6SLX16-2FTG256C (https://aliexpress.ru/item/32830041809.html?spm=a2g0o.productlist.0.0.227823d 7ikVs1L&algo_pvid=9aff211a-8118-456a-9753-49182fec663c&algo_expid=9aff211a-8118-456a-9753-49182fec663c-8&btsid=0b8b034e16014011802514887e8a52&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_) а на Cyclone v?

Так и смотри в первоисточнике
Spartan 6
https://aliexpress.ru/item/1000006622145.html?spm=a2g0v.12010612.8148356.12.5 9e3b6dfUhV80B&_ga=2.73660635.813393880.1601399080-278825636.1591171170
Ток у них DDR3, а это фиаско)))
Циклон 5
https://aliexpress.ru/item/1000006622149.html?spm=a2g0v.12010612.8148356.2.1c 39540doLwdmf&_ga=2.43710956.813393880.1601399080-278825636.1591171170
Весьма, кстати, неплохая, игрушка.
По начинке сопоставима с DE10-Lite
https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1021

andrews
29.09.2020, 21:27
Да надо еще понять куда такую мощь использовать? Павел обещал вроде список всех компов представить где-то, под которые софт можно будет запускать. Если MCU использовать родные, чиповые, то на FPGA остается их окружение и какой-то современный сервис. Если например можно будет загружать с некоего сервера и программы и силиконовые программы с конфигурациями, то нужно или Ethernet или wifi. Потом пока неясны многие параметры проекта.
Как будет определяться чип MCU? Если будет базовая плата и адаптеры к ней с каким-то регистром, определяющим тип MCU, то это наверное позволит избежать трудностей, которые возникнут, если на одной плате будет сокет с нулевым усилием и тумблеры для переключения. Если предполагается работа тандемов MCU, то что будет с видеосигналом и что будут две картинки по пол-экрана или два моника? Честно говоря мне это не совсем понятно. Как это например 6502+z80( тем более если не будет режима "конструирования железа", чтобы не готовый комп загружался)

PavelZX
29.09.2020, 22:12
Ну так и сравнивай с аналогичным от конкурентов - cyclone-v.
Всё есть.

Смотрю чипы, которые можно развести на 2-ух сторонней плате и припаять самому (не только мне, но и большинству других), поэтому и хочу сделать связку из 2-ух 144 ногих Спартанов, по 9 кило ячеек. Трудность связки чипов между собой наоборот придаёт некий спортивный интерес и есть даже представление как это сделать, что для эмулируемых ПК и приставок не будет заметно...

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

Смотрю есть проект в FPGA для Super NES: https://github.com/srg320/FpgaSnes интересно, можно ли его переработать используя "железный" процессор W65C816S, который в оригинале как-то там расширен. Видеосистема там навороченная и не смог навскидку, можно ли её найти в "железе", не разобрался ещё с тем как там звук реализован. Вообще нужно ли этой приставкой заморачиваться вообще, либо оставить на будущее)

omercury
29.09.2020, 22:50
Если будет базовая плата и адаптеры
Да ничего не будет.
Это сферический конь, попытка (притом чисто теоретическая) объять необъятное.

По-хорошему, что здесь нужно - это DE-10-nano-soc - там и достаточная для ретро логическая ёмкость FPGA и минимально достаточный набор интерфейсов через HPS. И по деньгам и по временнЫм затратам оптимальное решение.

Но не треснет ли скилл?

...и проект такой уже есть...

PavelZX
29.09.2020, 23:29
Да надо еще понять куда такую мощь использовать? Павел обещал вроде список всех компов представить где-то, под которые софт можно будет запускать. Если MCU использовать родные, чиповые, то на FPGA остается их окружение и какой-то современный сервис. Если например можно будет загружать с некоего сервера и программы и силиконовые программы с конфигурациями, то нужно или Ethernet или wifi. Потом пока неясны многие параметры проекта.
Как будет определяться чип MCU? Если будет базовая плата и адаптеры к ней с каким-то регистром, определяющим тип MCU, то это наверное позволит избежать трудностей, которые возникнут, если на одной плате будет сокет с нулевым усилием и тумблеры для переключения. Если предполагается работа тандемов MCU, то что будет с видеосигналом и что будут две картинки по пол-экрана или два моника? Честно говоря мне это не совсем понятно. Как это например 6502+z80( тем более если не будет режима "конструирования железа", чтобы не готовый комп загружался)

Мне тоже пока не ясны параметры проекта явно))

Пока точно уверен, что вариант с ZIF-панелью зло.
-- Лучше сразу множество цанговых панелек со всеми заявленными на данный момент 11 процессорами, примерно поровну поделёнными на 3 группы.
-- Сеть LAN, через неё интернет и может ещё с кем-то связаться, может чтоб можно было видеть сетевой диск, вафля в ретро-комбайне как-то уж слишком модерново смотрится.
-- Для двух систем одновременно два экрана, однозначно (телик и монитор, к примеру).
-- Режим конструирования железа, классная идея!

Список ПК и консолей (будет корректироваться) и применяемые микросхемы:

COSMAC VIP (1977) -- RCA1802
Telmac 1800 (1977) -- RCA1802
Tandy TRS-80 (1977) -- 63C09
Dragon 32 (1982) -- MC6809
Atari ST (1985) -- 68000
Acorn Electron (1983) -- 6502 (W65C816S)
Sinclair ZX80/81 (1981) -- Z80
Texas Instruments TI-99/4A (1981) -- TMS9900 и видеочип TMS9918
Amstrad CPC 464 (1984) -- Z80
Sharp X68000 (1987) -- 68000
Apple Macintosh (1984) -- MC6809
MSX и MSX2 (1983) -- Z80 и видеочип TMS9918
Commodore Vic-20 (1981) -- 6502 (W65C816S)
NEC PC-88 (1981) -- Z80
Atari 800 (1979) -- 6502 (W65C816S)
BBC Micro (1981) -- 6502 (W65C816S)
Apple II (1977) -- 6502 (W65C816S)
ZX Spectrum 48k и 128k (1982) -- Z80
Commodore 64 (1982) -- MOS8502 (6510)
Commodore Amiga (1985) -- 68000
IBM PC (1981) -- i8088
Вектор-06Ц (1986) -- 8085 (i8080)
Ириша (1985) -- 8085 (i8080)
Корвет (1985) -- 8085 (i8080)
ПК-01 Львов (1986) -- 8085 (i8080)
Орион-128 (1990) -- 8085 (i8080)
ПК8000 (1985) -- 8085 (i8080)
Радио-86РК (1986) -- 8085 (i8080)
Специалист (1985) -- 8085 (i8080)
Поиск (1988) -- i8088
АГАТ-9 (1984) -- 6502 (W65C816S)
Ямаха КУВТ и КУВТ2
Электроника БК 0010-01 (1989) -- кр1802вм2
ДВК-2М (1989) -- кр1802вм2
Электроника МС 0511 (УКНЦ) (1987) -- кр1802вм2 - 2 шт.

NES/Famicom (1983) -- 6502 (W65C816S)
Dendy (1992) -- UA6527
SEGA MD (1987) -- 68000, Z80

coffee
30.09.2020, 00:53
"Не пора ли, друзья мои, нам замахнуться на Вильяма, понимаете ли, нашего Шекспира?"(С). Я про intel если что - плохо представлен.
А чего мелочиться то? При таком нехилом списке. Давайте уж весь Интел до пентиума в список внесем.
:v2_dizzy_indy:
При том что даже MSX2 в нем нет...

LeoN65816
30.09.2020, 01:18
"А сегодня в завтрашний день не все могут смотреть. Вернее, смотреть могут не только лишь все, мало кто может это делать." ;)

CLR
30.09.2020, 03:55
Затея представляется мне как аналог тёплых ламповых усилителей для эстетов, за килобаксы, с торчащими из них тёплыми лампами. Только тут будут торчать тёплые ламповые микросхемы. Но это если без корпуса, иначе уникальность будет неочевидна.

PavelZX
30.09.2020, 09:38
Затея представляется мне как аналог тёплых ламповых усилителей для эстетов, за килобаксы, с торчащими из них тёплыми лампами. Только тут будут торчать тёплые ламповые микросхемы. Но это если без корпуса, иначе уникальность будет неочевидна.

У меня уже была такая мысль... Сделать металлический блестящий корпус (хромированный или из нержавейки, а для бедноты алюминиевый профиль и анодирование) и сверху открывающуюся стеклянную крышку, с фрезеровкой с внутренней стороны!))

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


"Не пора ли, друзья мои, нам замахнуться на Вильяма, понимаете ли, нашего Шекспира?"(С). Я про intel если что - плохо представлен.
А чего мелочиться то? При таком нехилом списке. Давайте уж весь Интел до пентиума в список внесем.
:v2_dizzy_indy:
При том что даже MSX2 в нем нет...

Я не стал пока расписывать многочисленные клоны ZX и MSX...

На перспективу, вернее как расширение (порты для этого будут предусмотрены), PC AT и Super NES)

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

Первый пост темы отредактировал, указав там короткий список, без многочисленных клонов. Super NES и IBM AT, не стал пока включать в него, по первой у меня пока недостаточно информации. А вот IBM AT только с отдельной процессорной платой расширения, что естественно оставим на потом, как венец эры 16-ти бит...

Ещё вопрос возник, надо посмотреть внимательно, на сколько сильно отличаются 68000 и 68010, корпус вроде похож)

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

Внутренняя шина и шина расширения будет иметь в своей основе 32 бит (внешняя связь высокоскоростная последовательная), так же будет возможность расширять ОЗУ, чтоб работало также на 32 бит. Для того, чтоб можно было параллельно запускать две 8/16-ти битные системы. Управляющий системой процессор 32-битный. Поэтому, на процессорную плату расширения тоже можно будет ставить процессоры на 32 бита, в отдалённой перспективе, но они не смогут работать в тандеме с подобными себе одновременно...

LeoN65816
30.09.2020, 11:26
PavelZX, скажи, пожалуйста, ты хоть какую-нибудь систему хоть на каком-нибудь процике разрабатывал/собирал? Подчеркну: не на микроконтроллере, а на микропроцессоре. Можешь показать результат?

Eltaron
30.09.2020, 14:10
PavelZX, скажи, пожалуйста, ты хоть какую-нибудь систему хоть на каком-нибудь процике разрабатывал/собирал? Подчеркну: не на микроконтроллере, а на микропроцессоре. Можешь показать результат?
Ну вот что вы так сразу? Обычная осенняя тема. Весеннее-то обострение на форуме нам принесло лишь ёжика с трисотрифонией, так что нужно только радоваться, что осеннее такое продуктивное :)

andrews
30.09.2020, 14:57
Цыплят по осени считают. Дождемся осени следующей, поскольку здесь внушительный объем работы. Хотя я все же за вариант "базовая плата" +2 стыка под адаптеры конкретных MCU(если непременно нужны 2 процессора для одновременной работы). Сразу все ставить на одну плату- мало найдется желающих повторить, не говоря уже о купить. Еще не все вспомогательные микросхемы для каждого компьютера есть в виде готовых vhdl, значит, чтобы заливать их в FPGA придется попахать. А на адаптер можно поставить не только MCU. По поводу того, что проект технически нереализуем я бы не стал так категорично высказываться. Не суперкомпьютер ведь сотнетысяче-ядерный в конце концов.

LeoN65816
30.09.2020, 15:37
...+2 стыка под адаптеры конкретных MCU...

...А на адаптер можно поставить не только MCU...
"Дьявол кроется в деталях." (https://ru.wikipedia.org/wiki/Дьявол_в_деталях)
MCU (https://ru.wikipedia.org/wiki/Микроконтроллер) - Micro Controller Unit, микроконтроллер.
MPU (https://en.wikipedia.org/wiki/MPU) - Micro Processor Unit, микропроцессор, синоним CPU (Central Processing Unit).
Вроде и мелочи, но сразу видно "who is who"...
Двухпроцессорность (с разными проциками), конечно, теоретически возможна, и практически реализуема (например, Истра-4816 (https://ru.wikipedia.org/wiki/Истра-4816)), но это очень и очень сложно и монструозно...

andrews
30.09.2020, 16:07
Ну если уж на то пошло куда Вы отнесете 8085? Или прочие микропроцессоры у которых в одном чипе, кроме собственно процессора есть кое-что еще(контроллер прерывания, тактовый генератор, последовательный порт - дальше больше, у некоторых и видеоконтроллер на том же чипе). Я не помню на каком поколении вместо MPU стали употреблять термин MCU, хотя формально Вы конечно правы.

В "Ковчеге"- "The Ark"e речь идет скорее не о двухпроцессорности, а о "двухкомпьютерности"(analog того, что у вас на столе два 8-битника и два моника, ну или телек с экраном "два в одном", если не добавить в софт опции конструирования своего компа( тогда действительно можно конструировать железяку более гибко). Такие штуки часто вытворяли и известные производители, чтобы расширить базу одновременно используемого( непортированного софта). Удобно, кстати, как раз для портирования. Были и неравноценные тандемы типа Искра-226( прототип какой-то там Wang). В котором основной проц был реализован на "секционниках" и ассемблер был обычному юзеру недоступен, только Basic, а дополнительные модули были на 8080, но в состав ПО не входило кросс-ассемблера к ним и приходилось вставлять hex-коды прямо в Basic.

Собственно же микроконтроллеры имеют как правило(хотя не обязательно) цап, ацп и прочие "управляющие/датчики" входы/выходы и это часто не позволяет использовать высокую частоту для собственно цифровой их части.

PavelZX
30.09.2020, 16:33
"Дьявол кроется в деталях." (https://ru.wikipedia.org/wiki/Дьявол_в_деталях)
MCU (https://ru.wikipedia.org/wiki/Микроконтроллер) - Micro Controller Unit, микроконтроллер.
MPU (https://en.wikipedia.org/wiki/MPU) - Micro Processor Unit, микропроцессор, синоним CPU (Central Processing Unit).
Вроде и мелочи, но сразу видно "who is who"...
Двухпроцессорность (с разными проциками), конечно, теоретически возможна, и практически реализуема (например, Истра-4816 (https://ru.wikipedia.org/wiki/Истра-4816)), но это очень и очень сложно и монструозно...

Как раз вот буквально искал российские разработки на К1810ВМ86... https://www.computer-museum.ru/histussr/istr4816.htm интересный компьютер) Что-то вроде того пытался школьником (1988-1889) разработать, имея на руках только книжку описывающую 1810 комплект. Были книги по Электронике-60 и много лит-ры по микроэлектронному производству. Рядышком был завод, назывался "Сплав", занимались там изготовлением КМОП микросхем. Мечтал выучится и пойти туда работать инженером, разрабатывать новые технологии. В том числе как научится делать быстрые и объёмные микросхемы памяти. Но перестройка завела страну в пропасть...

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

Да, ключевое будет именно двух системность. Хотя некоторые системы будут иметь больше одного MPU... А управляющий контроллер будет третьим, который будет со своей стороны тоже CPU)

LeoN65816
30.09.2020, 16:43
Ну если уж на то пошло куда Вы отнесете 8085? Или прочие микропроцессоры у которых в одном чипе, кроме собственно процессора есть кое-что еще(контроллер прерывания, тактовый генератор, последовательный порт - дальше больше, у некоторых и видеоконтроллер на том же чипе).
Цитата (https://ru.wikipedia.org/wiki/Микроконтроллер): "Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи." Неужели не очевидно?


Как раз вот буквально искал российские разработки на К1810ВМ86...
ЕС-18хх, ИЗОТ-103х, Поиск, Электроника МС-1502 и т.д.

PavelZX, будь добр, ответь на вопрос (https://zx-pk.ru/threads/32274-ne-spekom-edinym-ili-retro-kombajn.html?p=1082933&viewfull=1#post1082933).

PavelZX
30.09.2020, 17:34
PavelZX, скажи, пожалуйста, ты хоть какую-нибудь систему хоть на каком-нибудь процике разрабатывал/собирал? Подчеркну: не на микроконтроллере, а на микропроцессоре. Можешь показать результат?

Вопрос, как мне показалось, из разряда, куда ты с "немытым рылом в калашный ряд". И несколько "бывалых" поблагодарили за него, в подтверждение, что это не вопрос, а скорее всего утверждение. Мол ты нам покажи сначала, что-то работающее, разработанное тобой, а мы оценим и, возможно начнём к тебе относится нормально, а не как к очередному залётному, с "обострением". Я уже, вскользь ответил, что в 16-17 лет, знал основы цифровой электроники. Но в КБ не работал, учится, после армии, пошёл на механика, так как автобизнес тогда был перспективнее (1993-1994). А телевизоры и прочее я и так научился ремонтировать, позже работал по КИПиА и автоэлектриком-диагностом, в промежутках пытаясь замутить очередной бизнес...

Какое-то время я вообще хотел забросить электронику, а программированием почти не занимался. Занимался малоэтажным строительством, освоил кучу строительных специальностей, работал на спецтехнике, проектировал собирал и варил металлоконструкции, работал с деревом и по отделке. В 2007 вернулся к программированию, а в 2015 встал вспоминать и осваивать новое по электронике, что в прошедшие годы выхватывал лишь мельком. Нет целиком разработанного и собранного мной устройства на микропроцессоре, ни одного. Не было такой необходимости)

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



ЕС-18хх, ИЗОТ-103х, Поиск, Электроника МС-1502 и т.д.
Вы невнимательны сударь, я спрашивал о российских, не стран СЭВ разработках и именно вм86, а не вм88)

LeoN65816
30.09.2020, 17:50
PavelZX, не сочти за обиду, позволь дать тебе совет: разработай и собери какую-нибудь микропроцессорную систему на любом процессоре. Особенно желательно с видеоконтроллером. Разработай, собери, отладь. Сначала на мелкосхемах малой степени интеграции. Затем переведи её на PAL/GAL. Затем переведи её на CPLD/FPGA. Затем на процессоре другого семейства. Также на мелкологике, затем PAL/GAL, затем CPLD/FPGA. Затем задумайся, насколько они "схожи". И можно ли их "совместить". "Теория" - это, конечно, хорошо. Но опыт очень важен в этом деле.
PS. Ни в коем случае не хотел тебя обидеть.

PavelZX
30.09.2020, 18:41
PavelZX, не сочти за обиду, позволь дать тебе совет...

Это не обида, а условный рефлекс. Мир?

Совет предполагает длинный путь, не спорю совет хороший, но не всем подходит... Я не просто хочу собрать схему на микропроцессоре, а вообще перевернуть современное представление о компьютерах, впрочем к данной теме это не относится. "Ковчег" задуман для разнообразия, чтоб немного потренироваться, как раз набраться практики. Для меня любой чип не чёрный ящик, поэтому не надо до понимания доходить через кучу граблей. Да, много мелочей я не проговариваю сейчас. Важно сформировать архитектуру проекта и, с другой стороны, понять, какая может быть целевая аудитория, на чём можно сделать акцент. Чтоб не просто небольшую группу заинтересовать, на год-два, а чтоб можно было привлечь разных людей. Чтоб это дело могло затянуть на долго)

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


В "Ковчеге"- "The Ark"e речь идет скорее не о двухпроцессорности, а о "двухкомпьютерности"(analog того, что у вас на столе два 8-битника и два моника, ну или телек с экраном "два в одном", если не добавить в софт опции конструирования своего компа( тогда действительно можно конструировать железяку более гибко). Такие штуки часто вытворяли и известные производители, чтобы расширить базу одновременно используемого( непортированного софта). Удобно, кстати, как раз для портирования. Были и неравноценные тандемы типа Искра-226( прототип какой-то там Wang). В котором основной проц был реализован на "секционниках" и ассемблер был обычному юзеру недоступен, только Basic, а дополнительные модули были на 8080, но в состав ПО не входило кросс-ассемблера к ним и приходилось вставлять hex-коды прямо в Basic.
Вот как раз думаю, как может одна система "видеть" другую и взаимодействовать. По режиму "конструктора" отдельный вопрос, я пока не готов его рассматривать глубоко. Управлять "Ковчегом" будет МК на STM32, скорее всего на ней будет запущена MBED OS https://habr.com/ru/post/420435/ но помимо того нужно, чтоб запускался процесс арбитража сообщений, между разными системами. Формат этих сообщений должен быть достаточно простой, чтоб можно было в самом примитивном компьютере записать и прочитать несколько байтов, а при необходимости организовать потоковую передачу небольшого файла...

andrews
30.09.2020, 19:18
Как раз вот буквально искал российские разработки на К1810ВМ86
моя хозрасчетная группа как раз разрабатывала такую плату под Multibus II в 1997 году с RMX86, но потом заказчик перешел на 80186ex, а мы ориентировались на платы Intel SBC и их российский аналог МСУВТ В9 ( разработка ВНИИЭМ 1987 год)

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


"Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи." Неужели не очевидно?
ну это ответ для школьников. Даже первые однокристаллки MCS48 могли расширяться, а некоторые "расширенные процессоры" 80186EX, 80386EX и чипы AMD хотя имели память на кристалле, тем не менее не считались микроконтроллерами. Различие скорее именно в функциональности и наличии в чипе аналоговых преобразователей, для создания на их основе систем управления, а не компьютеров ( хотя DAC можно использовать для синтеза звука, а ADC для подключения микрофона). А сейчас все процессоры, используемые в смартфонах по сути "системы на кристалле". Поэтому правильнее называть их SoC, но можно и MCU.

PavelZX
30.09.2020, 20:08
Так, продолжу теоретизировать...

Практически на 100% сошёлся на том (запустив многоуровневое моделирование в своей голове), что "Ковчег" будет состоять из двух плат, с одной ПЛИС на каждой. Но буду разрабатывать два варианта "южного моста". Основной, 3 группы с 12 процессорами на FPGA (мне эта цифра понравилась) и упрощённый, на 3 процессора на CPLD, но за счёт прошивки эти процессоры можно будет менять. Северный мост будет один общий вариант, хотя конечно прошивка на нём будет вообще меняться в любой момент, по мере необходимости)

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

Южный мост будет содержать не только синтезатор частот, разводку на 3 группы процессоров (с выбором процессоров, а также коммутацией их, в зависимости от выбранной конфигурации) и оперативную память, но и канал связи с северным мостом, а также монитор питания и температуры процессоров, для чего может потребоваться интегрировать туда ядро простого МК. Естественно, что в упрощённом варианте всего этого не будет, на плате потребуется предусмотреть место для генераторов с делителями, для синхронизации процессоров, чтоб не тянуть синхронизацию с платы северного моста...

omercury
30.09.2020, 20:17
разработай и собери какую-нибудь микропроцессорную систему на любом процессоре. Сначала на мелкосхемах малой степени интеграции. Затем переведи её на PAL/GAL. Затем переведи её на CPLD/FPGA.
Типа - если уж трахаться, то сразу по-настоящему)))

Тут уже мелькал STM32, вот на нём в связке с FPGA(чтоб не биться в самом начале с траблами трассировки , схематический ввод вполне позволяет эмулировать мелкологику) и можно начать.
Завести через FSMC память, несколько внешних устройств (да то же видео) и посмотреть, что из этого получится.
Добавить второй STM и тоже через FSMC. Заставить их работать одновременно и видеть друг друга.
Потом вспомнить про десяток+ вышеперечисленных процов.
Заодно оценить перспективность в этом деле TQFP корпусов...

Потом ещё раз вспомнить про вышеперечисленные процессоры, выбрать , ну пусть пару из них, хоть кому-нибудь интересных, и тогда уже сделать что-нибудь.

PavelZX
30.09.2020, 20:35
Северный мост будет содержать арбитр шины, которая будет реализована по аналогии с ГигабитЛан и PCIe, устройства к нему будут подключаться звездой. Основной вариант южного моста будет использовать два канала, упрощённый один, по два канала пойдут на платы расширения и два на внутренние устройства. Каждый канал будет способен передавать и принимать от 8 до 32 бит, но не смотря, что каналы будут передавать данные последовательно, эмулируемые устройства будут видеть это просто как соединение через небольшую (для ретро систем) задержку установки сигнала. С учётом, что видео и звуковые процессоры будут на северном мосту, задержки не будут сказываться на выводе сигнала на монитор или телевизор, а также генерацию звука)

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


...
Тут уже мелькал STM32, вот на нём в связке с FPGA
...

Практически да, так и есть, северный мост будет сам по себе самодостаточен, можно начинать с него всё дело. Для начала, чтоб МК "увидела" клавиатуру USB, а FPGA вывела какой-то текст на экран, естественно чтоб это всё заработало в связке)

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

Процессор придёт, я тут же займусь программой для него, чтоб можно было клавиатуру подключить, но в качестве FPGA придётся старой девбордой пользоваться на 2 циклоне, всё равно я собирался её в дело пустить, что валяется просто так...

omercury
30.09.2020, 20:55
Северный мост будет содержать арбитр шины, которая будет реализована по аналогии с ГигабитЛан и PCIe, устройства к нему будут подключаться звездой. Основной вариант южного моста будет использовать два канала, упрощённый один, по два канала пойдут на платы расширения и два на внутренние устройства. Каждый канал будет способен передавать и принимать от 8 до 32 бит, но не смотря, что каналы будут передавать данные последовательно, эмулируемые устройства будут видеть это просто как соединение через небольшую (для ретро систем) задержку установки сигнала.
Любой компьютер - это в первую очередь шина (адреса, данных + управляющие сигналы). Вот её содержимое и будет передаваться в обе стороны. Всегда одинакового размера. На выход просто в белый свет, а на вход... вот тут арбитр и должен определить приоритеты.



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



Для начала, чтоб МК "увидела" клавиатуру USB
Дык OTG разве не в STM ?
Зачем ему FPGA?

PavelZX
30.09.2020, 21:21
Дык OTG разве не в STM ?
Зачем ему FPGA?

Главное всё же, само по себе, всё это в связке увидеть, что я что-то набираю на клавиатуре и это уже на экране появляется, а не в терминале на ПК)

Сразу надо будет сделать управляющий монитор, возможно взять систему команд, привычную по старым системам, что-то вроде CP/M или может какие ещё варианты посоветуете. Ничего такого готового для STM32 не знаю точно, да и не нужно в принципе, сами можем что-то замутить. Не боги горшки ожигают...

coffee
30.09.2020, 21:22
Зачем плодить лишние сущности!? GLan, PCIe, северный/южный мост, 32-битные шины... Зачем всё это (без опыта)? Сделайте для начала плату хотя бы для 5 процессоров и связующую логику (ram, prom, video)? Зачем несколько одновременно работающих процев разных видов!? Если бы Вы сделали бы хоть один клон ретрокомпа (без обид плиз), то поняли бы что главное не подключить и запустить проц, главное - "обвязка"!!! ZX, MSX, Apple/Агат и проч. - не просто процессоры, а сложные системы. Вы хотите избежать трудностей в этом деле за счёт чужого hdl кода? Ну так зачем вообще тогда вам " железный" cpu? Почему бы не закопастить hdl процев и обойтись без проца оригинала? По сложности чипы Z80 и V9938 (msx2) одного порядка (а для понимания - последний даже сложнее). Чем последний неугодил и сойдёт в виде кода vhdl, а первый "тёплый и ламповый" - оригинальный? На самом деле про любую систему можно спросить о том же?

PavelZX
30.09.2020, 21:43
По сложности чипы Z80 и V9938 (msx2) одного порядка (а для понимания - последний даже сложнее). Чем последний неугодил и сойдёт в виде кода vhdl, а первый "тёплый и ламповый" - оригинальный? На самом деле про любую систему можно спросить о том же?
Вы не внимательны! Я же в первом посту написал, что отдельно будут "железные" CPU, так и отдельно "железные" видео и звуковые процессоры. Первые вокруг южного моста, остальные вокруг северного... Там я написал V9958 только, он в msx2+ ставился. А уже получится его приобрести, или придётся довольствоваться эмуляцией, это уже зависит от финансовых возможностей)

Все эти сложности, для модульности "Ковчега" и возможности расширения (а есть ли у меня опыт, или нет, посмотрим на сколько это важно)...

andrews
30.09.2020, 21:54
Не совсем конкретно в тему, но востребованная на мировом рынке халтурка и с тем же подходом в качестве проца 386ex
https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:sbc-386ex:rev2.0
сами чипы есть на ebay и алике по 500 руб. и дешевле, а вот плата сложная (https://www.ebay.com/itm/SBC-386ex-Leerplatine-fur-Retro-Computer-inkl-2-CPU-Adapter-MicroSD-Sockel/233644605531?hash=item36664dc05b:g:wXYAAOSwvjRfBwU L) 2800 руб. без комплектухи. Можно ее упростить за счет FPGA и снизить стоимость компа? На ней тогда можно запускать огромное количество старых дос-овских игр и эмуляторов.

PavelZX
30.09.2020, 22:17
В северном мосту хочу сделать возможность анализа внутренних сигналов, чтоб можно было на управляющем компьютере (реализованном на STM32), диагностировать взаимодействие разных эмулируемых в FPGA "сложных систем" ретро компьютеров. На таком же принципе хочу попробовать реализацию режима "конструктора". Менять "на лету" адресацию, вплоть до того, что менять узлы местами. Изменять последовательности (фазу) тактовых и прочих управляющих сигналов... Это мне как раз самое интересное реализовать, а не статическую реплику (клон) одного из компьютеров. А вот по нюансам отдельных версий систем буду спрашивать вас, тех кто "болеет" в каком-то одном направлении)

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


Можно ее упростить за счет FPGA и снизить стоимость компа? На ней тогда можно запускать огромное количество старых дос-овских игр и эмуляторов.
Ног у 386 не так уж много и память эта не сильно критична к разводке, наверное можно заменить всё остальное одной FPGA на 144 ноги от Ксайлинка, или 240 ногим 3 циклоном, что я в первом посту указал, если Ксайлинка не хватит (по выводам). Если сильно заморочится, то можно на 2 слоя развести (в крайнем случае плоским шлейфом что-то прокинуть), цена в итоге получится значительно ниже...

PavelZX
02.10.2020, 10:38
С трудом нашёл на Али 286 процессор: https://aliexpress.ru/item/4000197211702.htm кстати, на счёт "досовских" игр, как MS-DOS, так и Windows 3.1 были 16-ти битными, поэтому большинство из них должно идти на 286. Я к тому, что думаю, а не включить ли этот процессор в основной вариант, чтоб IBM AT представить в системе, как и Super NES. Для консоли Super NES можно использовать W65C816S, добавив недостающую функциональность, за счёт FPGA. Понимаю, что сложно всё это вместе объединить, но тогда реально получается, что полная картина 8-16 бит будет представлена...

Видеопроцессоры:
TMS9918 и TMS9928 https://aliexpress.ru/item/33027043581.html https://aliexpress.ru/item/32991349674.html
MC6845 https://aliexpress.ru/item/4000838349215.html
UA6538 https://aliexpress.ru/item/33000161944.html
V9958 https://aliexpress.ru/item/32518270037.html

Аудиопроцессоры:
SN76489AN https://aliexpress.ru/item/4000711864701.html
YM2612 https://aliexpress.ru/item/4000830413507.html
YM2164 https://aliexpress.ru/item/32993790338.html
AY-3-8910 https://aliexpress.ru/item/32855820479.html

Может ещё что-то упустил)

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

Ещё раз хочу подчеркнуть, что идея разработки охватить максимально все консоли и ПК 8-16 бит. Это получится одновременно развлекательный центр, музей и учебное пособие, с максимальным представлением всех процессоров как CPU, так и сигнальными (просто некоторые совсем старые модели будут представлены чуть более современными аналогами). Естественно, что мне нужна будет поддержка от сообщества, деньгами на компоненты, 15-20 тыс. примерно (с учётом, что буду покупать партиями по 5-10 микросхем разных). Потом на образцы печатных плат какие-то средства будут нужны. Конечно буду нуждаться в помощи по программированию, разводке плат и изготовлению корпуса "Ковчега". Как я уже не раз писал, коммерсант из меня никакой, тут я не ищу коммерческой выгоды, но проект можно монетизировать, как говорится...

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

Не могу найти пока процессор https://habr.com/ru/post/346330/ CP1600, может были какие аналоги, чтоб так же представить в "Ковчеге", хотя можно и смирится, что некоторые консоли первого и второго поколений будут полностью реализована в FPGA. Нельзя объять необъятное)

tank-uk
02.10.2020, 12:42
вот почитал все это и мысль только одна , взять это https://www.ixbt.com/live/platform/obzor-odnoplatnogo-kompyutera-khadas-vim2-max.html и накатить на него RetroPie
мощи хватит на всё , Raspberry PI 4 отдыхает, и по цене выйдет значительно дешевле чем собирать процы и видики

andrews
02.10.2020, 13:47
Не ко всем процам есть эмуляторы в исходниках. И потом эта штука довольно быстро разогревается при нормальной загрузке. Хотя так как Павел собирается реализовывать по мне тоже очень сложно. Я бы в FPGA оставил видеоадаптеры с видеопамятью, ну и возможность записывать ядра процессоров, которые не удалось купить и интерфейс на два адаптера( для реальных чиповых процов). Больше двух ассемблеров одновременно редкие люди в голове удержат, да и для портирования кода одновременно более двух ядер не нужно. А уже адаптерами пусть каждый запасается на свои пристрастия. Но проект Павла, пусть реализует как хочет. А сервис обслуживания файлов, usb, ethernet это да в какой-то MCU на базовой плате вместе с FPGA.

PavelZX
02.10.2020, 14:05
Не ко всем процам есть эмуляторы в исходниках. И потом эта штука довольно быстро разогревается при нормальной загрузке. Хотя так как Павел собирается реализовывать по мне тоже очень сложно. Я бы в FPGA оставил видеоадаптеры с видеопамятью, ну и возможность записывать ядра процессоров, которые не удалось купить и интерфейс на два адаптера( для реальных чиповых процов). Больше двух ассемблеров одновременно редкие люди в голове удержат, да и для портирования кода одновременно более двух ядер не нужно. А уже адаптерами пусть каждый запасается на свои пристрастия. Но проект Павла, пусть реализует как хочет. А сервис обслуживания файлов, usb, ethernet это да в какой-то MCU на базовой плате вместе с FPGA.

Предполагается упрощённый вариант процессорной платы, в расширенном тоже не обязательно все процессоры ставить, без процессоров плата с FPGA и панельками недорогая получается, а процессоры можно докупать по желаниям и возможностям, тем более если можно будет их эмулировать FPGA, на крайняк. Так же и все видео и звуковые процессоры ставить не нужно, аналогично, по желаниям и возможностям... Главное отличие от программной эмуляции на малинке или ПК, это как раз возможность "увидеть в работе" реальные чипы. Для обучения, экспериментов всяких, просто идеальный вариант. А играть можно хоть на баяне)

PavelZX
02.10.2020, 17:22
Вроде бы определился, как распределить процессоры (CPU) по группам:

1)
W65C816S (6502)
63C09(MC6809)
MOS8502(6510)
UA6527P

2)
RCA1802
8085 (i8080)
Z80
i8088

3)
TMS9900
68010
кр1802вм2
i80286

Необходимое количество выводов пока не просчитывал, но надеюсь уложиться в количество которое есть у FPGA XC6SLX9-2TQG144C. Каждому процессору потребуется отдельный сигнал синхронизации и выборки, а это уже 24 вывода, как минимум, но можно подумать, как это дело подсократить)

PavelZX
02.10.2020, 21:24
RCA1802
https://habr.com/ru/post/422277/
http://www.kswichit.com/1802/1802.htm

MC6809
https://colorcomputerarchive.com/repo/Documents/Books/The%20MC6809%20CookBook%20(TAB%20BOOKS%20Inc).pdf
http://www.classiccmp.org/dunfield/r/6809prog.pdf

W65C816S (6502)
http://forum.6502.org/viewtopic.php?f=1&t=5816
https://www.instructables.com/Assembly-Language-Programming-for-65xx-Family-Tech/

MOS8502(6510)
https://wiki.moda/wikipedia/MOS_Technology_6510
https://wikivisually.com/wiki/MOS_Technology_8502

TMS9900
https://habr.com/ru/post/406077/
https://www.pvsm.ru/texas-instruments/200764

По раритетным процессорам информация...

PavelZX
03.10.2020, 13:05
https://github.com/becomequantum/Kryon библиотека на Verilog интересная, от одного китайского товарища, позволяет обрабатывать изображение, для нашего дела может быть полезно размытие цифрового изображения. Пока не вникал, но может как-то это можно задействовать в VGA скандаблере...

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

Можно разрабатывать под консоли он-лайн: https://8bitworkshop.com/ Сам проект опенсорс и доступен на Гитхабе, можно сделать форк и доработать под разные свои задачи)

PavelZX
04.10.2020, 20:52
Так как многие видео и звуковые процессоры давно не выпускаются, а купить раритет иногда не просто дорого, но и можно легко нарваться на подделку, то стал смотреть их модели в FPGA, оказывается не всё так просто...
http://www.fpgasid.de/ -- некоторые до сих пор только пытаются приблизится к оригиналу, а для звуковых чипов, использующих смешанные цифроаналоговые части, так наверное проще наверное использовать эмуляцию современными сигнальными процессорами)

andrews
04.10.2020, 21:07
О чем и речь. Начни с STM32, EThernet, флэшки, z80...а потом можно шаг за шагом коллекцию расширять. Тестить процы можно на RetroShield (https://www.tindie.com/products/8bitforce/retroshield-6809-for-arduino-mega/), там чувак на Tindie поставляет голые платы, конструкторы(платы+детали). Я себе привез для HD63c09,работает. z80,8085 и 65с02 пока не спаял.

PavelZX
05.10.2020, 22:22
STM32f105 на подходе, заказал Z84C0020PEC (скорее всего перепиленный, но неважно), MOS6502A и MC68HC000-P16. Теоретически можно охватить значительную часть заявленного списка. Буду пока что делать облегчённый вариант с софтовыми видео и звуком, на имеющейся девборде со 2 циклопом, безо всяких озвученных хотелок... Память есть по 128кб, в ДИПе. Может что-то получится)

PavelZX
06.10.2020, 18:29
Совсем забыл про буферные микросхемы, есть в наличии только 10 шт. 74hc244n, они могут справится в паре вроде бы (если включить встречно параллельно, а выбор направления через инвертор) на шине данных. Если запитать их от 3.6 вольт, а процессоры от 4.5, будет работать, или нет, есть ку кого такой опыт? Может кто поделится кучкой 74lcx245, в пользу науки... Чисто теоретически можно что-то на старых платах наковырять, но у меня их с собой почти нет, всё в Хабаровске либо потерялось, либо лежит где-то в недоступном месте)

andrews
07.10.2020, 09:04
А сейчас то где, если не в Хабаровске? Если в Москве или в Питере, то в каком корпусе их ищешь? Они вроде копеечные. Другие города я пас, а то опять пчёлы загудят :)

LeoN65816
07.10.2020, 10:18
Б-з-з-з-з-з! ;)

есть в наличии только 10 шт. 74hc244n, они могут справится в паре вроде бы (если включить встречно параллельно, а выбор направления через инвертор) на шине данных. Если запитать их от 3.6 вольт, а процессоры от 4.5, будет работать, или нет, есть ку кого такой опыт?
1. Встречно-направленные 244 на шине данных - низзя!!! Кроме направления еще и управление активацией нужно, то есть нужны 245.
2. 74HC - очень медленные.
3. Смотри в сторону трансиверов с двойным питанием, типа 74LVC8T245, 74LVC16T245, 74ALVC164245. Их же можно и на буферы шин адреса и управления.
4. Частный случай: W65C816S умеет кушать от 1.8В до 5В.

PavelZX
07.10.2020, 13:44
74LVC8T245 заказал 5 штук вдогонку за процессорами...

А сейчас то где, если не в Хабаровске?
В селе, в Белгородской области, на границе с Воронежской и Украиной, отдыхаю от городской суеты, дышу свежим воздухом, наслаждаюсь тишиной и ем чистые овощи-фрукты с сада-огорода)

74hc244n
Да, они медленные (думал временную залипуху сделать), они могут в третье состояние переходить, так что встречно параллельно можно, но громоздко...

Соображаю ещё на счёт быстрого регистра сериализатора, а то жирно столько выводов ПЛИС на адреса переводить)

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

Во какую хрень нашёл, но её на Али нет: SN65HVS885 SN65LVDS151 https://www.ti.com/lit/ds/symlink/sn65hvs885.pdf?ts=1602067352614&ref_url=https%253A%252F%252Fwww.google.com%252F и они очень медленные...

andrews
07.10.2020, 14:15
Не, у меня теперь способ передачи один. Самовывоз от м. Пр. Просвещения, а в Москву с оказией, когда кто-то в командировку едет. Почтамт в Питере закрыт, в транспортные компании общедоступные и в почтовое отделение очереди стоять проблема. На алике стараюсь не брать, на eBay Paypal, если что, оперативно все решает. Ну и записываюсь на получение своих посылок онлайн, а толпа стоящих людей на меня смотрит с возмущением. (рядом Сев. Долина, а у них своей почты до сих пор нет)SN65HVS885 на eBay есть, но цены конечно. В Rochester они недорого и 13 шт. есть, но оттуда у нас доставка платная, так что будет как на eBay и смысла нет. А вот этих SN65LVDS151 всюду как грязи.

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


а то жирно столько выводов ПЛИС на адреса переводить
а внутри на него места не остается? А на OnSemi или еще где поискать среди последовательно-параллельных регистров( на обратное преобразование) или взять дешевенький Xilinx какой.

PavelZX
07.10.2020, 15:18
или взять дешевенький Xilinx какой
Пока, в довесок такие регистры заказал: SN74ALS166 https://aliexpress.ru/item/4000115742130.html У них 45 МГц частота синхронизации. При частотах процессоров до 5-6 МГц хватит (8*6=48), а потом буду думать что-то другое. Всё равно это пока только макетирование и эксперименты будут)

Не, ну реально жалко под адресные выводы процессора в параллель, выводы ПЛИС использовать. Надо покопаться в справочниках, какие сдвиговые регистры с параллельной загрузкой можно найти быстродействующие... Всё медленные попадаются: https://www.onsemi.com/pub/Collateral/MC74HC589A-D.PDF

andrews
07.10.2020, 15:20
Посмотри на возможных конкурентов, у которых впрочем можно кое-что почерпнуть
https://www.tindie.com/products/land_boards/z80-6502-6809-fpga-multicomp-pcb-retro-ep4/

PavelZX
07.10.2020, 15:25
Эти чуть быстрее, но отдельно надо где-то искать: https://assets.nexperia.com/documents/data-sheet/74LV165A.pdf

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


Посмотри на возможных конкурентов
Класс, не я один такой повёрнутый, аж полегчало)

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

Но у них процы софтовые...

andrews
07.10.2020, 15:29
Это хорошо, что рынок подогрет, тебе же проще будет. Важно только соразмерить силы на первый шаг пока инвесторы не подтянутся. На втором уже сможешь во всю ширь развернуться. Да, реальные процы это "вишенка на торте". Главное чтобы видео нормально работало, ну и файловая система выбранных тобой операционок для компов. Кстати, амеры не замыкаются на Xilinx и Intel(Altera) они и на Lattice активно что-то мутят. Вот еще с таким интерфейсом( толком не разобрался что это такое)
https://syzygyfpga.io/

PavelZX
07.10.2020, 16:28
С 8-ми битными сериализаторами ног в ПЛИС хватает на все три группы процессоров. Корпусов не больше будет, если их вместо буферов ставить. 16-ти битный адрес в 4 ноги: выход синхра, сброс и два сериала входа (два регистра), а 24-ёх битный в 5 ног (три регистра). Только согласование уровней не забыть (можно резисторами последовательно на 2,7кОм с диодами на питание +2.5V). Синхра будет соответственно умножатся на 8 от частоты процессора...

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

Пока только думаю как память цеплять, либо напрямик на процессоры SRAM (каждой группе свой набор), а с ПЛИС прокидывать адресацию на старшие разряды адреса, чтоб банки переключать, видео память тогда дублировать надо будет однозначно, потом если где DMA потребуется, то так оно не заработает. Либо задействовать SDRAM пожирнее с синхронизацией как минимум под 140 МГц, делить её на все процессоры кусками, кому что надо)

andrews
07.10.2020, 16:42
Ты что собрался одновременно(синхронно) больше двух компов запускать на одной плате? Имхо тогда лучше одновременно от силы пару и к каждому по ICE.

PavelZX
07.10.2020, 16:56
Ты что собрался одновременно(синхронно) больше двух компов запускать на одной плате? Имхо тогда лучше одновременно от силы пару и к каждому по ICE.

Да, это как раз фишка такая, чтоб можно было 2 компа одновременно запустить... Тоже склоняюсь, что лучше каждой группе (по крайней мере тем что 8-ми битные) процессоров по отдельной небольшой SRAM, а дополнительную память за счёт общей SDRAM. Группа 16-ти битников может обойтись без своей памяти, а только за счёт SDRAM работать, в таких компьютерах уже во всю DMA использовать стали)

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

Конечно, при работе 2-ух компов на одну память, надо будет решать вопрос с синхронизацией, вводить ожидание, кому частоту поднимать, кому понижать...

andrews
07.10.2020, 17:13
Больше двух одновременно не надо! Да и два удобно тогда, когда человек код портирует. ICE позволит "заглянуть внутрь" каждого компа( регистры, память отследить, экранные области, порты, шины, точки останова аппаратные поставить, трассы в файлы сохранить). Ну это уже как квартира бизнес-класса, средство для профессиональных разработчиков. И не на всех эмуляторах правильно и нормально работает. Разделение памяти в этом случае необходимо. Так как прогон нужен на полной скорости и прерываться пошагово, чтобы что-то нужное отследить/отгрузить нельзя. В общем это наверное на потом.

PavelZX
07.10.2020, 19:00
В общем это наверное на потом.
Конечно же, не всё сразу. Курочка по зёрнышку... Возможность "смотреть" внутрь компьютеров то же важная фишка. Я считаю, что об этом надо думать и говорить. Архитектура должна учитывать возможности к расширению и надо иметь ввиду, куда потом можно будет двигаться)

Читаю, что-то вспоминаю, на чём-то может раньше не заострял внимание. А об самой по себе истории компьютеров за рубежом так вообще раньше не задумывался особо, просто было не до того. И вправду многие моменты интересны)

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

На счёт Латис не знаю пока что, смотрю пока что легко доступно...

Xilinx какой
Вспомнил, есть таких с десяток XC9536XL в 44 ногом (34 пользовательских) корпусе под панельку, толерантны к 5 вольтам и держат вплоть до 178 МГц, так что, как вариант использовать их в качестве сериализаторов вполне реален, раз ничего более доступного не наблюдается)

PavelZX
08.10.2020, 14:37
К Lattice я и раньше присматривался, вот интересные чипы CPLD по цене и параметрам (но не толерантные к 5 вольтам):
Маленький: https://aliexpress.ru/item/32906674326.html
Побольше и жирнее: https://aliexpress.ru/item/32609610466.html

Старая FPGA: https://aliexpress.ru/item/32906973417.html и https://aliexpress.ru/item/4000012923019.html, но варианты от Альтера и Ксайлинк получаются выгоднее. Я рассматриваю со стороны возможности повторить конструкцию кем-то самостоятельно...

Где можно приобрести свежие FPGA Lattice я не знаю (как, в прочем, аналогичные от Альтера MAX10), большинство российских фирм поставщиков накидывают высокую маржу, плюс пересылка, а с иностранными поставщиками я пока не готов работать)

STM32 пришёл (и пара адаптеров USB-TTL), на выходных припаяю и попробую закинуть туда прошивку, которая работает с USB клавиатурой...

andrews
08.10.2020, 16:42
Мы из Mouser и Arrow много возим, а они там есть, например такие LFE5UM-25F-6BG381C это самые дешевые. Проблема в том, что не для физлиц. Я так понимаю, что сейчас только как физлицо все приобретаешь? А я имея горький опыт на этом сайте дважды на эти грабли не хочу наступать.

PavelZX
11.10.2020, 17:13
Есть какое-то общее описание, как эмулируются диски (и катриджи) для ретро-компов? Вообще можно, к примеру, как катридж менять содержимое ОЗУ, вместо всей этой свистопляски с контроллером дисковода и (образами) дисками? Понимаю, многим нравятся эти старые жужжащие железяки, но магнитные диски (как и кассеты) давно уже не производятся, а те что сохранились со временем станут не пригодны...

Eltaron
11.10.2020, 17:45
как и кассеты
Да ладно? https://www.nationalaudiocompany.com/
И судя по количеству издаваемых сейчас на кассетах альбомов, нас ждет ревайвал похлеще винила.

andreil
11.10.2020, 19:02
Практически да, так и есть, северный мост будет сам по себе самодостаточен, можно начинать с него всё дело. Для начала, чтоб МК "увидела" клавиатуру USB, а FPGA вывела какой-то текст на экран, естественно чтоб это всё заработало в связке)
А я сейчас вернулся к своей платке 2019-ого года и буду на ней пилить как раз связку.
Пока, для тестов, 1 порт для клавы/мыши, второй для подключения к ПК (USB2UART для консоли отладочной).
В FPGA у меня будут находиться регистры (по 16 бит) для общения STM32<>FPGA. И да - прошивка опять будет со своими велосипедами и прочим, так что пилиться будет долго.
Из минусов - у меня все платы с FPGA (свои) BGA only, иначе не умещаюсь по количеству пинов :)

PavelZX
11.10.2020, 21:03
судя по количеству издаваемых сейчас на кассетах альбомов
То то сейчас так популярно стало всё ретро))

Из минусов - у меня все платы с FPGA (свои) BGA only, иначе не умещаюсь по количеству пинов
Думаю обойти это за счёт сериализаторов, возможно стоит для этого использовать небольшие CPLD и диф. пары. Десериализаторы будут внутри FPGA. Если не заморачиваться неким минимумом корпусов, то это позволит остаться на том уровне, когда схему можно будет легко повторить...

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

Почитал про Next обсуждение: https://gamedev.ru/flame/forum/?id=231961&page=17&m=5253430#m241
Прискорбно, что у нас в сообществе нет никого, кто бы смог организовать создание своей операционной системы монитора для ретро компов, вместо того чтоб разбираться в зарубежных поделках...

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

Кстати, STM32 может работать с Quad-SPI интерфейсом, может его будет достаточно по скорости, чтоб обмениваться информацией с FPGA?

andreil
11.10.2020, 21:22
Думаю обойти это за счёт сериализаторов, возможно стоит для этого использовать небольшие CPLD и диф. пары. Десериализаторы будут внутри FPGA. Если не заморачиваться неким минимумом корпусов, то это позволит остаться на том уровне, когда схему можно будет легко повторить...
1) Очень много выводов для подключения памяти и видеовыхода. А сериализация при частоте процессора в 10МГц потребует частоту сериализации более 100МГц.
2) Не все умеют. STM32F407 на 100 ног, например.

По поводу SDRAM - не всё так радужно. Тут большие задержки за счёт организации цикла работы - на чтение/запись 1 слова потребуется около 8 тактов, так же надо периодически посылать команду на рефреш (ещё столько же циклов). Тут надо уже сидеть и думать, как это реализовать, но мне, если честно, жутко лень :)

PS: Я сейчас больше сижу и кручу интеграцию CortexM0 в FPGA, что бы ядро было полностью "на борту". Очень жирно выходит, но гибкость применения очень большая - можно реализовать свои нативные регистры.

Vasily_A
12.10.2020, 12:56
купите у китайцев:
https://aliexpress.ru/item/1005001308030569.html?spm=a2g0s.12269583.0.0.48b71 a3f4GKizK
два арм-ядра, плис с кучей блочной памяти и внешнее озу. и все за 1200руб

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

Syntal
12.10.2020, 17:37
Думаю обойти это за счёт сериализаторов, возможно стоит для этого использовать небольшие CPLD и диф. пары. Десериализаторы будут внутри FPGA. Если не заморачиваться неким минимумом корпусов, то это позволит остаться на том уровне, когда схему можно будет легко повторить...

Две FPGA XILINX, две мелкие CPLD под сериализаторы, преобразователи уровня, STM32!!! Разводка дифпар на 4-ех слойке тоже будет я так полагаю? И все этого для того, чтобы по сути связать Z80 и AY, хотя раньше хватало десятка проводков на макетке.

Хорошо конечно, что схему можно будет легко повторить, но ЗАЧЕМ???

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


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


Такое не предлагать, это же нужно среду разработки ставить, разбираться как blink запустить, еще и деньги тратить к тому же. Человек же с вами заветными мечтами делится - как у него вместе работают все процы в керамике на крутой ос, по железу все наворочено - FPGA, CPLD, дифпары, корпус из оргстекла :v2_dizzy_roll:

tank-uk
13.10.2020, 08:18
процы в керамике на крутой ос,
можно все процы на макетку запаять и прибить гвоздями к iMac с эмулем всех этих компов , и заработает все и сразу , и процы видно будет :)

andrews
13.10.2020, 10:46
Есть разные подходы.
1)чистая эмуляция - a)требуется 100% информация о железе-платформе, драйверах, софте - современные десктопы не удовлетворяют! б)Требуется 100% информация об эмулируемых платформах, что тоже весьма проблематично

2) по сути как в п.1, но железо взять попроще, а лучше разработать самому, для чего взять какой-то ARM процессор и свою операционку пусть на ядре Linux или полностью свою - большие труды! По п.1б все-равно не снимает

3)взять реализовать свое платформенное железо на STM32+fpga( варианты целиком на fpga) и адаптеры к эмулируемому железу с возможностью подключения к нему частей реального железа

Анонсированный проект и относится к типу 3.

По сравнению с клонами ZX Spectrum на fpga относится к более высокому классу сложности и трудозатрат, но предоставляет значительные возможности( в частности запускать одновременно два и более эмулируемых компа, одновременно с этим запускать ICE и т.д.)

Полных аналогов (прототипов) на мировом рынке НЕТ!

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


можно все процы на макетку запаять и прибить гвоздями
коллекционеры за это спасибо скажут. Если много раритетных процов осталось живых на свете - они не раритеты!

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

В 70-е и вплоть до 90-х в связи с нераспространенностью таких явлений как пиратство и хакерство железо и софт десктопов были недалеко от понимания юзеров, которые почти полностью могли контролировать ресурсы. Затем, когда немалая часть юзеров превратилась в хакеров и пиратов, производители компьютерных систем позаботилась убрать и железо, и софт подальше от шаловливых ручонок юзверей. С целью уменьшить их количество в сотни, тысячи, десятки тысяч раз!
Но обратная сторона медали - современные десктопы всё в большей степени "чёрные ящики"- и вот это реально раздражает и выбешивает!!!

PavelZX
13.10.2020, 11:20
большая часть ретрокомпов должна поместиться без проблем Девборда классная, не спорю, хотя не разбирался подробно, сколько у неё свободных пользовательских выводов. Можно использовать подобную девборду только с одним каким-то процессором одновременно (если выводов хватит), для эмуляции одной какой-то системы... FPGA со встроенными ядрами CPU имеют не так много ячеек для программируемой логики и менее гибки по настройке периферии (цена поэтому такая низкая). Потом мощные ARM ядра (проще всё-таки Cortex-M в STM32, чем A) серьёзную ОСь потребуют Linux или FreeBSD, а это как из пушки по воробьям)

Немного в другом задумка, чтоб были "железные" процессоры, при чем одновременно три в минимальном виде или сразу 12 CPU (в три группы объединённые), не считая разных видео-звуко-процессоров. Андрей хорошее название предложил "Ковчег", если считать, что пара у нас CPU-GPU, к примеру, Dragon 32/64 (1982) -- MC6809 и видеочип MC6847. Более того, чтоб можно было запускать две системы одновременно, не считая управляющего монитора (на STM32)...

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


Две FPGA XILINX, две мелкие CPLD под сериализаторы, преобразователи уровня, STM32!!! Разводка дифпар на 4-ех слойке тоже будет я так полагаю? И все этого для того, чтобы по сути связать Z80 и AY, хотя раньше хватало десятка проводков на макетке.
Базовый вариант с одной FPGA и двумя мелкими CPLD под сериализаторы, четыре преобразователя уровня для шин данных для 3-ёх CPU, которые смогут работать одновременно, к примеру Atari 800 и Sega MD...

Человек же с вами заветными мечтами делится - как у него вместе работают все процы в керамике на крутой ос Не понимаю подобного фетиша керамика и золотые выводы. Крутой ОС не надо, нужна управляющая монитор программа для STM32...

LeoN65816
13.10.2020, 11:58
Вот уже много страниц "стоит звон" про сериализаторы. А что они тебе дадут?

PavelZX
13.10.2020, 12:35
Вот уже много страниц "стоит звон" про сериализаторы. А что они тебе дадут?
Это просто вариант решения небольшой технической проблемы с большим количеством требующихся выводов у FPGA (и разводки большого количества дорожек) для чтения адресной шины у CPU. У кого их по 16, а кого и по 24 шт. аж. Дифпары не так страшны, кстати, можно и по воздуху пустить проводом витой парой в экране (от ethernet, к примеру), не обязательно разводить 4-ёх слойную плату... Не знаю, почему такое решение не используется в других FPGA клонах, хотя да у z-80 одного выводов не так много))

Шину данных тоже можно также "уплотнить", тогда преобразователи уровня совсем не понадобятся, при использовании 5V толерантных CPLD, но здесь логика работы будет сложнее, так как одновременно нужен будет и десериализатор на месте. Я позже об этом подумаю, пока надо вникнуть более глубоко в работу с USB устройствами и спроектировать управляющий монитор. (Именно сейчас с заработком вопрос решаю...)

LeoN65816
13.10.2020, 14:40
Это просто вариант решения небольшой технической проблемы с большим количеством требующихся выводов у FPGA
Тебе еще на 4-ой странице об этом прямым текстом было сказано. Тут бы хоть с одним проциком все уместилось бы по ногам плисины - уже хорошо. А ты вона как замахнулся, сразу на 3, а то и на 12!

А теперь еще подумай: вот приходит очередной активный фронт клока на процик, только через некоторое время (тут ничего не поделаешь, у них тоже свои задержки) он обновит сигналы на шинах данных, адреса и управления. И уже в этот момент плисина должна реагировать на это изменение - дешифрация памяти, портов, регистров и т.д. Если она подключена напрямую, то вполне возможно, что она и начнет адекватно на это реагировать. Однако, ты решил сериализовать эти сигналы... Даже допустим идеальный и волшебный случай, что тебе именно в этот момент удалось сэмплировать изменившиеся сигналы. В плисину они попадут только через 8 (или 10?) тактов сериализатора. Сколько это времени пройдет? К этому моменту уже и следующий фронт клока "стучится"... А твоя плисина только-только начинает расчухиваться... А если еще и несколько плисин это разжевывают, то ваще привал... "Вкуриваешь", о чем я говорю? ;)

andreil
13.10.2020, 14:45
Тебе еще на 4-ой странице об этом прямым текстом было сказано. Тут бы хоть с одним проциком все уместилось бы по ногам плисины - уже хорошо. А ты вона как замахнулся, сразу на 3, а то и на 12!

А теперь еще подумай: вот приходит очередной активный фронт клока на процик, только через некоторое время (тут ничего не поделаешь, у них тоже свои задержки) он обновит сигналы на шинах данных, адреса и управления. И уже в этот момент плисина должна реагировать на это изменение - дешифрация памяти, портов, регистров и т.д. Если она подключена напрямую, то вполне возможно, что она и начнет адекватно на это реагировать. Однако, ты решил сериализовать эти сигналы... Даже допустим идеальный и волшебный случай, что тебе именно в этот момент удалось сэмплировать изменившиеся сигналы. В плисину они попадут только через 8 (или 10?) тактов сериализатора. Сколько это времени пройдет? К этому моменту уже и следующий фронт клока "стучится"... А твоя плисина только-только начинает расчухиваться... А если еще и несколько плисин это разжевывают, то ваще привал... "Вкуриваешь", о чем я говорю? ;)
Кстати, да, это большой минус сериализации. В большинстве случаев у нас полная асинхронности сигналов (вне процессора) и надо, что бы всё отрабатывало максимально быстро.

andrews
13.10.2020, 16:24
Да, тут надо прикинуть, во сколько раз быстродействие сериализатора и основной плисины должны быть больше, чем у проциков.

Eltaron
13.10.2020, 16:34
можно все процы на макетку запаять и прибить гвоздями к iMac с эмулем всех этих компов , и заработает все и сразу , и процы видно будет :)
Я слышал, что китайцы так типа-аудиофильную аппаратуру делали - коробочка, сверху красиво лампа какая-нибудь светится, а внутри TDA2005 :D

andrews
13.10.2020, 17:08
Чипы делали "по-взрослому", для бизнеса, в условиях жесткой рыночной конкуренции, а за качество и 100% идентичность vhdl или софт-модели кто ответит? Для 8080, z80, 6502 и 6800(9,3) ну еще может быть, а остальные?

coffee
13.10.2020, 18:01
Чипы делали "по-взрослому", для бизнеса, в условиях жесткой рыночной конкуренции, а за качество и 100% идентичность vhdl или софт-модели кто ответит?
Делали то их по взрослому, но они не в вакууме существовали - их стыковали с EPROM, DRAM, SRAM через glue logic либо на "рассыпухе" TTL серий 74F/S/H/LS/..., либо заказных чипах (ISIC) с аналогичными характеристиками. Современная электроника как правило CMOS с совсем другими характеристиками (из-за чего часто бывают проблемы с несовместимостью и глюками). И это при стандартном подключении. А сколько граблей будет с сериализаторами, когда будут непредсказуемы задержки с доставкой сигнала... Как бы VHDL модель не стала образцом стабильности в таком сравнении.

andrews
13.10.2020, 18:22
Согласен. Хотя есть проект подключения просто чипов MPU к Arduino и к FPGA, можно было присмотреться к этим проектам для начала и сделать что-то более простое для двух одновременно включенных адаптеров. Даже ведь ZX Spectrum 48 + Apple II в одном флаконе было бы для кого-то интересно. Но тут уж как говорится...кто-то любитель step by step а кто-то сразу "раз-два и в дамки"

coffee
13.10.2020, 20:12
Понятия не имею зачем нужны несколько одновременно работающих ретро-компов (портировать код что-ли?), но если бы пришлось решать такую задачу, то сделал бы так как уже советовал топикстартеру: небольшая платка (можно и в двухслойку 10х10см вписаться), где есть 3 обычные цанговые панельки под 8битные процы. Шины данных и адреса унифицированы, питание, клоки, ресеты и прочие контрол-линии адаптированы под каждый проц. Например это набор 8080, Z80, 6502. Все это заведено в fpga, связано с памятью, VGA выходом и интерфейсом во внешний мир (Ethernet или USB или ещё что). Никаких сериализаторов. Кому надо 2/3/4 /... одновременно работающих компа, тот делает 2/3/4... комплекта, на современном компе через Ethernet сводит все данные на одном или нескольких экранах и играет/работает/просто тащится от крутизны. Такое реализуемо элементарно. Но кто простых путей не ищет...

PavelZX
13.10.2020, 20:30
Кстати, да, это большой минус сериализации. В большинстве случаев у нас полная асинхронности сигналов (вне процессора) и надо, что бы всё отрабатывало максимально быстро.


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

Ребята, почему вы с таким благоговением относитесь к асинхронным системам? Современный компьютер постоянно работает в режимах когда происходит множество асинхронных процессов, связанных с тем, что передача сигнала не мгновенна. Так же и сериализатор-десериализатор https://ru.wikipedia.org/wiki/SerDes так же используется повсеместно. LAN, SATA, USB, PCIe... Вопрос не в быстродействии, а в предсказуемости поведения, либо наличии обратной связи)

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


зачем нужны несколько одновременно работающих ретро-компов

Потому, что это необычно, не у кого такого нет, но вот появится у тебя, у меня, может ещё у кого-то. А там уж каждый придумает, что можно будет с этим сделать, я уже несколько раз повторял, какие могут быть возможности))

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


Кому надо 2/3/4 /... одновременно работающих компа, тот делает 2/3/4... комплекта, на современном компе через Ethernet сводит все данные на одном или нескольких экранах и играет/работает/просто тащится от крутизны. Такое реализуемо элементарно. Но кто простых путей не ищет...
Я могу по SSH одновременно управлять через сеть так несколькими Lunix машинами, по RDP Windows ПК, а как ты сможешь сделать это с ретро-компьютерами и консолями (разве что не захватить данные с видеовыхода)?

omercury
13.10.2020, 22:04
Современный компьютер постоянно работает в режимах когда происходит множество асинхронных процессов, связанных с тем, что передача сигнала не мгновенна.
А речь о современных компьютерах?
С кэшами, конвейерами и прочими... библиотекаршами?



Вопрос не в быстродействии, а в предсказуемости поведения
Вот всем хорошо знакомый M1-цикл Z80
73698
В момент времени "1" процессор выставляет сигналы чтения ПЗУ, в момент "2" (1,5 такта) считанные данные из неё УЖЕ должны быть на шине.
Допустим это стандартный спек на частоте 3,5МГц. 1,5 такта - это 1/3500000=285 наносекунд.
Допустим фактор сериализатора 8, значит нужно 9 тактов (8+1-задержка на захват), в обратную сторону столько же, итого 18 тактов. То есть только для передачи шины туда-сюда её такт должен быть минимум 285/18=15,8 наносекунд, то есть частота сериализатора 1/15,8=63,3МГц. Не проблема, умножаем на 2, получаем 126,6МГц, для ПЛИС вполне нормально, правда тут тоже синхронизация захвата входов понадобится, а это увеличивает латентность. Примем для определённости ещё по 2 такта в каждую сторону (пресловутая метастабильность) или 4*15,8=63,2 nS. В результате получаем 285/2=142,5-63,2=79,3 nS наносекунды на работу контроллера и собственно памяти. Далее следует учесть задержки в ПЛИС, так как спидгрейд, это не что иное, а максимальная pin-to-pin задержка.
На корпусе небось восьмёрочка? То есть 8 nS в каждую сторону (в реальности будет меньше, но рассчитывать на это не следует). Таким образом остаётся 79,3-16=63,3 минус пара-тройка тактов на контроллер памяти (клок 126,6МГц есличё), то есть в лучшем случае 63,3-7,8*2(3)=47,5(39,6) nS собственно для самой памяти на одно обращение к ней из одного ретрокомпа. Без учёта задержек на преобразователях уровней.
В принципе с одним процессором Z80 на клоке 3,5МГц (стандартный спек) теоретически должно прокатить. :)

Кстати, а какое время доступа у имеющейся памяти?
SRAM разумеется, об SDRAM можно сразу забыть.

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


Потому, что это необычно, не у кого такого нет
Влад делал 4 спека в одной DivGMX.

PavelZX
13.10.2020, 22:20
Вот всем хорошо знакомый M1-цикл Z80
Да, знаю, как важно обеспечить "безвайтовый" режим, для точного воссоздания различных видео и звуковых эффектов в спекки. Поэтому и ставился вопрос об расположении части ОЗУ рядом с процессором, в данном случае и на адресную шину нужна будет двунаправленная передача, чтоб залить туда что-то минуя CPU...

Eltaron
13.10.2020, 22:30
Поэтому и ставился вопрос об расположении части ОЗУ рядом с процессором
Какой именно части ОЗУ? Ты же знаешь, сколько экранов у спектрума? Это что, две страницы будут в быстрой памяти, остальные через последовательную шину где-то там вдали в медленной? А как они переключаться между собой будут, порт 7ffd тоже на процессорную плату утащить? И более глобально, как будут коммутироваться на шину Адреса процессора адресА "быстрой" ОЗУ? А если делать на Z80 не спектрум, а что-то другое, с вообще другим расположением видеостраницы?

PavelZX
13.10.2020, 22:41
Стоящая рядом с CPU память может выполнять роль кэша. А конвейер, кстати, можно обеспечить небольшой, с предвыборкой и даже прогнозом ветвления)

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


Какой именно части ОЗУ?
Спектрум один из немногих компов, у которого всё на CPU крутится. Его более поздние реинкарнации пошли по странному пути, сохранив эту родовую травму. Возможно будут сложности с реализации чего-то большего 128 КБайт. Не помню как там все эти дополнительные экраны в ATM turbo и прочих сделаны)

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

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

LeoN65816
13.10.2020, 22:51
Упертость и упорность (https://www.b17.ru/blog/40781/).

omercury
13.10.2020, 22:56
Да, знаю, как важно обеспечить "безвайтовый" режим
Ну так а фигли калькулятором не воспользовался, прежде чем ерунду писать?



Стоящая рядом с CPU память может выполнять роль кэша. А конвейер, кстати, можно обеспечить небольшой, с предвыборкой и даже прогнозом ветвления)
Во-во!
И по STM32F407 рядом с каждым ретропроцом для управления кэшем и предсказания переходов. :)

Заодно и к ним сериаЛизаторы.;)

Eltaron
13.10.2020, 22:59
По крайней мере будет интересно со всем этим разобраться и решить все эти вопросы как-то...
Неразрешимые вопросы решать, конечно, интересно, но быстро надоедает. На деле все эти вызванные кошмарным проектированием вопросы решаются в итоге обычно просто - выбрасыванием текущих бесполезных наработок и повторным проектированием, на этот раз вдумчивым.

omercury
13.10.2020, 23:30
Его более поздние реинкарнации пошли по странному пути, сохранив эту родовую травму.
Наличие софта - странный путь?
Без него ЛЮБОЙ копм - просто горстка никому не нужного песка, редкозёмов и лужица припоя.

coffee
14.10.2020, 02:03
Ребята, почему вы с таким благоговением относитесь к асинхронным системам? Современный компьютер постоянно работает в режимах когда происходит множество асинхронных процессов, связанных с тем, что передача сигнала не мгновенна. Так же и сериализатор-десериализатор https://ru.wikipedia.org/wiki/SerDes так же используется повсеместно. LAN, SATA, USB, PCIe... Вопрос не в быстродействии, а в предсказуемости поведения, либо наличии обратной связи)
Не путайте божий дар с яичницей. Есть процессы, которые терпят задержки без проблем, но есть и другие. Высокая скорость канала и латентность - разные вещи. Вам уже привели пример с выборкой инструкции в z80. Напихаете wait-state'_ов - выйдет лажа. Не просто тормоза и глюки, но отдельные капризные проги могут проигнорировать ваш комп.


Потому, что это необычно, не у кого такого нет, но вот появится у тебя, у меня, может ещё у кого-то. А там уж каждый придумает, что можно будет с этим сделать, я уже несколько раз повторял, какие могут быть возможности))
Вы играете/работаете сразу на нескольких компах? Вы Цезарь? По вашему это круто? Но зачем? Вот чел сделал 16-ядерный Z80 проц на 83МГц. И даже запаковал всё в деревянный ноут:
https://habr.com/ru/post/480290/
Но он и сам не придумал зачем это нужно. Может вы ему объясните.

andrews
14.10.2020, 10:25
16-ядерный Z80 проц на 83МГц.
Stratix IV 530GX FPGA для CP/M?! Да, чел явно обкурился чего-то! Для CP/M ему хватило бы и одного ядра!
А из DSP понаделать кучу крутых обработок аудио, видео и графики!
Еще бы пару он мог бы пустить на загружаемые клоны ZX Spectruma. Зачем одновременно работающие? Ну для того, чтобы почувствовать разницу и да, для портирования очень удобно. Остальные ресурсы надо было отдать на создание "несущей платформы" с коммуникациями, дисковым сервисом, обслуживанием памяти и современной перефирии. Чтобы при создании игр и прочего софта облегчить жизнь художников и музыкантов. Ну и если бы после этого остались ресурсы, можно бы было оставить на реализацию пары адаптеров для "втыкаемых чипов". Чел просто облегчил себе жизнь, как разработчику, очень похоже на сказку про "Трех поросят" построил дом из соломы, хотя мог ( и должен бы был) из камня.
Павел, по поводу сериализаторов надо поискать специализированные скорострельные, может и есть в природе, раз на плисине не прокатывает по скорости.

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


Вы играете/работаете сразу на нескольких компах?
а где такие десктопы в ширпотребе? Были бы, так и работали бы. А так каждый раз ОС перезагружать заипешься!

PavelZX
14.10.2020, 11:03
Вы играете/работаете сразу на нескольких компах?
Да...

Обалденная вещь, фанерный ноутбук с Stratix IV 530GX FPGA внутри для экспериментов!)

andrews
14.10.2020, 11:19
Наличие софта - странный путь?
Без него ЛЮБОЙ копм - просто горстка никому не нужного песка, редкозёмов и лужица припоя.
надругих десктопах находили пути для сохранения работоспособности части софта, но давали и новые возможности для создания нового. Не говорю, что такого не было на ZX Spectrum. Скорее всего ПЛИС надо было использовать очень давно, как в Sprinter-е или как-то еще. Да, тогда это было не так доступно, как теперь.

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


Stratix IV 530GX FPGA
цену на них узнай - радости поубавится, а если от цены не колбасит, смотри на Stratix X, а можно еще и интеловский нейропроцессор для полного фарша прифигачить и проектировать интеллектуальный ОС!

PavelZX
14.10.2020, 11:56
Павел, по поводу сериализаторов надо поискать специализированные скорострельные, может и есть в природе, раз на плисине не прокатывает по скорости.
Пока не нахожу вариантов, но что-то подсказывает, что они могут быть: https://www.design-reuse.com/articles/10541/multi-gigabit-serdes-the-cornerstone-of-high-speed-serial-interconnects.html https://semiengineering.com/knowledge_centers/communications-io/off-chip-communications/i-o-enabling-technology/serializer-deserializer-serdes/

Где то попадались микросхемы от MAX, но на Али их не нашёл. Впрочем, ПЛИС тоже разные бывают...
https://para.maximintegrated.com/en/results.mvp?fam=hs_int&295=Deserializer%7CSerializer

LeoN65816
14.10.2020, 12:25
Вот чел сделал 16-ядерный Z80 проц на 83МГц. И даже запаковал всё в деревянный ноут:
https://habr.com/ru/post/480290/
Но он и сам не придумал зачем это нужно.
https://otvet.imgsmail.ru/download/100691277_9eda25d665bb89ba5ed09dfb0fb5bf67_800.jpg




Павел, по поводу сериализаторов надо поискать специализированные скорострельные, может и есть в природе, раз на плисине не прокатывает по скорости.
Пока не нахожу вариантов, но что-то подсказывает, что они могут быть: ...
Жаль, что вы оба так ничего и не поняли... :v2_dizzy_facepalm:

andrews
14.10.2020, 13:27
Да поняли, поняли, часть софта отвалится. Вопрос лишь в том, какая часть? Зато другие платформы будут по прежнему востребованы широко, а эта не очень или совсем нет. Первый Спринтер для большинства тоже выглядел в 2000г. абсолютно тупиковым компом.

Вчера установил софт от STM для разработки STM8S на 32 битную Windows7, после чего пришлось реанимировать систему.

ZX SPectrum отличался(чается) безглючностью в этом отношении? На нынешнем этапе клоны на плисах стараются этого жестко придерживаться - отсюда ваша справедливая критика. Но время идет, старые поколения ПЛИС появляются на рынке по дисконтной цене, старые чипы пока в данный момент не все еще раритеты. Почему не воспользоваться уникальностью этого момента. Завтра будет что-то другое. Жизнь продолжается.

PavelZX
14.10.2020, 13:38
Жаль, что вы оба так ничего и не поняли...

Моё (наше) небольшое помешательство, не даёт покоя и вам))

Если вернуться к началу, то сейчас обсуждается базовый, немного упрощённый вариант от того, что я задумал глобально, с одной FPGA и STM32, как основе проекта и процессорной плате, где, помимо нескольких CPU, будет ОЗУ, шинные формирователи и сериализаторы (либо всё-таки двухсторонние serdes), либо на специализированных чипах, либо небольших CPLD. Мой, максимальный вариант, предполагает сразу 12 CPU и вторую FPGA, повторюсь, что он не сильно сложнее базового, просто 12 CPU объединяются в группы по 4 и потребуются те же шины по количеству: 2 по 16 бит, 1 на 24 бит адреса и 2 по 8 бит, 1 на 16 бит данных. То есть потребуется только на это 90 выводов, не считая выбора процессора в группе, сигналов тактирования, чтения-записи, обращения к устройствам ввода-вывода... Как вариант EP3C25Q240C8N с 148 пользовательскими выводами можно использовать, как я писал вначале. Приобрести не сложно, не дорого и не так страшно паять)

LeoN65816
14.10.2020, 14:26
Да поняли, поняли, часть софта отвалится.
Вот это тем более показывает, что ничего не поняли... Я ведь даже не заикнулся ни о софте, ни о вэйтах... Я совершенно о другом говорил. Элементарные грабли не видите, зато "раз-раз и в дамки"... :(


Моё (наше) небольшое помешательство, не даёт покоя и вам))
https://i.pinimg.com/736x/8a/73/8c/8a738caee23b4d12307d824f614cd6c0.jpg

andrews
14.10.2020, 17:04
Пока не нахожу вариантов, но что-то подсказывает, что они могут быть
копать нужно в сторону SERDES теоретически, а лучше практически на какой-нить плисине, где это реализовано(там не все так просто, это не примитивный сдвиговый регистр). И в MCU некоторых есть KINETICS(насчет STM32 не уверен). Началось все с 100GB Ethernet(глупо было оптику впутывать в печатные платы), но теперь западные умельцы приспосабливают его всюду и на печатных платах. Заманчиво ведь не разводить сложные платы, а разводить в разы более простые. 800 MHz становятся достижимы, что для 3.5MHz и тем более 1MHz проциков должно быть "за глаза". Правда на осциллах теперь останешься "без штанов", а многие принципиально не работают с той электроникой, сигналы с которой не могут увидеть на своих приборах. Честно говоря я сам к таким отношусь.

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


Элементарные грабли не видите
честно говоря в современных технологиях это весьма непросто. В эпоху терабитного эзернета неудивительно. Раньше я четко знал, что домашняя свч печка даже при малых утечках жарит мозги своих владельцев. Но теперь человечество повсеместно окружает себя wifi, LORA, 4G,5G и призывает ничего не бояться! лично я не понимаю, как оно собирается в этой среде выживать?! Видимо вместо головных уборов, скоро придется ходить в шлемах.

omercury
14.10.2020, 18:25
Да поняли, поняли
Таки не понЕли...
Скорости ПЛИС хватит, 392МГц LVDS я ещё на EP1C3T100 (в котором нет аппаратных дифпар) делал.
Хватит ли опыта сделать плату под всю эту красоту? (хотя не так уж там всё и страшно)



Если вернуться к началу
Ну так и вернись к началу и сделай 12 компов на добавленной к ним общей шине.

Кстати, а в сторону FT2232 в режиме Host Bus Emulation по этому поводу не смотрел?
В качестве 13-го процессора? :)



не так страшно паять)
BGA ещё менее страшно паять.
К плате только требования вырастают.

PavelZX
14.10.2020, 19:01
Кстати, а в сторону FT2232 в режиме Host Bus Emulation по этому поводу не смотрел?
https://www.ftdichip.com/Support/SoftwareExamples/MPSSE/FT2232C-Proj04.pdf
Буквально недавно интересовался этим чипом, но пока не разобрался в его функциональности (много такой информации захватываю поверхностно, возвращаясь по случаю), знаю только что выводов у него много...


BGA ещё менее страшно паять.
К плате только требования вырастают.

Тогда и вправду лучше проект строить вокруг готовой девборды, если не замахиваться на своё мелкосерийное производство)

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


FT2232 в режиме Host Bus Emulation
http://easyelectronics.ru/rabota-s-mikrosxemoj-ftdi-ft2232-v-rezhime-bitbang.html

Тут написано, что частота синхронизации для 8 бит шины может достигать 48 МГц, неплохо но не так уж много, а USB в FPGA воткнуть что ли? Не совсем в тему, но в общем благодарю за то, что привлекли моё внимание)

AlexG
14.10.2020, 19:25
https://www.ftdichip.com/Support/SoftwareExamples/MPSSE/FT2232C-Proj04.pdf
Буквально недавно интересовался этим чипом, но пока не разобрался в его функциональности (много такой информации захватываю поверхностно, возвращаясь по случаю), знаю только что выводов у него много...



Тогда и вправду лучше проект строить вокруг готовой девборды, если не замахиваться на своё мелкосерийное производство)

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


http://easyelectronics.ru/rabota-s-mikrosxemoj-ftdi-ft2232-v-rezhime-bitbang.html

Тут написано, что частота синхронизации для 8 бит шины может достигать 48 МГц, неплохо но не так уж много, а USB в FPGA воткнуть что ли? Не совсем в тему, но в общем благодарю за то, что привлекли моё внимание)

согласно это статье BaudRate == 3 МГц
и что вы будете делать с оной частотой семплирования ?
Забудьте весь это БРЕД с сериалазероми. Гимор по самые гланды.

omercury
14.10.2020, 19:36
а USB в FPGA воткнуть что ли?
в PC
В режиме Host Bus Emulation она эмулирует аппаратное поведение i8048/8051 процессора.
Немного

There are 4 basic operations:-
1) Read (does not change A15 to A8)
2) Read Extended (changes A15 to A8)
3) Write (does not change A15 to A8)
4) Write Extended (changes A15 to A8)
но...
Считать из памяти/записать в память вполне можно.


When MCU Host Bus Emulation mode is enabled the IO signal lines on both channels work together and the pins are configured as described in Table 3.11. The following sections give some details of the read and write cycle waveforms and timings. The CLKOUT output clock can operate up to 60MHz.

Хотя, с другой стороны, там целый STM32 будет. Всё то же самое можно сделать и на нём.

PavelZX
14.10.2020, 20:16
там целый STM32 будет
Кстати, да... По дешёвому STM32 (но всё таки побыстрее надо наверное) на каждую группу CPU, гулять так гулять, тут и кэш будет на борту даже))

PavelZX
15.10.2020, 10:58
целый STM32 будет
Прекрасно понимаю, отрицательное отношение к этому МК. С одной стороны использование ATmega, во многих клонах и платах расширения оправдано простотой программирования, всё-таки тоже 8-бит (размер кода намного меньше, но и функционал ограничен), потом накопленные наработки, в виде схемотехники и прошивок. Многие рассуждают чисто идеологически, отталкиваясь всё от тех же 8-бит, хотя система команд на уровне ассемблера не совместима не с Z80 не с другими 8-16 битниками... Следуя этому всему, можно было бы использовать более мощный МК, или даже целый микропроцессорный набор из той эпохи (80-90-е), для управляющей периферией системы, но цена и техническая сложность возрастут значительно, опять же встанет вопрос с поддержкой современных интерфейсов)

В общем, пока курс не меняем... CPLD (FPGA) в процессорном модуле и FPGA плюс STM32 в периферийном)

Eltaron
15.10.2020, 12:20
Блин, а давайте уже тотализатор устроим - зададим дедлайн (полгода?) и будем делать ставки на то, сделает тредстартер хотя бы proof of concept, или нет. Если не сделает, выплачивает нам выигрыш. Если сделает - из наших ставок покупает себе новые процессоры для расширения :D

А то даже безотносительно самого проекта, рассуждения PavelZX мне напоминают то, как не учившие студенты пытаются выплыть у меня на экзамене. Любой допвопрос пытаются увести от сути и перейти на пространные рассуждения и воду в духе



Прекрасно понимаю, отрицательное отношение к этому МК. С одной стороны использование ATmega, во многих клонах и платах расширения оправдано простотой программирования, всё-таки тоже 8-бит (размер кода намного меньше, но и функционал ограничен), потом накопленные наработки, в виде схемотехники и прошивок.


Или вон диаграмму работы ему показывают, а он лишь "да, слышал, что wait важен". Складывается впечатление, что у человека не просто нет опыта в разработке аппаратуры, но даже и принципы её работы для него остаются во многом туманными. Просто нахватался краем уха баззвордов типа "FPGA", "STM32" и т.д., и сидит фантазирует. В теме аж 14 страниц, но на ней нуль практических идей.

PS PavelZX, вот можно простой вопрос? Сколько раз ты перешил ПЛИС на своём IGP1? Дай угадаю, ноль?

andrews
15.10.2020, 14:56
Павел, попробуй для этих фом неверующих взять просто MCU или FPGA с SERDES и LVDS-ами и любой процик, работающий в диапазоне 1-3.5MH. Пусть процик выполняет тестовую программу, которую подсунет ему по SERDES MCU или FPGA. Чтобы не парится с SERDES на уровне вентилей FPGA(собственного кода vhdl) можно найти либо готовую реализацию, либо в виде блоков в MCU или FPGA. Можно развести все на одной плате. Такой проект и сам по себе будет иметь ценность и профит.

А по поводу прошить ПЛИС, сразу возникает контр-вопрос. Чем прошил, что прошил, какую ПЛИС? Ведь есть ПЛИС c кодом подгружаемым в свое ОЗУ по Jtag и по SPI. Можно взять готовую плату с USB и JTAG через USB фирменным софтом прошьет даже домохозяйка ( готовый код). Или все же предполагается разработка собственного кода на vhdl(verilog)? С нуля никто ничего не делает, кроме преподов(доцентов и профессоров, а скорее будем честными на 90% их студентов), тогда сколько там должно быть своего кода и какого уровня сложности должны быть реализованы устройства? Кроме того, Павел, кажется и не скрывал никакой инфы о себе, как проектанте и разработчике. О чем его вопрошали( о его опыте и "портфолио") и он подробнейшим образом всем ответил. Да, на этом форуме немало людей, завершенные проекты которых все могут оценить или повторением, или приобретением. Но есть и долгострои, и незавершенные и брошенные проекты. Разве кто-то кому-то устраивал предлагаемый Павлу тотализатор? Что-то я не припомню такого. Если же кто-то собирается реализовывать нечто подобное, или более "реалистичное", то кто ж мешает? Кроме отсутствия веры в реализуемость и собственные силы?

PavelZX
15.10.2020, 15:30
Дай угадаю, ноль?

Почему всем интересны не проекты, что я предлагаю, а моя личность? Воспитал 4-ых детей и продолжаю их поддерживать в психологическом плане. Всегда вёл аскетический образ жизни и интересовался только разными науками. Много делал добра другим людям и совсем чуть-чуть зла тем, кто стоял у меня на пути и заслуживал это... Всё остальное суета, не стоящая внимания)

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


взять просто MCU или FPGA с SERDES и LVDS-ами и любой процик, работающий в диапазоне 1-3.5MH Так и хочу сделать)

Мне ещё несколько дней, может неделю надо, чтоб с заработком разобраться. Я полгода был практически на подножном корме. Сейчас есть работа, но надо справится со своей психикой и заставить делать то что не особо интересно, но за что будут платить какие-то деньги...

coffee
15.10.2020, 16:22
Почему всем интересны не проекты, что я предлагаю, а моя личность?.
Думаю вопрос касался не автобиографии, а уровень экспириенса в данной области. Можно быть хорошим человеком, талантливым художником или даже программистом, но провалить данный проект или превратить его в долгострой. Никто не хочет вас унизить, но есть опасение что вы окажетесь слабым звеном проекта и все советы по его реализации (а раз вы открыли этот топик, то вероятно хотели их получить) повиснут в воздухе. Если в теме вы новичок, то вряд ли сразу реализуете сложный проект со всякими наворотами типа сериализаторов. Возьмите 2-3 ретропроца (за 1-2$ каждый), FPGA в корпусе PQFP-208 (несколько баксов), SRAM на пару мегабайт ($2) и все - никаких stm32, cpld, сериализаторов, связь с компом по компорту, через usb адаптер за 1$. Разведите плату 10х10см. Если уверены что сумеете на двуслойке (хотя это сложно для fpga), то на PCBway она вам обойдётся в $5 и $7 - пересылка, минус купон новичка $5. Итого на эту часть проекта общие затраты менее $20 , а время реализации менее месяца (без учёта доставки платы и компонентов). Заработает это - начнете прикручивать фантики и рюшечки, воплощать мечту.

Eltaron
15.10.2020, 17:02
Почему всем интересны не проекты, что я предлагаю, а моя личность?
Да потому, что предлагаемый проект выглядит как запредельно сложный в плане харда, но при этом заранее нежизнеспособный в плане софта. Никто не будет писать никакое взаимодейтвие между разными платформами, никому оно не нужно. Кто, andrews может напишет? Да нет, он же такой же теоретик. И такая комбинация непродуманности и ненужности наводит на размышления.


А по поводу прошить ПЛИС, сразу возникает контр-вопрос. Чем прошил, что прошил, какую ПЛИС? Ведь есть ПЛИС c кодом подгружаемым в свое ОЗУ по Jtag и по SPI.
Да-да, именно о таком наливании воды и попытке увести разговор в сторону никого тут не интересующих отличий CPLD от FPGA я и говорил.

Я же написал - IGP1. Есть тут тема про спектрум из игрового автомата (https://zx-pk.ru/threads/25427-klon-zx-spectrum-na-plate-ot-igrovogo-avtomata.html), которую Павел открыл 5(!) лет назад. Тоже было много энтузиазма и мудреных аббревиатур. Закончилось тем, что спектрум из платы сделал Mick. Потом он сделал второй. Потом эти конструкции повторило человек 5. Сейчас там уже третий спектрум из этой платы клепают. Тем временем Павел на своей IGP1 не запустил, видимо, даже тестовую выводилку полосочки на VGA. Ну да, какой смысл делать простые вещи, когда можно сразу ррраз - и сделать зашкаливающе сложные? :D

Я не говорю, что подобный подход - это страшно. У меня у самого есть девборды, которые я купил ещё лет 10-15 назад, и до сих пор даже не включал. Просто надо понимать, что вероятность завершения проекта низка до безобразия. На самом деле я даже в вероятность его старта дальше обсуждений не верю - впрочем, буду рад ошибиться.

andrews
15.10.2020, 17:35
Сейчас там уже третий спектрум из этой платы клепают
так что же в этом плохого? Что же до меня, то я практически все что покупал, включал или использовал. Вот ручной лебедкой(пролежавшей из-за коронавируса без дела с весны) в прошлый выходной на даче 6 стволов елок каждая кг по 300 перетаскал(правда короед малость уже их подпортил, год пролежали неокоренные). Иначе смысл покупать за свои деньги? Быстро движутся или проекты финансируемые, или очевидно с большой выгодой реализуемые. Ну или разработчики ни на что не отвлекаются, не имея нужды в деньгах. А у меня все идет "в фоне". Работаю не охранником, но тоже все идет как ловля сома, который то ли клюнет, то ли нет. А компьютеры под рукой.

Ладно, пробежался по тому треду, стала понятней позиция команды здесь присутствующих сомневающихся. Но шанс должен быть у всех! Лишь время покажет как будет на этот раз. Ну а Mick трудяга и молодец, кто ж с этим не согласится?

PavelZX
15.10.2020, 19:32
Закончилось тем, что спектрум из платы сделал Mick.
Там я не только идею предложил, но и сделал часть работы по реверсинжинирингу платы, собрал пару вариантов прошивки. Здорово, что кто-то воспользовался моей идеей и частично наработками. У Mick был свой интерес, у меня другой, они только частично пересекались. Потом мои жизненные обстоятельства изменились, а интересы поменялись)


Итого на эту часть проекта общие затраты менее $20 , а время реализации менее месяца (без учёта доставки платы и компонентов).
Плату разводить сейчас не буду, есть девборды и макетки. Процессоры и регистры в пути. Для прототипа хватит. Тему создал для общения и взаимовыгодного обмена информацией. Будет ли толк со всего этого? Поживём увидим...

PavelZX
22.10.2020, 09:31
Детали где-то на подходе... STM32F105 ещё на предыдущей неделе запаял на девборду (сдув F103), но пока с USB клавиатурой не экспериментировал. Всё ещё мучает вопрос, на основе чего сделать управляющий монитор для "ковчега". Нужно чтоб это было полезным инструментом, а не просто выбор прошивки и конфигурация компонентов... Наиболее удобно, чтоб среда исполнения была на основе популярного скриптового языка, Луа, ДжаваСкрипт или Пайтон. Вот по последнему есть очень хороший проект: https://github.com/micropython/micropython
Есть порты на другие микроконтроллеры:
ports / bare-arm / - минимальная версия MicroPython для ARM MCU. Используется в основном для управления размером кода.
ports / teensy / - версия MicroPython, работающая на Teensy 3.1 (предварительная, но функциональная).
ports / pic16bit / - версия MicroPython для 16-битных микроконтроллеров PIC.
ports / cc3200 / - версия MicroPython, которая работает на CC3200 от TI.
ports / esp8266 / - версия MicroPython, которая работает на SoC Espressif ESP8266.
ports / esp32 / - версия MicroPython, работающая на ESP32 SoC от Espressif.
ports / nrf / - версия MicroPython, которая работает на микроконтроллерах Nordic nRF51 и nRF52.

Просто, хотелось бы, чтоб навыки и наработки, с разрабатываемого проекта, можно было бы использовать где-то ещё)

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

https://xakep.ru/2018/01/25/python-for-microcontrollers/
https://amperkot.ru/blog/micropython-1/
https://habr.com/ru/post/448702/
http://www.count-zero.ru/2020/micropython/

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

Немного помечтаю... Может кто-то захочет портировать под Z80 MicroPython для Cпектрума и MSX, для кр1802вм2 для российских ПК и, возможно, куда-то ещё)
Требуется 16 Кбайт ОЗУ и 256 Кбайт ПЗУ...

andrews
22.10.2020, 11:32
Имхо если только как кросс-система, генерящая ассемблерные линии на выходе. Все современные языки жруче-ресурсные! Ниже ARM M3 "не летают". Teensy 3.1 это суперкомп в сравнении с любыми 8-битниками. С рекомендовать не стану, как "стековый язык", а нужны компиляторы, активно использующие регистры. Здесь вот на форуме два человека неплохо продвинулись с z80 Паскалями. Ну а так ищи "надстройки над ассемблерами" и библиотеки.

Oleg N. Cher
23.10.2020, 08:05
Паскаль тоже "стековый", как и Си. Плюс тоже рекурсия, локальные переменные (для реентерабельности тоже на стеке) и т.п.

Есть ещё Cowgol (http://cowlark.com/cowgol/index.html) и PL/M (https://github.com/Oleg-N-Cher/PLM-80). На PL/M есть игра Двигалка (https://zx.oberon.org/forum/viewtopic.php?f=88&t=305) для компьютера Апогей БК-01, написанная Kakos Nonos.

Нам бы порт Sphinx C-- (http://c--sphinx.narod.ru).

Впрочем, что-то такое (http://alemorf.ru/text/6/index.html) уже делает Алекс Морозов.

Были и другие попытки. Мой COLOSS (https://worldofspectrum.net/infoseekid.php?id=0027681) и Metal 73768 Владимира Кладова.

73769

Или даже VMaker (http://rk86.smart-tv-home.ru/system.htm) для РК-86, на котором разработаны неплохие игры (http://rk86.smart-tv-home.ru/games.htm).

Я бы копал в сторону другого синтаксиса для асма и придания ему модульности и других хороших черт ЯВУ.

С другой стороны я бы копал в сторону ЯВУ типа Модулы-2 с набором хороших библиотек, "чтобы без асма".

andrews
23.10.2020, 10:03
Паскаль тоже "стековый", как и Си
но помнится там можно было привязать переменные к регистрам? Просто были процики у которых только аккумулятор, указатели и память на нулевой страничке вместо регистров. А у других весьма немалое количество функциональных регистров. Для таких не использовать их весьма странно, но создатели ЯВУ всегда бились за легкость портирования( хотя честно сказать лично мне это не понятно, особенно в нынешние времена). Характерно, что FORTH никто не порекомендовал. У самого, честно сказать, от него крыша съезжала. Мало того, что он суперстековый, так еще и "инопланетянский".

Oleg N. Cher
24.10.2020, 04:10
но помнится там можно было привязать переменные к регистрам?В Паскале? Я не помню такого. Если что-то и было, то нестандартное. Впрочем, в Си тоже был модификатор register, указывающий компилятору по возможности размещать переменную в регистре.


Просто были процики у которых только аккумулятор, указатели и память на нулевой страничке вместо регистров.Типа 6502? А посмотрите Cowgol (http://cowlark.com/cowgol/index.html), там довольно интересно решаются эти проблемы. Нет рекурсии. В общем, всё в сторону качества генерации кода при минимальных наворотах компилятора в сторону оптимизации. Кстати, компилятор Cowgol умеет генерить машкод для 6502. Будет интересно увидеть практическое применение - игры, например (для 6502 и Z80). Но я сам им заниматься не планирую. Интересно, "вот бы раньше попалось", но... :-)


А у других весьма немалое количество функциональных регистров. Для таких не использовать их весьма странно, но создатели ЯВУ всегда бились за легкость портирования( хотя честно сказать лично мне это не понятно, особенно в нынешние времена).Почему же непонятно? :-) Ведь хочется, чтобы код работал везде, поэтому изобретают всяческие питоны.


Характерно, что FORTH никто не порекомендовал. У самого, честно сказать, от него крыша съезжала. Мало того, что он суперстековый, так еще и "инопланетянский".Ну да. На нём писать банально дискомфортно. А отладка это вообще адЪ. Хотя советуют делать мелкие слова. При написании кода на Форте постоянно приходится вертеть в уме "как это разложить на стеке?", "а не опустошил я стек излишне?". Намного эффективнее думать в терминах решаемой проблемы, а от стека всё равно не уйти. Для древнего телескопа, управляемого процем с 8-16 Кб памяти, оно может и ничего - вся система помещается в кристалл. Но сейчас в наше время - все ищут комфорта и скорости разработки.

А известны хоть какие-то игры для Z80 или 6502 на Форте? И чтобы с исходниками, чтобы убедиться, что они и правда на Форте. А то, я слышал, Cauldron (https://spectrumcomputing.co.uk/index.php?cat=96&id=850) на Форте была написана, но это неподтверждённая информация. Просто у неё структура странная, не похоже, что асм.

Также для разработки игр практически не используют Модулу-2, а это самый интересный ЯВУ для мелких процев того времени (имхо).

Modula-2 в производстве компьютерных игр.pdf (http://zx.oberon.org/lib/CompGames-in-Modula-2.pdf)

andrews
24.10.2020, 13:13
А известны хоть какие-то игры для Z80 или 6502 на Форте?
для них не знаю, а мой любимый Metal Mutant, при попытке дизасемблирования содержит очень странный код

Oleg N. Cher
25.10.2020, 12:21
Ну, Metal Mutant может быть написан на чём угодно :-) Это как однажды мне попался странный Арканоид для DOS, тоже очень интересный код после дизасма получился. Есть игра Abuse (https://www.old-games.ru/game/320.html), так она на LISP'е.

Но если брать старые процы и альтернативные асму средства разработки, то нельзя сбрасывать со счетов язык PL/M. На нём были написаны многие утилиты ОС CP/M и вроде бы даже часть самой CP/M, и сам язык PL/M действительно несколько ушёл от асма, хотя и недалеко. Жаль, что сейчас его не используют для разработки игр под ретро.

PavelZX
25.10.2020, 20:01
Есть игра Abuse, так она на LISP'е.
Кстати, а что на счёт Фортрана и Лиспа? На сколько они (в соответствующей по времени редакции) подходят для разработки игр на (и для) старых платформ?

Oleg N. Cher
26.10.2020, 00:15
Ну, тут всё упирается в существующие компиляторы. Лисп язык интерпретируемый, и хотя и были попытки его компилировать в машкод, обычно результирующий код весьма тормозной и немалого размера - язык-то заточен под работу с динамическими структурами данных и сборку мусора. Я не вижу преимуществ Лиспа для разработки под ретро. Можно было бы накорябать какое-то языковое подмножество, и такие попытки уже были - точно был какой-то MicroLisp для Спектрума, но он остаётся на уровне игрушки даже в большей степени, чем Си или Паскаль.

Старинный Фортран смысла использовать в наше время не вижу. С тем же успехом можно использовать Бейсик. Более структурные версии Фортрана есть для больших машин (Fortress), но для старых их нема. Да и зачем юзать неструктурный ЯВУ, если есть структурные и модульные.

Так что PL/M, Cowgol (если хочется "без асма", и то не получится - нужны будут библиотеки, которых конечно же нет).

Я лично для себя выбрал SDCC. С позиций "асма", если использовать встроенный ассемблер, то он привносит некое подобие модульности и структурности, даёт возможность оформить машкодовые процедуры в библиотеку, из которой их можно использовать по мере необходимости, в то же время Си не особо оторван от железа. У самого SDCC по сравнению с другими компиляторами есть плюшки - регистровая модель вызова функций __z88dk_fastcall, стековая модель вызова __z88dk_callee, при которой аргументы из стека вынимает сама процедура. Это маленько эффективнее, чем убирать их вызывающим кодом. Также есть возможность для подпрограмм на асме задать набор использованных в асм-коде регистров __preserves_regs(b,c,d,e,h,iyl,iyh), что теоретически даёт компилятору хорошие возможности по оптимизации. Говорю теоретически, потому что не заметил особой пользы от этой директивы. Хотя душу конечно греет)

С позиций "ЯВУ и чтоб без асма" тут маленько посложнее, потому что всё-таки стековая модель вызова, передачи параметров и локальных переменных берут своё. Ну это традиционно в Си так всегда было. К тому же, работая на Си, постоянно тянет вставить вставочку на асме, ибо без этого никак. Поэтому программы для ретро вряд ли будут такие уж выверенные с позиций хорошей переносимости. Хотя я экспериментировал в этом направлении, и считаю, довольно успешно. Например, вот мой видео-доклад:

https://youtu.be/3ic5XsdLUCg

andrews
26.10.2020, 12:15
Практически "белое пятно" оптимизирующие кросс-системы для ретро-компьютеров, впрочем кросс-системы вообще тоже. А ведь нынешние реалии таковы, что вычислительная мощь современных компов даже для такой казалось бы не архи-сложной задачи почти никак не может быть использована. И все эти сказки, "что роботы делают роботов, а программы пишут программы" так и остаются пока что сказками. В этом плане и Lisp и Prolog, и Python и другие могли бы дать многое, но...кажется кому это надо? Ведь быстрой отдачи не будет! И все же, согласитесь, если нет программ, пишущих программы в автоматизированном( под контролем и вмешательством программиста) для относительно примитивных архитектур, то тем более не стоит их ожидать и для более сложных.

PavelZX
26.10.2020, 13:34
И все же, согласитесь, если нет программ, пишущих программы в автоматизированном( под контролем и вмешательством программиста) для относительно примитивных архитектур, то тем более не стоит их ожидать и для более сложных.
Тут уже нужен философский, а не математический подход. Который я применяю при проектировании Языка Образов. Чтоб программа могла писать саму себя, она должна иметь представление о среде и её возможностях. Более того, с учётом что идеальной документации не существует, такая "умная" программа должна уметь учится, то есть исследовать среду и применять результаты исследований и экспериментов на практике...

andrews
26.10.2020, 13:46
Да, начинать с формализованного описания архитектуры, представления знаний о ней! Вот я сейчас заканчиваю описание первой версии L60. Вроде бы все учел. Нет, не все! Как смотреть содержимое указателя стека, если вывод на консоль идет через аккумулятор, а в системе команд нет инструкции пересылки содержимого указателя стека в аккумулятор. Значит такая инструкция нужна, и надо ее добавить в систему команд L60 - это "процессор конца 60-х" когда еще не было 8008. Но конечно так не получилось до конца. И в обещанные 2000 логических вентилей я явно не уложился.

Правда это уже даже не программирование программой, а синтез архитектуры программой. Все, что можно определить алгоритмически, можно и запрограммировать. Написание программ алгоритмизируется? Тогда давайте программы, пишущие программы и выдающие в выходной файл линии ассемблера. А человек проверит и оптимизирует, если нет программного оптимизатора ассемблерного кода. Но самое сложное, это конечно "постановка задачи". Какую программу пишем? С каким функционалом, интерфейсом, ограничениями? Где берем стандартные алгоритмы? Как изобретаем нестандартные? Вот последний пункт программе возможно пока что "не по зубам".

PavelZX
26.10.2020, 18:38
Как изобретаем нестандартные?
Не знаю, можно ли это применить в данном случае... Любой алгоритм, это последовательность (хотя что-то можно делать параллельно тем более в FPGA) элементарных операций (действий) над операндами (объектами). Можно, на любом уровне абстракции, описать некие свойства объектов, а действия представить как модификаторы эти свойств. Результат выполнения алгоритма можно как-то оценить, по разным критериям, время выполнения, расходование ресурсов и прочее... Алгоритм генерировать случайным образом, с учётом применимости действия к объекту. При чём это можно делать как бы сверху вниз. К примеру, персонажу надо взять предмет, но он не досягаем в данный момент, значит, к нему надо подойти, походу огибая препятствия. Есть варианты поиска пути, надо будет заодно проверить, какие можно использовать в данный момент) Можно ли это как-то использовать на уровне аккумулятора и регистров CPU и имеющегося микрокода, я не задумывался пока что, но не вижу препятствий, на вскидку...

andrews
26.10.2020, 20:33
Самое умное, что я придумал "для практики" стараться описывать алгоритмически то, что я делаю сам.

Ну вот на примере разработки этой архитектуры L60.
1)От чего я отталкивался, с чего оно пошло? Ведь у всякого творческого процесса есть "точка старта" и "зерно кристаллизации" или "результат первого шага".

Содержательная история моей "хотелки". Полагаю, что для любой современной программы это неформализуемо и не подлежит алгоритмизации. Хоть пока придется людям и сформулировать это для программы.

В данном случае в 60-е годы в Ленинграде в КБ-2 Староса была создана новая технология, которые сами создатели назвали "куб памяти". Они придумали, как делать ферритовую память для компьютеров не на катушках с ферритовыми сердечниками, а просто просверливая отверстия в пластине феррита! И получилась на небольшой по размере пластине значительная по тем временам емкость энергонезависимой и относительно быстродействующей памяти. На триггерах память была конечно быстрее, но технология производства микросхем не позволяла тогда иметь много и относительно недорогой триггерной памяти. Пластины с усилителями собирали в пакет и получали "куб памяти" емеостью 1KW. На микросхемах же тогда можно было получить от силы 100-200 триггеров! Магнитофоны же были и во времена гитлера, в 60-е годы в Японии они уже тоже были на микросхемах, но в СССР из-за особого "лампового лобби" всюду господствовали эти чертовы электронные лампы, которые по идее должны были благополучно уйти в небытие в середине 50-х. Транзисторы и микросхемы были для электронных ламп типичной "закрывающей технологией". Между транзисторами и микросхемами нет такой пропасти, как между ними и лампами. А теперь представим, что за тем и этим стоят люди и деньги. Стоят специфически, совсем не так как в рыночной экономике. Поэтому никакие привычные аргументы для смены одним другого не действуют, и наоборот командно-административные механизмы действуют жестко и эффективно. Но ферритовые "кубы памяти" это такой замаскированный удар со стороны транзисторно-микросхемного по ламповому лобби. Ведь и ламповые компьютеры ее могут использовать. В общем в память об этой странной эпохе, которая не раскрыла многие таланты в поколениях 50 и 60-х в СССР, я этим занялся. Проект начался не с экскизной проработки "процессора", а с памяти. Я ее представил трехуровневой.
a) созу на триггерах ( регистры)
б) дозу ферритовая на кубах памяти
в) внешняя на магнитной ленте
и еще была цель создать максимально простую архитекуру, чтобы при реализации на vhdl уложиться в 2000 вентилей. Это бы означало, что в конце 60-х на МИС и СИС можно было бы реализовать ее в виде одной многоплатной корзины( из 8-10 плат).

Затем надо было выбрать устройство для интерфейса данного компа с человеком. Это была эпоха расцвета пишущих электрических машинок, которые могут быть и устройством ввода, и устройством вывода. Позже к этому пришел создатель Apple-I и многие последовали его примеру, включая меня. Но в конце 60-х, кто-то опережая создателя Apple-I мог поступить точно так же. Правда в 60-е вынести с работы электрическую пишущую машину в отличие от 80-х и 90-х было еще невозможно без тяжких последствий, но ее можно было привезти из Японии, если твой отец был капитаном дальнего плавания. А почему было нельзя сделать терминал? В СССР? В конце 80-х? О, об этом можно бы было снять драматический фантастический блокбастер. В общем понятно, что это было для некоторых граждан круче автомобилей "Волга" и "Победа", и даже дачи в Крыму! Чтобы описать все это для компьютера пришлось бы придумать формализацию для описания советского режима тех лет. В процессе разработки я вспомнил про самодельный плоттер из осциллографа. И вот на этом "сорвался"! К черту это поганое советское прошлое и мое убогое счастливое детство. На плоттере я отвел душу. Сделав его многоцветным с многоцветной бумагой. Ведь эмуляция нас никак не ограничивает. Вот это неформализуемая часть разработки. Люди ведут себя нецелесообразно и непредсказуемо.

Oleg N. Cher
26.10.2020, 20:53
В этом плане и Lisp и Prolog, и Python и другие могли бы дать многое, но...Ничего принципиально нового в Лиспе или Питоне нет. Пролог может показаться более интеллектуальным, но это специфический пробег механизмом, ищущим выводы из заданных условий, по какой-то экспертной базе данных. Поначалу его работа кажется чудом, потом понимаешь, что тоже - дико неэффективно, грубо, как оценка ходов шахматной партии методом брутфорса. Только скорости и спасают, и вообще делают возможным.

В плане того, как смогли добиться серьёзных уровней оптимизации - я бы смотрел в сторону проекта LLVM. Но там тоже всё закодировано руками, и кабы не на Си. Никакой ИИ программы не пишет, и писать в обозримом будущем не будет. Будут огромные базы и брутфорс. И моделирование на основе этих данных по каким-то спискам критериев.


И все же, согласитесь, если нет программ, пишущих программы в автоматизированном( под контролем и вмешательством программиста) для относительно примитивных архитектур, то тем более не стоит их ожидать и для более сложных.Истина.

PavelZX
30.10.2020, 14:49
Может у кого есть видеочип MC6847 для экспериментов? На Али по 10 шт. продают: https://aliexpress.ru/item/32881588778.html То что можно было по одной штуке купить недорого уже пришло... Кстати, были наверное обсуждения где-то, использовать такой или подобный, но более мощный, для расширения возможностей спектрума)

PavelZX
28.08.2024, 13:35
Посмотрел, что я тут насочинял. Получается, что никому не интересна тема? Что если использовать Colorlight boards 5A-75E, для такого проекта? https://github.com/Peter-van-Tol/LiteX-CNC

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

Управляющий контроллер сделать на чём-то подобном: https://aliexpress.ru/item/1005005434411547.html