nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 08:22



Reply to topic  [ 64 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Процессор на FPGA? 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
newold86 wrote:
Люди, вы чего - об интернете и поисковиках не слышали, если тут написанному не верите ?!
Alekcandr wrote:
Ресурсы FPGA могут эмулировать Z80 (но такого я не видал пока)

https://opencores.org/project/t80
barsik wrote:
И я очень сомневаюсь в правильности утверждения, что на FPGA можно с'эмулировать целый компьютер с процессором 486.

https://opencores.org/project/ao486

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

_________________
iLavr


22 Oct 2018 08:04
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
Lavr wrote:
"люди" любят написать свои длинные посты с сомнительными утверждениями
Люди в кавычках это оскорбление, т.к предполагает, что это не люди, а червяки, инопланетяне или недочеловеки. И считайте длину своих постов. Форум предназначен для того, чтобы каждый мог высказать своё мнение, даже если оно ошибочное, не боясь, что в случае ошибки, ей будет посвящено 30 последующих постов полных злорадства и оскорблений.
Lavr wrote:
в лежащую на виду английскую Википедию заглянуть неспособны
Ну вот, снова раздувание уже два раза удалённой полемики о том, что в списке литературы одной статьи в английской Вике мелким шрифтом указана ссылка на статью о недокументированных командах 8085, а в Виках на всех остальных языках мира этого безобразия нет.

Если есть русская статья, читать намного удобнее на родном языке, а не на иностранном, особенно на английском (который кстати, очень не люблю, предпочитаю другие иностранные языки, т.к английский менее конкретный, чем любой другой язык). Потому обычно смотрю русскую Вику или немецкую Вику (когда русская статья отсутствует или совсем короткая).

 spoiler
.
Я давно заметил, что в русской Вике все статьи про микропроцессоры и иностранные ретро-компьютеры являются просто переводом статей из английской Вики, потому и нет смысла читать на неудобном для чтения иностранном языке.

К сожалению, иногда предпочтение языка подводит. В частности, статья в русской Вике про микропроцессор Intel 8085 почему-то содержит в 5.63 раза меньший объём текста, чем английский аналог. Кстати, такая же ситуация и со статьёй про процессор 6800, там вообще английский текст полнее почти в 12 раз (58.2 кб и 4.9 кб). Первая мысль, что переводчики статей для русской Вики поленились переводить статьи целиком, сделав сокращённый дайджест.

Но более вероятно, что на русский язык перевели только первый очень древний вариант английской статьи, а то, что после этого эта статья многократно редактировалась и дополнялась, осталось незамеченным. На эту мысль наводит то, что список литературы русской статьи про 8085 намного короче, чем в английской. И в частности, в русской статье в списке ссылок на литературу нет ссылки на вышеуказанную статью про недокументированные команды 8085.

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

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

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


Last edited by barsik on 22 Oct 2018 11:30, edited 2 times in total.



22 Oct 2018 10:13
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Люди в кавычках, это отсылка к ранее размещённому сообщению "Люди, вы чего" - только и всего...

_________________
:dj: https://mastodon.social/@Shaos


22 Oct 2018 17:54
Profile WWW
Novelist

Joined: 15 Jun 2018 16:58
Posts: 26
Reply with quote
Alekcandr wrote:
newold86 wrote:
Ага, и что мы имеем корку эмулирующую Z80. И не совместимую растактовку с оригиналом.
.

"Давайте спорить о вкусе устриц и кокосовых орехов с теми, кто их ел.." (цы)
Это весело и интересно.


23 Oct 2018 08:46
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
Кого волнует точное соответствие временной диаграммы работы самодельного процессора с картинкой в даташите. Ни в одном эмуляторе этого нет и что, кого-то это расстроило? Это вообще не важно, а важно, чтобы не было ошибок в эмуляции самих команд, а это уже давно достигнуто. Тем более, что речь не о ZX-Spectrum с его демо-сценой точно привязанной к машинным тактам, а о компьютерах на КР580 без прерываний, где программ настолько привязанных к времянкам нет вообще ни одной.

В эмуляторах для Windows, где принцип заключается не в подгонке времени прогона каждой маш.команды к реалу (как это в эмуляторах для MSDOS), а в подгоне времени прогона десятков тысяч команд к реалу, об этом даже речи нет. Даже хуже, в эмуляторах Windows программа прогоняется не постоянно и равномерно, а короткими эпизодами, т.е например, 5 МСЕК программа 8-ми разрядки прогоняется с эффективной скоростью в 100 МГЦ, а затем пауза на 15 МСЕК на визуализацию, а затем пауза для подгонки эффективной скорости как в прототипе. Под реал подгоняется только количество маш.тактов эмулируемого CPU прогоняемое в единицу времени. От этого в таких эмуляторах программный звук не похож на реал. Но никого это особо не расстраивает.

А в самодельном процессоре даже таких недостатков не будет. Даже, если есть разбаланс по временам прогона разных команд, это ни на чём не скажется. А вообще, чем скоростнее эмулирующий процессор, тем точнее можно подогнать времянки. Если одна команда прогоняется чуть быстрее, чем в реальном процессоре, а другая чуть медленнее, но средняя скорость прогона программы близка к оригиналу, то Вы не заметите никакого отличия от реала. И даже в программно генерируемых звуках. Есть эмуляторы, где разбаланс отдельных команд от реала достигает 200%, но на экране отличий нет, только ноты, возможно, чуть фальшивят (ну а много ли на РК86 игр с музыкой?).

В реале времянки, например, КР580 и Z80 (в отличие от 6800 и 6502) не оптимальны для построения систем с чередующимся доступом к общему ОЗУ процессора и видеочасти. А в самодельном процессоре можно это исправить, что повысит надёжность и упростит отладку (отпадёт, например, как в ОРИОНЕ подгонка фронтов RAS-CAS тормозящими емкостями на землю).

Выше я уже упомянул, что самодельный процессор можно ускорить. В реальном Z80 полно пустых машинных тактов (когда шина вообще не используется), что кстати и используется в крутых процессорах для досрочной подкачки кода следующих команд и организации конвейера. В самодельном процессоре можно резко сократить число неиспользуемых маш.тактов. Например, команда PUSH IY длится аж 15 маш.тактов. Из них доступ к шине происходит лишь в 4-х маш.тактах - два на чтение кода команды (двухбайтовая) и два на запись в ОЗУ содержимого IY. Если FPGA прогонит эту команду за 4 маш.такта, это даст ускорение в 3.75 раза. Внутрирегистровые однобайтовые команды ускоряются в 4 и более раз, а 100% оптимизация, вероятно, даст ускорение не менее, чем в 3 раза. Хотя для ЭВМ где пустые маш.такты используются (видеогенератором для доступа к ОЗУ), несколько пустых маш.тактов в команде придётся оставить. Но для машин с асинхронной видеочастью такой проблемы нет.

Таким образом, опять таки с нулевой трудоёмкостью (т.е без всяких доработок на плате) можно поиметь программно-переключаемое турбирование в 2 раза, как часто делали в реале, причём без необходимости ставить вентилятор (для борьбы c перегревом динамических ОЗУ вызванного удвоением такта RAS-CAS).

Но это пока неважно. Я ведь вёл речь не о получении супер-процессора, а о получении процессора, который до нуля упрощает сложность замены КР580 на Z80 в реальных конструкциях, а также о том, чтобы получить процессор с цоколёвкой и протоколом шины КР580, но с системой команд других процессоров. Имея Verilog или VHDL программу для Z80, 1801, 8088, 6502... в ней надо изменить эмулируемый интерфейс, т.е последовательность сигналов на эмулируемых выводах.

Но похоже, ничего такого не будет сделано, т.к нет нужного пассионария, т.е фаната отечественных ретро-ЭВМ на КР580, обладающего соответствующими навыками и энтузиазмом.


Last edited by barsik on 23 Oct 2018 12:09, edited 1 time in total.



23 Oct 2018 10:23
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Alekcandr wrote:
Я не зря упомянул тут - ресурсы FPGA. Так вот эти ресурсы ничего общего не имеют с древней технологией создания Z80 и подобных микросхем. И эти ресурсы должны работать строго синхронно, иначе любая модель созданная на FPGA легко рассыпается при любых изменениях исходных условий.

Ничего, что упомянутый мною MCL86 нормально проигрывает демку 88 MPH - при том, что эта демка учитывает как такты процессора, так и такты CGA адаптера ? Насколько более точно нужно эмулировать ???

Alekcandr wrote:
Хотя были попытки повторить структуру Z80 на FPGA. Проект A-Z80 CPU. И что мы имеем? А имеем мы то о чем я написал в предыдущем абзаце.

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

А вообще странный спор - асинхронные схемы в FPGA вполне можно сделать, только нужно просто понимать соответствующие нюансы, и все...


23 Oct 2018 12:05
Profile
Novelist

Joined: 15 Jun 2018 16:58
Posts: 26
Reply with quote
Проект A-Z80 CPU - как раз имеет проблемы с таймингами. комуу то они важны. автору несколько раз на это указывали, но допиливать он не собирается. а core T80 последний релиз сентябрь-октябрь этого году. Ну и чтобы не совсем уж не по теме - да, я запускал 486 проект. И винду 98 ю на йом, вполне сносно работает. Дуум подтормаживает, но кое что вполне сносно и играбельно,


23 Oct 2018 13:05
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
newold86 wrote:
Ничего, что упомянутый мною MCL86 нормально проигрывает демку 88 MPH - при том, что эта демка учитывает как такты процессора, так и такты CGA адаптера ? Насколько более точно нужно эмулировать ???
Да речь у меня была не о тактах (их количестве). А о том, что было предложено реализовать х86 на FPGA и просто втыкать его в панельку за место оригинального проца. Как пример мной был, упомянут Z80. И что на данный момент не существует в открытом доступе (может и коммерческой реализации) такого эмулятора, которой бы полностью мог эмулировать оригинальный Z80. Со всеми нюансами. Хотя энтузиастами предпринималось допиливание корки t80 (в том числе и в какой-то степени коррекция формируемых t80 временных диаграмм сигналов /M1, /RD, /WR и т.д. В ущерб синхронной модели).

Если такой эмулятор существует для х86 – это прекрасно, а вот для Z80 нет.

newold86 wrote:
Нет, мы имеем то, что автор статьи позже нашел принципиальную ошибку в своей первоначальной реализации и считает, что, скорее всего, после исправления той ошибки заработала бы и асинхронная реализация.
Модель прекрасно работает и мной лично была апробирована. Толь вот нифига она не гонится. Может чего и поменялось за последний год. Тем ни менее t80 без танцев с бубнами работал у меня на 50 МГц и скорее это не предел.

newold86 wrote:
А вообще странный спор - асинхронные схемы в FPGA вполне можно сделать, только нужно просто понимать соответствующие нюансы, и все...
Спора нет. А так не, ну его нафиг, перекомпилировали проект, перенесли на новый камень и полезли глюки. Ладно, еще если проект простой или частота маленькая, а если нет?

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


23 Oct 2018 13:37
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
На соседнем форуме HardWareMan запускал точную модель 8080 (http://zx-pk.ru/threads/23349-potaktovyj-klon-i8080-na-fpga-cpld/page25.html) и она прекрасно работала, проходила все тесты. И тайминги с реальным процессором совпадают.


23 Oct 2018 23:37
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
fifan wrote:
На соседнем форуме HardWareMan запускал точную модель 8080 (http://zx-pk.ru/threads/23349-potaktovyj-klon-i8080-na-fpga-cpld/page25.html) и она прекрасно работала, проходила все тесты. И тайминги с реальным процессором совпадают.
Ага, есть такой проект :) Но сам его на реале не щупал, сказать мне тут нечего.

Скажем так тему слегка качнуло в сторону Intel подобных процов. По мне даже полезно. Ноги то у х86 вот так сразу то не выросли :D

Учился ходить у старших братьев. И придумали еще один "извращенный" метод прыжка в расширении адресного пространства. Хотя эти нотки видимо уже напевали параллельно с I8080. По мне Моторала была на 100 шагов впереди, но не сложилось.

Завалили рынок докторской колбасой от Intel, если не вдаваться в подробности пока свежая, вкусная. Вот и отрыжка. Кремневая технология почти уперлась в придел (уже многоитажки строят, только дорого это очень. А по сути ничего не меняется. И программить – разучились, на этих бобах.

Опять меня слегка заносит. Хотя чего тут говорить откройте крышку у своего I5 и посмотрите (это просто ппц, на чем экономят. а с виду все красиво), это же кубик не больше I8080. Только сделанный на много тоньше технологии.:mrgreen:

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


25 Oct 2018 03:02
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Кстати, наткнулся тут недавно на некий MCL86 Core . На хомяке как-то все скромно, гораздо интереснее в блоге афтора: https://microcorelabs.wordpress.com/ . Это реализация идеи из первого поста этой темы :mrgreen: Сам эмуль занимает в минимальном режиме 308 LUT, но использует принцип "секвенсора" - для этого ему нужен микрокод в памяти, который конечно большой(4Kx32). Но в современные FPGA все это влазит со свистом и без проблем.

Сорцы на GitHub: https://github.com/MicroCoreLabs/Projects

PS: Кстати, там у афтора не только 8088, но и 6502 и 8051. Плюс еще какие-то эксперименты с RISCV5 и чего-то еще, я особо не вникал.

_________________
https://t.me/tronix_blog


21 Feb 2020 09:55
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Tronix wrote:
Кстати, наткнулся тут недавно на некий MCL86 Core

Пару лет назад в качестве эксперимента я им заменил настоящий 8088 в какой-то из своих поделок. Помню, что танцев с бубном было довольно много, но вроде в конце-концов MS DOS загрузился.
Также точно помню, что простая схема из процессора и ОЗУ/ПЗУ заработала влет. Я даже потом использовал ее, как микроконтроллер для разных нужд, так как на другом программировать не умею...

[update] Оказывается, я уже здесь о нем упоминал - viewtopic.php?f=87&t=19138&start=30#p148129 :)


21 Feb 2020 10:06
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
newold86 wrote:
Пару лет назад в качестве эксперимента я им заменил настоящий 8088 в какой-то из своих поделок. Помню, что танцев с бубном было довольно много, но вроде в конце-концов MS DOS загрузился

[update] Оказывается, я уже здесь о нем упоминал - viewtopic.php?f=87&t=19138&start=30#p148129 :)


Рекурсия, да. А на чем пробовали - на max10? Кстати, а где ее взять-то эту max10, допустим 10M08 в маленьком BGA... Может действительно платку DIP-40 развести для нее, с одной стороны конечно хочется попробовать поиграться....

_________________
https://t.me/tronix_blog


21 Feb 2020 10:27
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Tronix wrote:
Рекурсия, да. А на чем пробовали - на max10?

Точно на Cyclone IV, а дальше уже не помню. Но какая разница ?

Tronix wrote:
Кстати, а где ее взять-то эту max10, допустим 10M08 в маленьком BGA... Может действительно платку DIP-40 развести для нее, с одной стороны конечно хочется попробовать поиграться....

Я подобные вещи в местах типа Digikey всегда заказывал, так как регулярно тусуюсь в местах, где доставка из того же Digikey занимает сутки с момента заказа. В России еще иногда тот же ЧиД…

Но смысл в платке с одной MAX10, без обвязки ? Воткнуть ее вместо чего-то типа 8088 все равно не получится из-за необходимости согласования уровней. Плюс тактовый генератор, питание и т.д. А если заморачиваться еще и с этим, то, наверное, проще купить недорогую отладочную плату и с ней играться...


21 Feb 2020 10:37
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
newold86 wrote:
Но смысл в платке с одной MAX10, без обвязки ? Воткнуть ее вместо чего-то типа 8088 все равно не получится из-за необходимости согласования уровней. Плюс тактовый генератор, питание и т.д. А если заморачиваться еще и с этим, то, наверное, проще купить недорогую отладочную плату и с ней играться...


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

Ну, а обвязка - с питанием просто - линейник регулируемый на 1.2V, аналог и ADC не подключать если возможно, а если не возможно - то еще один линейник регулируемый для 2.5V. Корпуса какие-нибудь маленькие посмотреть, хотя можно и обычные SOT-223 влепить. Мощность тут небольшая судя по даташиту, 300 мА за глаза. Эфективность тоже пофигу, чай не от батарейки питаться 10 лет будет. Поэтому с DC/DC имхо мудрить не надо, а просто тупо грубо LDO-шки и все. Генератор - ну продаются генераторы 7x5 мм, 5x5 мм и даже меньше бывают на разное напряжение, 1.8V, 3.3V. Частота то наверное не особа важна, можно почти любой брать, а потом уже PLL вытянуть сколько нужно. Согласователи уровней тоже всякие есть, только направление передачи особенно для шины данных надо откуда-то взять.

В принципе, нашел у офф поставщика Альтеры, есть эти MAX10 BGA-шные. Интересно, а они с шариками продаются или голые?

_________________
https://t.me/tronix_blog


21 Feb 2020 11:01
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 64 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.