Гибрид 8085 и 6502 в FPGA

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Гибрид 8085 и 6502 в FPGA

Post by Shaos »

На днях меня посетила идея - а что если создать VHDL гибрид двух процессоров - 8085 (8080 с парой дополнительных команд) и 6502 - ведь оба они имеют пробелы в кодах команд, в которые можно вставить команды смены процессора. Представьте насколько интересно было программировать, переключаясь между двумя популярными системами команд :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

Интересно было бы.
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Re: Гибрид 8085 и 6502 в FPGA

Post by pvlad »

Shaos wrote:На днях меня посетила идея - а что если создать VHDL гибрид двух процессоров - 8085 (8080 с парой дополнительных команд) и 6502 - ведь оба они имеют пробелы в кодах команд, в которые можно вставить команды смены процессора. Представьте насколько интересно было программировать, переключаясь между двумя популярными системами команд :)
Вопрос интересный, но его следует продвигать в несколько другой плоскости. 8085 и 6502 - это процессоры с разной архитектурой, да и интерфейс строится по разному. Не вижу в этом интереса и смысла в таком гибриде.
Мне представляется более интересным добавление в 8085 битовых операций, портов и других прибамбас от микроконтроллеров.
Поясню откуда желания! Раньше работал с 8085(8080) - это универсальный процессор, но плох для управления - нет битовых операций с регистрами, а главное с портами. Замучишься мигать светодиодом. В настоящее время работаю с MSС-51 - всем хорош (мощные команды, производительность - глупости, если кто считает, что он скоро умрет!) но нет возможности создавать перемещаемые и самомодифицирующиеся программы. Делать оперативную догрузку блоков. Иметь общее адресное пространство и т.д.
Вот и есть мечта: Сделать на Альтере 8085 (а лучше Z80!), добавить порты, битовые операции с регистрами и портами и т.д. Получилась бы отличная и универсальная вещь, как для управления, так и для универсального применения. Но, к сожалению, я не владею VHDL, поэтому могу лишь активно помогать вести этот проект, тестировать, если кто-то возьмется его воплощать.
А пока, остается всего-лишь мечтать!
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Ну разные то они может и разные, однако блоков используемых и там, и тут я думаю будет достаточно. А какие битовые инструкции интересуют? Установить-снять бит, проверить состояние бита любого адреса или порта?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Re: Гибрид 8085 и 6502 в FPGA

Post by HardWareMan »

pvlad wrote:Вот и есть мечта: Сделать на Альтере 8085 (а лучше Z80!), добавить порты, битовые операции с регистрами и портами и т.д.
Z80 имеет развитую систему битовых операций. Разве что с портами напряженка. Но при организации портов в области ОЗУ все встает на свои места (регистр "М", он же (HL)).
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Post by CHRV »

Раздел processors в:
http://opencores.org/projects

З.Ы. Пока одни звездят - люди делают :kruto:
Московский филиал NedoPC http://www.nedopc.com
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

CHRV wrote:Раздел processors в:
http://opencores.org/projects
Угу - я там уже зарегистрировался ;)
Правда весь процесс занял больше двух недель...
Я тут за главного - если что шлите мыло на me собака shaos точка net
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Post by pvlad »

Shaos wrote:Ну разные то они может и разные, однако блоков используемых и там, и тут я думаю будет достаточно.
Извините, не совсем понял. Какие блоки можно использовать "там и тут"? 8085 - это процессор имеющий полный набор всех регистров внутри, а 6502 - имеет внутри только несколько регистров-указателей, да аккумулятор. Все остальное организовывается в памяти. Кстати, память и порты (порты можно положить только на память!) тоже по разному подключается. Честно говоря, мне за свою жизнь (извините - уже скоро пенсия!) не приходилось видеть поклонников обоих процессоров в одном лице. Были либо спектрумисты, либо все остальные.
Shaos wrote:А какие битовые инструкции интересуют? Установить-снять бит, проверить состояние бита любого адреса или порта?
Конечно, можно взять Z80 и по предложению HardWareMan порты положить на память и иметь счастье с битовыми операциями. Спрашивается: на кой хрен нужно повторять счастье с РК-86, когда все адресное пространство загадили портами? Естественно, команда OUT коту под хвост! Можно примудрить крутой дешифратор и т.д. Т.е. снова огород, который ваши отцы мудрили только из-за того, что деваться было некуда. Сегодня есть новые технологии, позволяющие "старое пальтишко перелинцевать на новый лад". Было бы желание и интерес.

Что меня интересует? На соседнем сайте я пытался убедить коллег в своих идеях, но похоже не был воспринят.
Вот два основных поста:
http://zx.pk.ru/showpost.php?p=220702&postcount=1
http://zx.pk.ru/showpost.php?p=225567&postcount=129

К сожалению, там доминирует идеология just for fun, а мне, честно говоря, в эти игрушки через 20 лет повторно играть уже не интересно. Я наигрался, пока изобретал этот "Орион-128". Почитайте, хотя бы только мои посты и Вам станет понятно, что я хотел. Возможно на Вашем сайте можно было бы запустить это проект в каком-то другом виде, не обязательно привязанным к "Ориону".
А вот толкать теорию по второму кругу, если не будет конкретного исполнителя, которого эти идеи так же заинтересуют, извините великодушно - не хочется.
Без обид...
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

pvlad wrote:
Shaos wrote:Ну разные то они может и разные, однако блоков используемых и там, и тут я думаю будет достаточно.
Извините, не совсем понял. Какие блоки можно использовать "там и тут"? 8085 - это процессор имеющий полный набор всех регистров внутри, а 6502 - имеет внутри только несколько регистров-указателей, да аккумулятор. Все остальное организовывается в памяти...
под "блоками" я имел ввиду 8-битный сумматор с учётом переноса, инвертор, схему сдвига и т.д. - на самом деле у обоих процессоров очень много общего
pvlad wrote:
Shaos wrote:А какие битовые инструкции интересуют? Установить-снять бит, проверить состояние бита любого адреса или порта?
Конечно, можно взять Z80 и по предложению HardWareMan порты положить на память и иметь счастье с битовыми операциями. Спрашивается: на кой хрен нужно повторять счастье с РК-86, когда все адресное пространство загадили портами? Естественно, команда OUT коту под хвост! Можно примудрить крутой дешифратор и т.д. Т.е. снова огород, который ваши отцы мудрили только из-за того, что деваться было некуда. Сегодня есть новые технологии, позволяющие "старое пальтишко перелинцевать на новый лад". Было бы желание и интерес.
Во - точно, можно расширить систему команд 6502 командами общения с портами и в обе системы добавить работу с отдельными битами портов :)
pvlad wrote: Что меня интересует? На соседнем сайте я пытался убедить коллег в своих идеях, но похоже не был воспринят.
Вот два основных поста:
http://zx.pk.ru/showpost.php?p=220702&postcount=1
http://zx.pk.ru/showpost.php?p=225567&postcount=129

К сожалению, там доминирует идеология just for fun, а мне, честно говоря, в эти игрушки через 20 лет повторно играть уже не интересно. Я наигрался, пока изобретал этот "Орион-128". Почитайте, хотя бы только мои посты и Вам станет понятно, что я хотел. Возможно на Вашем сайте можно было бы запустить это проект в каком-то другом виде, не обязательно привязанным к "Ориону".
А вот толкать теорию по второму кругу, если не будет конкретного исполнителя, которого эти идеи так же заинтересуют, извините великодушно - не хочется.
Без обид...
Почитал - не вижу смысла толкать Z80 в ПЛИС - тяжёлый он...
8080 или 6502 или их гибрид ещё можно, а вот Z80 - уже тяжеловат
Лучше пойти по пути добавления нужных команд к существующим, а не возиться с алхимией перераспределения битов портов на существующие команды...
Я тут за главного - если что шлите мыло на me собака shaos точка net
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Post by pvlad »

Shaos wrote: под "блоками" я имел ввиду 8-битный сумматор с учётом переноса, инвертор, схему сдвига и т.д. - на самом деле у обоих процессоров очень много общего
Да нет! До такого уровня опускаться, видимо, не стоит, если не предполагается делать учебный стенд. В корпус Альтеры можно разместить два процессора и переключать их по управлению одним из выводов. Но, сначала надо определиться: для каких целей мы будем городить огород? Если просто побаловаться - это одно, а если с прицелом на конкретное применение - это другое. Лично я преследую цель получить на базе 8080 управляющий контроллер - что-то типа AVR или MCS-51, но с фоннеймановской архитектурой.
Shaos wrote: ...можно расширить систему команд 6502 командами общения с портами и в обе системы добавить работу с отдельными битами портов :)
Я не работал с 6502 и не знаю его ассемблер. По мне 8080. Но можно это делать поэтапно. Если будет цель: получить на Альтере полный микроконтроллер с портами и двумя CPU, работающими на одни и те же порты, одинаково подключенные ПЗУ и ОЗУ, то это будет уникальная вещь. Просто переключаешь тип процессора - кому какой ближе, и пишешь управляющую программы. Больше ничего менять не нужно. Кстати, в этот "гибрид" можно добавить еще UART и таймеры, или еще какие-то прибамбасы типичных МК.
Shaos wrote: Почитал - не вижу смысла толкать Z80 в ПЛИС - тяжёлый он...
8080 или 6502 или их гибрид ещё можно, а вот Z80 - уже тяжеловат
Лучше пойти по пути добавления нужных команд к существующим, а не возиться с алхимией перераспределения битов портов на существующие команды...
Абсолютно разделяю Ваше мнение. По мне, так лучше эмитировать битовые операции с портами и регистрами (хотя бы в пределах возможного) по аналогии с MCS-51. Я с ним давно работаю, поэтому могу свободно тестировать на самом низком уровне. То же относится и к 8080.
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

pvlad wrote:
Shaos wrote: под "блоками" я имел ввиду 8-битный сумматор с учётом переноса, инвертор, схему сдвига и т.д. - на самом деле у обоих процессоров очень много общего
Да нет! До такого уровня опускаться, видимо, не стоит, если не предполагается делать учебный стенд. В корпус Альтеры можно разместить два процессора и переключать их по управлению одним из выводов.
тогда они будут занимать в 1.5-2 раза больше места чем "гибридный" процессор, реюзающий блоки, так что при разработке опускаться до такого уровня не то чтобы стоит, а просто необходимо!
pvlad wrote: Но, сначала надо определиться: для каких целей мы будем городить огород? Если просто побаловаться - это одно, а если с прицелом на конкретное применение - это другое. Лично я преследую цель получить на базе 8080 управляющий контроллер - что-то типа AVR или MCS-51, но с фоннеймановской архитектурой.
понимаю
pvlad wrote:
Shaos wrote: ...можно расширить систему команд 6502 командами общения с портами и в обе системы добавить работу с отдельными битами портов :)
Я не работал с 6502 и не знаю его ассемблер. По мне 8080. Но можно это делать поэтапно. Если будет цель: получить на Альтере полный микроконтроллер с портами и двумя CPU, работающими на одни и те же порты, одинаково подключенные ПЗУ и ОЗУ, то это будет уникальная вещь. Просто переключаешь тип процессора - кому какой ближе, и пишешь управляющую программы. Больше ничего менять не нужно. Кстати, в этот "гибрид" можно добавить еще UART и таймеры, или еще какие-то прибамбасы типичных МК.
можно
pvlad wrote:
Shaos wrote: Почитал - не вижу смысла толкать Z80 в ПЛИС - тяжёлый он...
8080 или 6502 или их гибрид ещё можно, а вот Z80 - уже тяжеловат
Лучше пойти по пути добавления нужных команд к существующим, а не возиться с алхимией перераспределения битов портов на существующие команды...
Абсолютно разделяю Ваше мнение. По мне, так лучше эмитировать битовые операции с портами и регистрами (хотя бы в пределах возможного) по аналогии с MCS-51. Я с ним давно работаю, поэтому могу свободно тестировать на самом низком уровне. То же относится и к 8080.
ну вот в чём то наши мнения сошлись :)

правда вместо альтеры я предпочитаю Xilinx, а вместо MCS-51 - пики, но это уже мелочи ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Post by pvlad »

Shaos wrote: ну вот в чём то наши мнения сошлись :)
Ну, что-же: осталось начать и закончить!
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Post by pvlad »

pvlad wrote:
Shaos wrote: ну вот в чём то наши мнения сошлись :)
Ну, что-же: осталось начать и закончить!
Уважаемый Shaos! Мы на этом и закончили с гибридом? Понятно, если не будет "VHDL-исполнителя", то наша тема - обычная болтовня. В этом случае, нет смысла разрабатывать какие-то концептуальные и структурные решения.
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Как вариант, повторите Z80, просто расширьте действие битовых операций на порты тоже (в свободных местах префикса #ED).
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

HardWareMan wrote:Как вариант, повторите Z80, просто расширьте действие битовых операций на порты тоже (в свободных местах префикса #ED).
только не Z80 :)

хочется чего-то аля пик заиметь
pvlad wrote:Уважаемый Shaos! Мы на этом и закончили с гибридом?
ну почему же? когда подойдёт очередной квант свободного времени - набросаю свои предложения по расширению системы команд ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net