Получается, есть не две, а минимум 3 разных реализации Z80?
Вид для печати
Две - это какие ? NMOS/CMOS? Так это если делить по технологии изготовления.
Если по легальности - то лицензированные Зилог и цельнотянутые реверс-инжинирингом. Кстати как ни странно NEC по слухам тоже не попадает под лицензию.
Если исходить из тестов Патрика - то да, он различает как минимуум Zilog\NEC\ST в отношении флагов SCF/CCF
Если исходить из моего тестирования тестами Патрика - я бы еще разделил на две части, те, которые проходят тест в отношении флагов(недокументированны !) SCF\CCF, и те, которые не проходят, которым плевать на эти два бита :))
Которые при определенных, возможно, условиях, ведут себя как аппаратный ГСЧ, в д.с. как генератор случайных флагов. От чего эти условия зависят - ну трудно сказать, возможно сигнал WAIT или длина прерывания на них действуют, ил что-то на портах, но ведут себя натурально как в калейдоскопе - х. угадаешь, что будет в этих флагах при очередном включении :) Но это все undoc, так что Zilog тут как бы вообще не при делах )
Сгенерил этот паттерн ccfscr на "фирменном" Z0840008PSC, и на GoldStar Z8400A, паттерн одинаковый и такой в примерах назван "NEC". Вероятно это от платформы зависит не меньше чем от процессора (тестировал на Автоматике-ПЛМ).
Если можно - со скриншотами экрана, удивим Патрика другим паттерном Zilog-a :)))))
Это конечно немного оффтопик от топика, но тогда пусть модераторы разделяют темуу
На GS у мну паттерн был как на Zilog/ Потом перепроверю
Ну тогда бы надо и fulltest Патрика запустить, что он покажет
https://volutar.myds.me/zx/ccfscr/ph...6-goldstar.jpg
https://volutar.myds.me/zx/ccfscr/ph...59-10-8psc.jpg
В схеме видимо хреново brightness обрабатывается, не видно полос. Но в целом все совпадает с тем что как NEC.
Да, как у NEC
Мой GS тоже как NEC. Почти. Паттерн в общем и целом похож, но отдельные биты мигают как захотят. Тот самый случай калейдоскопа.
https://s.micp.ru/2W64T.jpg
Ого! Интересно конечно, почему так получается))
Берутся видимо с внутренней шины с остаточным зарядом как-бы что-ли!? Надо будет доработать эту прогу Патрика, чтобы видеть отдельно биты))
Самое главное, что вроде при работе на низкой частоте процессора я таких явлений не наблюдал! Хотя вполне возможно, что-то проглядел. Дело в том, что лет 15 назад занимался исследованием Z80 (в основном эффекты по этим битам 5 и 3), подключив Z80 через самопальный девайс к LPT-порту. Частота сигналов соответственно там получалась достаточно низкой))
Да, Патрик и это заметил. Но в целом сказал, что у него пока нет идей. И попросил фото самого проца Zilog, если не сложно, типа может перемаркировка...
fulltest тоже бы неплохо запустить, какой из трех пройдет.
Моя идея - что это зависит от года выпуска. За 40 лет все равно исправляли ошибки и выпускали с новыми масками чипы.
Последняя правка вроде в 2016 году была, если верить даташитам..
И да и нет. Есть симулятор по транзисторный, есть verilog ( пол схемы ревеснуто, половина придумана). да и реализация хромает (местами написано из серии "так сойдёт").
Да и какой вариант был взят за основу не в курсе (слаб в английском).
Добровольцы есть транзисторную схему написать и перевести в схематик ?
есть список транзисторов и список цепей.
Список в виде чего?
на сколько он соответствует кристаллу? Почему нет фотки кристалла и нарисованного слоя транзистора поверх него, как это все делают?
- - - Добавлено - - -
Да, и если есть список цепей и транзисторов, то почему верилог в виде отсебятины, как описано выше? Раз есть транзисторная схема, то нет проблем повторить на плис.
вот это товарищь
https://opencores.org/projects/a-z80
и компания из 6502.com ( я непомню щас точные ссылки - уже сплю)
Засняли проц, расставили транзисторы, слои.
На выходе есть: прога симуляции электрической схемы кристалла. Написал тот же тов. Он же чуть раньше поглядывая на фотки и на "чужой" реверс (части кристалла) извоял a-z80.
Я могу вытащить транзисторы и цепи из программы.
Вот сопутствующая тема
https://zx-pk.ru/threads/33467-khoch...icheskuyu.html
ссылки на симулятор поищу наверно завтра.
Потому что сперва "три" разных компании/людей копали проц.
первый
http://www.righto.com/2013/11/the-z-...decrement.html
вторые
http://www.visual6502.org/
третий
https://baltazarstudios.com/
Так вот третий "копал" глядя на творчество первых двух.
изваял a-z80 где-то по фоткам а где-то сам придумал и подогнал результат под "ответ/оригинал"
Потом наступил ковид и со скуки оный товарищ изваял графический симулятор проца.
На самом деле сам алгоритм он взял где то со стороны, и адаптировал по z80.
Всё ИМХО из-за плохого понимания англицкого языка.
Вот самой схемы (аля пикад) и нет - потому и нет реальной схемы в виде логических элементов, и как результат нет нормальной эквивалентной реализации на verilog.
То что есть a-z80 - это работает только на честном слове, любой чих и схема может не собраться.
проблема в том что есть "слои", есть отмеченные позиции транзисторов на этих слоях. По графикам "слоёв" на ходу формируется список соединений транзисторов. Есть программ моделирования поведения транзисторов. Как таковой схемы (аля пикад ) нет. Почему нет это к трём выше упомянутым. Первому это нафиг не сдалось - хайп уже поимел, вторым: ну сфоткали и ладно, третий сперва сделал "verilog", а потом гаф.сим. На вопрос "схему сделещь?" по польски/английски я был послан далеко и надолго - как то так. Может я не правильный вопрос задал, а может он не понял чего я хочу.
- - - Добавлено - - -
другими словами - здесь реверс не от кристалла к верилогу идёт, а от его математической(вериложной) модели к кристаллу. Это если грубо сказать.
- - - Добавлено - - -
я вытащил оный список. несколько тысяч строк текста с координатами транзисторов , "наименованиями" цепей, к каким выводам транзисторов оные цепи идут. итд итп.
искал "пикад" куда можно "импортировать" оный список в текстовом виде (ну естественно надо написать этот "импортёр"). никто вообще ничего не написал в той теме...
https://baltazarstudios.com/z80explorer/ я про вот это
ЭТО я тоже запускал, забавная программа сама по себе. Наглядная, как биты бегают по защелкам:)
Как бы да, у него сперва вериложная модель появилась.
Тоже запускал, и его Спек, и другие корки с его a-z80
Работало, но много тестов не проходило :) Писал ему об этом много лет назад, но тоже был вежливо! послан)
Кстати корка была типа cmos , OUT(C),0 исправлено
zebest, https://volutar.myds.me/zx/ccfscr/
сюда выкладываю то что натестирую. 4 процессора - результаты совсем неклассические. но это ленинград, с турбопзу. только ГДРский UB880 показал что-то похожее на интел. а предыдущий тест вообще фейлится. и от раза к разу результаты меняются.
Неее, я только в FPGA запускал, еще до эксплорера. Давно. неск. лет назад
Отлично!! Мне нравяЦЦа результаты)
https://volutar.myds.me/zx/ccfscr/lenin-goldstar.jpg
Я так понимаю на GS картинка нестабильная?)) Биты "мерцают" ?
Блоковый тест флагов очень зависит от частоты. На стандартной обязан правильно все показывать, а вот в Турбо-режиме или с нестабильностью я у себя тоже такие результаты видел. Что как бы не очень хорошо)
Ответ Патрика, цитата:
Петер %)Цитата:
Interesting. The first one is Zilog with instability in bit 5. The Q5 seems to be cleared more often than not. The second is Zilog but the pattern looks like NEC - can't see if there is instability, but looks like in this CPU the Q5 line remains (always?) cleared, so the result is just move from A. The third goldstar has instability in both bit 5 and 3, with both Q5 and Q3 being driven towards F5 and F3 more often than not. The last one looks like stable Zilog pattern, with Q5 and Q3 always matching F5 and F3 (so the result is OR with A).
As for @Ped7g test, I suspect that the interrupt timing doesn't match what it should be, so the tests actually interrupt something else? Is the CPU run at the expected frequency of ~3.5MHz?
Вобщем в переводе на русский и кратко - то "Ленинград" никак не годиЦЦа для таких тестов. Впрочем как и Профи :)Цитата:
shit emulator ������ ... /joking ... let me review it...
the first photo, first LDIR ... 0c!=22 ... that's PV=0, that's "impossible" during LDIR ... so that's either not real Z80 CPU, or the interrupt did happen after LDIR was finished already, ie. skipping interrupts?? or something else... interrupt too soon before LDIR? Either it's some timing instability (/INT not hitting LDIR) or random bursts of turbo causing the delay to ends sooner/later than expected and INT is stable.
trying to understand rest of the results is then probably meaningless, as that test is not working as it should, for who knows why.
"impossible" -> as long as we agree that ldir works in first four cycles as ldi and then the "r" fifth cycle decides if the PC is reverted based on PV (BC!=0).
the bottom red line with OTIR .. wait, how is that printed this way... shouldn't they be next to each other? the rst $10 works differently in this ROM?? hm...
yep.. that's completely something weird... must be some ROM doing something else on rst $10 ... anyway, that shouldn't affect the F values, so that's just visual weirdness. But that machine will hardly qualify as ZX48 or ZX128 ... ������
the other photos... still LDIR/LDDR have for example several 6A fails, with missing PV=1, so either not interrupted during LDIR, or the LDIR implementation in CPU is completely different from Z80.
so I wouldn't worry about the other values, if the test can't even interrupt the correct instruction, it's pretty pointless to judge those results.
the test does one delay-calibration-round before testing, if the calibration delay is too short (7MHz), the test will error out. So it's rather about the machine being unstable, not having same period or CPU speed than during the test (vs calibration)
Печалька. А я то хотел платку ленинградки восстановить для проверки.
Добавил результаты по Автоматике ПЛМ (Новосиб-54).
по первому тесту все зеленые кроме UB880. Этот ГДРовский клон похоже немного иначе работает.
Шаблон ccf ТОЛЬКО на UB880 как "на фирменном". а на фирменных все как попало. но при этом биты никакие не плавают.
Тайминги для Автоматике-ПЛМ снимались с фирменного спектрума, как я понимаю. И за исключением торможения УЛЫ они наверное корректные, о чем свидетельствуют зеленые плашки на большинстве процессоров.
На ленинграде все шаблоны "плавают", т.е. биты в некоторых местах постоянно меняются.
Можно сказать, что для советских клонов эти тесты не работают как ожидают авторы. Они видимо на стандартные спектрумы с ферантевской улой расчитаны. и 3/5 биты очевидно тоже зависят не только от процессора, но и от обвязки проца.
- - - Добавлено - - -
Да, некоторые биты плавают. С лева вероятнее вылазят 0, а справа вероятнее 1. Типа как наложенная на "стандартную" маску рандомная хрень.
Да, там кварц 14.5. Чуточку быстрее. Что взять с ленинграда, собранного на монтажке из подручных материалов?:)
Чуток быстрее допустимо. Тест сперва калибруется, потом считает. До 4МГц обязан работать, елси все отсальное стабильно
Так что обвязка скорее всего пагубно влияет. Я про себя так думаю это WAIT шалит . как вариант.
На ПЛМ гораздо красивше резальты. Ну кроме UB880
- - - Добавлено - - -
ВОООООООООООТ!!! Вот это я выше и пытался донести. А вот от чего именно - это тоже интересно))
А еще буржуинские товарищи интересуются происхождением первых двух Зилогов.
говорят это фейки, либо с али, либо с ебэя, перемаркировка 100% по их мнению, ибо по тестам ведут себя как NEC.
Запусти все же fulltest 1.2 на них, там 10 секунд хватит, чтобы понять, что протестируется
Ну с али то ладно, тут только на порядочность:) кетайцев надеяться.
По поводу 30ти летних. У меня все в основном тоже старые, парочка только с али.
Не думаю, чтобы 30 лет назад кому то было дело до перемаркировки.
Сама Зилог неск. раз исправляла ошибки в своих процах и меняла соответственно шаблоны для литографии.
Видимо тот старый Зилог из первых партий, из тех, с которых NEC со-товарищи реверснули свой вариант
Как по мне - так логичная версия
На ПентЭве тест Петера блочный проходит.
Очень интересный вопрос с Профи. Или конструпторы (и последующие доработчики оного) или сильно умные, или сильно руко... эээ. рукастые! Во! Оч. сильно рукастые.
На одном и том же компе десяток процессоров работают как и говорил, в двух вариантах, или паттерн стоит как вкопанный, без шевелений, или мигает как хочет. Нестабильно. Процы - разные, обвязка - одна!
Придумайте непротиворечивую версию такого поведения. Ну кроме уникальности архитектуры и влияния протуберанцев Солнца на это.
и так и так :)
https://media.discordapp.net/attachm...667&height=400
Кроме этих - еще несколько .
Причем есть и зилоги, которые косячат в z80ccfscr и не-зилоги - которые не косячат. И?
В общем, нужно конкретно садиться за эксперименты с разными процами!)))
Сперва прогнать максимальное количество на безвейтовой платформе, затем их же уже на вейтовой. Свести всё в одну таблицу в соответствии с производителем и годами выпуска. Может тогда можно будет уловить какую-нибудь закономерность!?
Кстати, ведь теже зилоги наверняка не на единственном заводе производились!!! Вполне может быть, что на разных zilog-овских производствах были разные шаблоны примерно в одном временном промежутке!!!???
В общем к моим трем Профи-кам у меня еще есть Импульс. Это тоже"вещь-в-себе", но там проц запаян, и отпаять, даже мне:), будет проблематично, ибо там дорожки между ногами Z80 развели, извращуги. Можно конечно выкусить проц, тогда полегче, но проц как бы жалЬко :)
Есть еще три платы "ленинградки", две полу-живые, третья в более плачевном со-стоянии, ее не включал, наверное под развандаливание пойдет)
Если из этих двух какую-то зачинить, что то жи непросто, то можно сперва погонять все процы с родной схемой, а потом переделать в без-вейтовую, насколько знаю это возможно. В идеале - с переключателем "туда-обратно" :)
Вот тогда можно и затабличить что-то.
Неее, выкусывать проц. из рабочего совсем не дело! :)
К тому же вдруг в Импульсе как-то по-своему сделано использование Wait-сигнала и отличается от Ленинграда и от других!? Результаты могут всё запутать!
Нужно, чтобы платформы под испытания у людей, желающих потестить процы, были максимально одинаковые!
Тоже имеется некоторая коллекция Спектрумов, есть и фирменные, но почти во всех проблема запаяного проца:) Поэтому сходу попробовать разные процы могу пока только в П48, и вроде бы ещё в одном из Профиков на панельке Z80 был. Только наверное сварганю по-быстрому переходник на zif-панель, чтоб не укатывать обычную:)
Ленинграды есть две штуки, но в одном точно проц. запаян, а в другом не помню - нужно посмотреть)
В оригиналах, насколько помню, во всех намертво Z80 запаян. Ковырять их совсем не хочется:), но эти тесты на них, на всех надо будет попробовать:)
ВМ80 реверснули. Во всяком случае @Vslav это сделал.
- - - Добавлено - - -
Ау! Где же этот список, и откуда ты его вытащил?
Жаль конечно, что он не Z80 реверснул:))))
Ещё сейчас во многих источниках сообщается, что АЛУ у Z80 4х-битный!!!
Кто что думает по этому поводу? Похоже ли это на правду? Ведь тогда по идее и у ВМ80, как предшественника должен быть 4х-битный!!!???
К тому же в связи с этим у меня сразу возник вопрос по выполнению некоторых команд вида ALU A,n или ALU A,(HL) к примеру! Если АЛУ 4х битный, то нужно как минимум два такта для работы с 8ми битными данными! Но после считывания из памяти там вообще полтакта остаётся, если судить по официальным даташитам Z80 !!!
1) Дома на компе. туда надо добавить описание что за что обозначает.
2) Мож тему создать ? или она уже была и зачахла ?
3) если верить первому тов. то да АЛУ 4-битное.
Так а какой интерес тут? Z80 он вдоль и поперек изучен, ну реверснем, я потрачу массу времени, нового ничего не узнаем. А все вкусности Кен Шеффир давно разобрал уже в своей блоге. ВМ80А вообще случайно реверснули, просто все фотки уже были и надо было разработать маршрут реверса, оценить трудозатраты и выяснить возможно ли это принципиально сделать на достойном уровне за вменяемое время. На "черном форуме" была тема "Тонкости и толстости 1801ВМ1", вот там вопросов было больше чем ответов, поэтому вскрывать и реверсить 1801ВМ1 было интересно. 1811 серия сейчас интересно - там DEC-овский микрокод вообще без документации, FPP, MMU, много чего, крайне любопытно посмотреть как было сделано и много особенностей.
Да, так и есть.
Нет, 8080/ВМ80 - АЛУ 8-битное, совершенно точно.
Там полно времени остается чтобы сделать операцию за 2 такта и потом коммит результата ALU в A пока читается следующая инструкция.
- - - Добавлено - - -
Ты открой схему в PCAD и сделай - Utils->Generate Netlist, и посмотри на результирующий .net файл. Это не схема где все уже сгруппировано по месту и осмысленно обозвано. Из топологии можно сгенерировать такой .net, но он импортируется только в pcb. Можно сгенерировать .eco файл и импортировать его в sch, но рисовать схему из получившейся каши все равно придется руками, типа так: https://www.youtube.com/watch?v=2zwfvvwy0JE&t=145s
1) конечно помню.
однако "Ты открой схему в PCAD и сделай - Utils->Generate Netlist, и посмотри на результирующий .net файл"
вот там нечто как в .net - но только в своём формате.
2) Vslav совершенно не обязан "вписываться" в Z80
3) хотя если я правильно понял эту тему. Тесты (результаты) зависят от того как разогнан проц, и до кучи зависит от технологии кристалла.
С чем не соглашусь, что изучен вдоль и поперек. Если столько вопросов возникает. Да и нет ни одной нормальной ФПГА версии полностью идентичной оригиналу.
- - - Добавлено - - -
Так нет PCAD-ной схемы от Z80.
- - - Добавлено - - -
Лучше уж так, это лучше, чем с нуля.
- - - Добавлено - - -
Что это за формат?