PDA

Просмотр полной версии : "ZX-8080" - Даунгрейд компьютера "Ленинград"



Страницы : 1 2 [3] 4

Mick
29.11.2020, 15:11
По сути если отталкиваться от "идеальных" импортных к нашим, которые кто в лес кто по дрова. То даже идеальные в текущей схеме не могут без тормозов, то скорее всего это говорит, что данная схемотехника в текущем виде не совсем подходит для ВМ80А и нужно попытаться как то найти решение. И игра напряжений помогла бы только в уменьшении тех самым задержек, если конечно такое возможно.

Возможные решения
1. Увеличение частоты работы памяти, но это уже не на РУ5 и их аналогов. Там как минимум 80нс и 70нс память нужно, посему это откладываем до гипотетического клона Ориона
2. Попытаться изменить следование частоты F1 и F2 с учетом сдвига DBIN относительно F2 (порядка 100нс). По сути надо сдвинуть на один полутакт TI
3. Попробовать варианты тактирования проца от ivagor

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

Кстати, что вы все предлагаете поднять напряжение, а почему никто не предложил его заморозить, как Z80 - https://www.msx.org/ru/news/hardware/ru/z80-99mhz

ivagor
29.11.2020, 15:12
Mick, все же что у тебя в приоритете: добиться уменьшенных тормозов от советских процов или вернуться к твоей первоначальной идее с хитрым прозрачным доступом? Если первое, то стоит сделать упор на тюнинге тормозилки, у меня есть большая степень уверенности, что это должно помочь. Если второе, то прежде чем двигать клоки очень желательно уменьшить частоту (до 3 или даже 2.75) и посмотреть анализатором, что там происходит.

Mick
29.11.2020, 15:16
Mick, все же что у тебя в приоритете: добиться уменьшенных тормозов от советских процов или вернуться к твоей первоначальной идее с хитрым прозрачным доступом?

Одно другому не мешает :)
В идеале хотелось бы прозрачный доступ без тормозов в рамках схемотехники Ленинграда

ivagor
29.11.2020, 15:18
Одно другому не мешает
Не уверен, между этими двумя вариантами возможны противоречия.

Mick
30.11.2020, 09:16
Можно попробовать ускорить и Родон+155, если вместо WRBUF/ подать H1 на вход 4 D48, но гарантий, что будет работать не могу дать.

Попробовал, не работает - сразу в тыкву становится комп

ivagor
30.11.2020, 10:36
На вход D (D48/2) при этом подается 0, как было в первоначальном варианте тормоза? Как я понимаю, проблема в том, что при текущем варианте тактовых сигналов, этот мое предложение скорее всего сработало наоборот - как разрешение доступа проца в VPU. Моя уверенность, что можно сделать менее тормозящий тормоз для наших процов, осталась, но я убедился, что авантюризм не прошел, надо внимательно смотреть сигналы и пробовать сделать торможение с времянками более-менее соответствующими даташиту.

Mick
30.11.2020, 10:37
На вход D (D48/2) при этом подается 0, как было в первоначальном варианте тормоза?

Именно так.

Кстати, раз речь пошла про напряжение питания +12В, то если найду многооборотный подстроечник, то попробую проверить влияет на стабильность в диапазонах +12В до +13В. Но на Родонах пробовать точно не буду - они пока самые быстрые из наших.
Сейчас опыты проводятся при напряжении +12.4В (такие резисторы в делителе)

Mick
30.11.2020, 13:18
Тормозилку скорее всего можно оставить текущую. Надо поменять:
1. На вход 6 D10 надо подать TI/ вместо TI
2. На вход 5 D10 надо подать CAS/ вместо RAS/
3. На вход 11 D35 и вход 12 D12 надо подать CAS/ вместо RAS/


Попробовал, Родон который на 3,5МГц до этого работал в режиме Fast с 555, теперь всегда Slow.
Количество процессоров проходящие тест speed заметно уменьшилось. А те кто проходят, то всегда Slow
Так что этот вариант похоже мимо.

ivagor
30.11.2020, 14:09
Mick, если ты еще не разобрал, то может попробуешь мое изначальное предложение - с таким тактированием сделать READY=H1/

Mick
01.12.2020, 09:42
Mick, если ты еще не разобрал, то может попробуешь мое изначальное предложение - с таким тактированием сделать READY=H1/

Разобрал, но собрал заново. В этом режиме процы вроде стабильны и показывают "Fast". Проверил несколько штук 88, 89 и 90 годов все работают

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

Чутка поторопился с режимом Fast, он немного отличается от предыдущих, вечером скину скриншоты
Кроме того попробовал 4МГц тактовой, импорт перестал работать, только два Родона 9005 и 9008

ivagor
01.12.2020, 10:30
Mick, спасибо за проверку, в этом варианте торможения я практически не сомневался. Но то, что я предложил, это только часть нормального тормоза, хотя и самая важная. Раз эта самая часть работает, надо довести его до ума: убрать торможение при выполнении кода из пзу и при записи и тогда будет полный fast.
Один из возможных вариантов такой: надо сделать дополнительный CSRAM/, пусть называется CSRAM1/.
CSRAM1/=not (RDROM/ and RDM). RDM можно взять с выхода 10 D42.
READY=H1/ or CSRAM1/
Сразу я такой вариант не предложил, т.к. уверен в нем меньше, чем в READY=H1/, но вроде должно работать.

Mick
01.12.2020, 11:25
Один из возможных вариантов такой: надо сделать дополнительный CSRAM/, пусть называется CSRAM1/.
CSRAM1/=not (RDROM/ and RDM). RDM можно взять с выхода 10 D42.
READY=H1/ or CSRAM1/
Сразу я такой вариант не предложил, т.к. уверен в нем меньше, чем в READY=H1/, но вроде должно работать.

Что те не пойму. В RDROM/ ведь уже есть RDM, зачем еще его туда мешать?
И что мешает текущий CSRAM/ or H1/

ivagor
01.12.2020, 12:13
В RDROM/ ведь уже есть RDM, зачем еще его туда мешать?
И что мешает текущий CSRAM/ or H1/
Действительно, впопыхах просмотрел.
CSRAM1/=not ((A14 or A15) and RDM)
READY=H1/ or CSRAM1/

Текущий CSRAM/ не подойдет, т.к. там RD/, который инверсный DBIN, он там все испортит

Mick
01.12.2020, 12:44
CSRAM1/=not ((A14 or A15) and RDM)

Может лучше использовать уже готовый D10.4 и тогда можно обойтись одним корпусом ЛЛ1

CSRAM/ = not(A14 or A15) or RDM/
READY = H1/ or CSRAM1/

ivagor
01.12.2020, 13:04
Эквивалентный вариант конечно подойдет

Mick
01.12.2020, 16:03
Эквивалентный вариант конечно подойдет

Попробовал, вроде работает. Процы показывают Fast. На вскидку попробовал Родон 9005, Квантор 8802, Квазар 8909 - все в Fast

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

Попробовал еще и 4МГц. Импортные и Родоны 9005 и 9008 работают Fast. Днепры 9205 (две штуки пробовал) работают в Fast
Другие 88,89,90,91 видно что тест работает, но не доходят его до конца

ivagor
01.12.2020, 16:09
Поделюсь своей версией, почему предыдущая тормозилка делила процы на slow и fast. В даташите есть параметр tRS, который говорит, за сколько нс до заднего фронта Ф2 надо установить READY в желаемое положение (0 или 1), чтобы получить соответствующий следующий такт (если идет обращение к памяти или порту). Так вот для разноскоростных процов этот параметр принимает значения от 80 (для 4 МГц) до 120 нс (для 2 МГц). Когда READY был без запаса, на грани, это сказывалось. Возможно это смелое предположение, но есть вероятность, что этот параметр можно развернуть и в обратном направлении, т.е. у тех процов, которые fast и разгонный потенциал больше.

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


Другие 88,89,90,91 видно что тест работает, но не доходят его до конца
Мое мнение, что тут тюнинг тормозилки уже не поможет (она и так дубовая с запасом), просто эти процы не могут нормально работать на 4 МГц. Но и 3.5 для наших очень хороший результат

Mick
01.12.2020, 19:16
Фото тормозилки на все :)

3,5МГц

https://i.ibb.co/nrMBYF0/IMG-20201201-093810.jpg (https://ibb.co/nrMBYF0)

4 МГц

https://i.ibb.co/vJhHpXH/IMG-20201201-093557.jpg (https://ibb.co/vJhHpXH)

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


Мое мнение, что тут тюнинг тормозилки уже не поможет (она и так дубовая с запасом), просто эти процы не могут нормально работать на 4 МГц. Но и 3.5 для наших очень хороший результат

В принципе еще надо один вариант проверить. Ты сделал клоки относительно CAS/, по сути ты сдвинул на один полутакт TI. Можно еще сдвинуть на полутакт вперед.

В первом посте выложил 4 вариант схемы прототипа - это текущее положение дел.

ivagor
01.12.2020, 20:05
Со сдвигом на четверть такта проца назад удобно тормозить, а если на столько же вперед, то есть шанс, что заработает без тормоза, хотя бы на более низкой частоте и/или с более быстрой памятью.

Mick
02.12.2020, 09:34
Со сдвигом на четверть такта проца назад удобно тормозить, а если на столько же вперед, то есть шанс, что заработает без тормоза, хотя бы на более низкой частоте и/или с более быстрой памятью.

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

1. За 0 точку мы считаем изначальный вариант
F1 = not(TI or RAS/)
F2 = RAS/

2. Твой вариант - сдвинуть вправо
F1 = not(TI/ or CAS/)
F2 = CAS/

3. Сдвинуть на полтакта влево
F1 = not(TI/ or H0) или not(TI/ or RAS/)
F2 = H0

Это вперед или назад?

ivagor
02.12.2020, 10:10
Твой вариант - сдвинуть вправо
Это для меня назад, и вправо тоже согласен

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


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

Mick
02.12.2020, 10:32
3. Сдвинуть на полтакта влево
F1 = not(TI/ or H0) или not(TI/ or RAS/)
F2 = H0

Попробовал сдвинуть влево - тест не проходит, пробовал на два такта вправо - тест не проходит. Не проходят как с торможением так и без него.

В итоге получается самая стабильная ситуация это предложенная ivagor

F1 = not(TI/ or CAS/)
F2 = CAS/

С торможенением

CSRAM1/=not ((A14 or A15) and RDM)
READY=H1/ or CSRAM1/

По сему касательно работы с ОЗУ пока останавливаемся на этом. К сожалению без тормозов не удалось обойтись в рамках спектрумовского синхрогенератора.

Кстати, ivagor режим Fast - это примерно сколько в частоте получается падение?

ivagor
02.12.2020, 11:12
Попробовал сдвинуть влево - тест не проходит, пробовал на два такта вправо - тест не проходит. Не проходят как с торможением так и без него.
Тут стоит разделить на части
1. Когда сдвигал влево на какой частоте пробовал? Там возможно был небольшой шанс на 3 или 2.75, вряд ли выше
2. Торможение ты корректировал? Дело в том, что последний ("мой") тормоз при сдвиге тактовых импульсов не годится. Тут как раз фишка в том, что в том положении можно сравнительно просто получить правильный тормоз.


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

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


режим Fast - это примерно сколько в частоте получается падение?
Смотря как измерять или считать. Если по 4х тактным командам типа nop, то падения нет и максимальная пиковая производительность 100%. Надо портануть какой-нибудь комплексный тест.

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


Там возможно был небольшой шанс на 3 или 2.75, вряд ли выше
И при быстрой памяти, быстром регистре и буфере

Mick
02.12.2020, 11:45
1. Когда сдвигал влево на какой частоте пробовал? Там возможно был небольшой шанс на 3 или 2.75, вряд ли выше

На 3,5 МГц, ниже уже опускаться не интересно. Да и задача стояла именно на 3,5МГц



2. Торможение ты корректировал? Дело в том, что последний ("мой") тормоз при сдвиге тактовых импульсов не годится. Тут как раз фишка в том, что в том положении можно сравнительно просто получить правильный тормоз.

Нет не корректировал. Пробовал с тем что есть. Сложный тормоз тоже не хотелось. Тут хоть на одном корпусе

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

Для интереса этот вариант дополнил универсальной тормозилкой READY = H1/

3. Сдвинуть на полтакта влево
F1 = not(TI/ or H0)
F2 = H0

Результат как вчера

https://i.ibb.co/nrMBYF0/IMG-20201201-093810.jpg (https://ibb.co/nrMBYF0)

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

4. Сдвинуть на два полтакта вправо
F1 = not(TI or RAS (8.TM2))
F2 = RAS (8.TM2)

Результат тот же

То есть все эти варианты работают только с тормозом.

ivagor
02.12.2020, 12:24
Хочу уточнить, а то слишком много всего и я путаюсь.
По моим представлениям тормоз H1/ (и его более быстрый вариант без торможения пзу и записи):
1. Не обязан стабильно работать при исходном положении тактовых импульсов
2. Должен работать при сдвиге тактовых на 1/4 такта проца вправо или влево
3. Не обязан работать при сдвиге на 2/4 такта проца в любую сторону
Так получилось или не совсем?

Mick
02.12.2020, 13:03
По моим представлениям тормоз H1/ (и его более быстрый вариант без торможения пзу и записи):
1. Не обязан стабильно работать при исходном положении тактовых импульсов
2. Должен работать при сдвиге тактовых на 1/4 такта проца вправо или влево
3. Не обязан работать при сдвиге на 2/4 такта проца в любую сторону
Так получилось или не совсем?

Уточняю :)
1. Работает стабильно только в твоем варианте
2. Работает только при H1/, в быстром варианте нет
3. Работает только при H1/, в быстром варианте нет

Не поленился я опустить частоту до 3,0МГц
С тормозом и без не работает твой вариант на Радоне 9005, на Днепре 8903 работает с тормозом

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

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

При первоначальной конфигурации КР565РУ5Г и 555 серии на 3,5МГц подавляющее большинство процессоров работают
при

F1 = not(TI/ or CAS/)
F2 = CAS/

С торможенением

CSRAM1/=not ((A14 or A15) and RDM)
READY=H1/ or CSRAM1/

На 4 МГц количество стабильно работающих процессоров резко уменьшается.
Из наших стабильнее все процессоры Родон 9005 и Родон 9008. Если будут более молодые Родоны их проверю.
Ну и импортные процессоры по крайней мере в пластике тоже работают на 4МГц. По сути они самые стабильные процессоры.

Теперь осталось проверить еще один тест памяти на последней конфе.

ivagor
02.12.2020, 13:15
Теперь бы еще уточнить, что ты понимаешь под моим вариантом. У меня было несколько предложений по этой теме:
1) Изменение тактирования на 1/4 такта проца вправо
2.1) Тормоз H1/
2.2) Тормоз CSRAM1/=not ((A14 or A15) and RDM) и READY=H1/ or CSRAM1/ или эквивалентный


1. Работает стабильно только в твоем варианте
Тут под моим вариантом ты явно подразумеваешь тормоз, вероятно п.2.2). Т.е. при исходном тактировании и моем варианте торможения номально работает? Это я пока не могу объяснить.


2. Работает только при H1/, в быстром варианте нет
Вот тут я совсем перестал понимать. А здесь (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1091839&viewfull=1#post1091839) ты про что писал? Я думал это все еще предложенный мною вариант тактирования п.1) + тормоз п.2.2).


3. Работает только при H1/, в быстром варианте нет
Т.е. тут, как и в предыдущем пункте, есть разница в работоспособности тормозов п.2.1) и п.2.2) ?

Mick
02.12.2020, 13:24
Теперь бы еще уточнить, что ты понимаешь под моим вариантом. У меня было несколько предложений по этой теме:


Вот тут я совсем перестал понимать. А здесь ты про что писал? Я думал это все еще предложенный мною вариант тактирования п.1) + тормоз п.2.2).

Под быстрым имеется ввиду эквивалентный твоему

CSRAM1/=not ((A14 or A15) and RDM)
READY=H1/ or CSRAM1/

Или более правильно тогда говорить

CSRAM1/= not(A14 or A15) or RDM/
READY=H1/ or CSRAM1/

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


Т.е. при исходном тактировании и моем варианте торможения номально работает?
Ха, это я забыл проверить
Проверил - не работает!
Более того он и при H1/ не работает

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


Т.е. тут, как и в предыдущем пункте, есть разница в работоспособности тормозов п.2.1) и п.2.2) ?

Объясню еще раз.
Опробованы 3 и 4 варианты. Они без тормоза и с эквивалентным (быстрым) тормозом не работают. Работают только по H1/

ivagor
02.12.2020, 14:19
Главное, что тактирование 1) + тормоз 2.2) работают, а то после многочисленных уточнений я уже стал сомневаться.
То что тормоз 2.1) работает в большем числе случаев, чем 2.2) скорее всего связано с записью. Это рабочая версия, детально не смотрел/не разбирался и не хочется, т.к. есть рабочий вариант.

Остался еще один совсем непонятный для меня момент

Не поленился я опустить частоту до 3,0МГц
С тормозом и без не работает твой вариант на Радоне 9005, на Днепре 8903 работает с тормозом
Родон 9005 при тактировании 1) и тормозе 2.2) работает на 3.5 и 4 и не работает на 3? Или при каком тактировании и тормозе он не работает на 3 МГц?

Mick
02.12.2020, 14:41
По моему мы уже друг друга не понимаем.

Чтобы было проще.
1. С твоим тормозом (быстрый или эквивалентный) работает только твой вариант тактирования.
2. С изначальным вариантом тактирования не работает с твоим тормозом как и с H1/
3. Во всех других случаях тактирования работает только с H1/

Касательно 3 МГц, Родон 9005 отказался работать с твоим вариантом тактирования и тормозом. Днепр 8903 работал. Другие процессоры не проверял. С Родоном я вроде другие варианты тактирования проверял, но по моему кроме изначального. В лучшем случае с H1/ Считай уже не скажу точно.

Сейчас запустил ПЗУ с zx8080mts - пока работает. Это считай первая демо-программа :)

ivagor
02.12.2020, 15:06
Касательно 3 МГц, Родон 9005 отказался работать с твоим вариантом тактирования и тормозом. Днепр 8903 работал. Другие процессоры не проверял. С Родоном я вроде другие варианты тактирования проверял, но по моему кроме изначального. В лучшем случае с H1/ Считай уже не скажу точно.
Стоп, пожалуйста помедленнее, а то я снова потеряюсь. Вот тут (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1091839&viewfull=1#post1091839) ты писал, что Родон 9005 работает на 3.5 и 4. Я так понял, что это было при тактировании
F1 = not(TI/ or CAS/)
F2 = CAS/
и тормозе
CSRAM1/= not(A14 or A15) or RDM/
READY=H1/ or CSRAM1/

Mick
02.12.2020, 15:10
Да при такой конфе тактирования и тормоза на 3,5МГц все процессоры (5шт), которые я проверял работают и в том числе Родон 9005.
Он же Родон 9005 работает и на 4МГц

ivagor
02.12.2020, 16:13
Тебе не кажется странным, что на 3.5 и 4 работает, а на 3 при таком же тактировании и торможении - нет?

Mick
02.12.2020, 19:35
Тебе не кажется странным, что на 3.5 и 4 работает, а на 3 при таком же тактировании и торможении - нет?

Завтра еще раз проверю, чтобы не было сомнений. Именно твою конфигурацию.

А пока Квантор 9008 выполняет тест zx8080mts

https://i.ibb.co/4SfxtBx/IMG-20201202-161841.jpg (https://ibb.co/4SfxtBx)

Типа демо :)

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

ivagor
02.12.2020, 20:04
Судя по картинке тест успешно работал больше часа. Это при 3.5 МГц?

Mick
02.12.2020, 20:25
Судя по картинке тест успешно работал больше часа. Это при 3.5 МГц?

Да, Квантор на 4МГц не работает

NEO SPECTRUMAN
03.12.2020, 01:07
Тут задумался, может какой тетрис портировать
интересно нет ли на спектруме игр чисто на 8080 командах
например какое нибудь 8080\z80 кросс платформенное поделие
это я забыл что "только русский человек может додуматься строить компутер на 8080 в 80-х"

к сожалению из эмуляторов которые умеют каптурить частоность использования команд знаю только мерзеннеший ZEsarUX

был бы нормальный эмуль
можно было бы поискать наиболее подходящюю жертву для портирования
с минимумом z80 команд

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

Mick, а клавиатуры нет чоб проверить загружаемость с матаофна?

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

проверил
galaxians
jet set willy
manic miner
space invader
pentis
все сыпят префисными комадами направоналево

Mick
03.12.2020, 09:22
Mick, а клавиатуры нет чоб проверить загружаемость с матаофна?

Сейчас с памятью решив все вопросы и тогда к клаве перейдем.

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


Тебе не кажется странным, что на 3.5 и 4 работает, а на 3 при таком же тактировании и торможении - нет?

Проверил еще раз на 3 МГц - твоя конфа клоков с торможением эквивалентным, без и H1/ не работают никак:

Родон 9005
Родон 9008
Днепр 9205
AMD

Работают с эквивалентным торможением, другие варианты я не пробовал

Квантор 9008
Днепр 8903
Днепр 9105

То есть я проверил 7 процессоров, те кто работают на 4МГц, не работают на 3МГц, а все остальные работают
Вот такой парадокс

Кстати такое же поведение и с твоим мультиколорным тестом на 3 МГц.

ivagor
03.12.2020, 10:13
Mick, пожалуйста не торопись убирать эту конфигурацию, желательно все же понять в чем дело, а то пока у меня нет идей

zx_
03.12.2020, 10:20
NEO SPECTRUMAN, факиньш слепиньш
прямо рядом же кросспорт
https://zx-pk.ru/threads/32499-portirovanie-desolate-na-vektor-06ts.html

ivagor
03.12.2020, 10:20
не работают никак
Важный момент - тест 5 (который со всякими надписями, клавиатурой и т.д.) и стековый тест ("многоцветный") совсем не стартуют или все же стартуют, показывают красный бордюр и висят?

Mick
03.12.2020, 10:43
стековый тест ("многоцветный") совсем не стартуют или все же стартуют, показывают красный бордюр и висят?

Тест 5 не пробовал, а стековый тест когда как. Иногда и красный бордер, а в основном горизонтальный матрас и все - не стартует

ivagor
03.12.2020, 17:07
Mick, ты не внес исправления записи (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1090942&viewfull=1#post1090942) в последний выложенный вариант схемы? Или ты от них потом отказался?

Mick
03.12.2020, 18:48
Mick, ты не внес исправления записи в последний выложенный вариант схемы? Или ты от них потом отказался?
Я пробовал и с ним и без. Не влияет абсолютно.

С твоим вариантом тактирования оно вообще не влияет ни на что.

zx_
03.12.2020, 19:06
даешь мильон операций в сек на 580вм80 !
лозунг
для подбадривания

Mick
03.12.2020, 19:28
совсем не стартуют или все же стартуют, показывают красный бордюр и висят?

Вот фото того как работают на 3МГц

Квантор 9008

https://i.ibb.co/LgLNh6B/IMG-20201203-091208.jpg (https://ibb.co/LgLNh6B)

Родон 8909

https://i.ibb.co/GQgdgrS/IMG-20201203-154653.jpg (https://ibb.co/GQgdgrS)

А вот что показывают не работающие на 3МГц, в частности Родон 9005

https://i.ibb.co/S6tzD5M/IMG-20201203-112043.jpg (https://ibb.co/S6tzD5M)

Цвет тонких полосок может быть разным.

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


даешь мильон операций в сек на 580вм80 !
лозунг
для подбадривания

Ну если ускорить работу памяти, то 1млн NOP возможен :) Это вроде 4МГц. Правда не все процы возможно осилят, но некоторые точно :)

ivagor
03.12.2020, 20:06
даешь мильон операций в сек на 580вм80 !

1млн NOP возможен
Так 1e6 уже достигнут, NOPы (и другие 4х тактные команды) при "fast" выполняются за эти самые 4 такта, а учитывая 4 МГц получаются пиковые 1 миллион операций/секунду

ivagor
04.12.2020, 06:41
Насчет новых горизонтов оверклокинга ВМ80. Выше 4 МГц в рамках zx8080 просто так не получится. Но если не гнаться за абсолютными рекордами, то можно попробовать 3.75 МГц, только нужен кварц 15 МГц. Возможно некоторые советские процы, которые работают на 3.5 и не могут на 4 возьмут планку 3.75

Возвращаясь к более приземленным вещам, а именно к 3 МГц для части процов. Пока могу только предположить, что проблема в записи. Для проверки можно сделать дубовый вариант
F1=not (TI/ or CAS/)
F2=CAS/
READY=H1/
WE/=WR/ or WRM/ or WO/
Сильно агитировать за проверку этого варианта не могу, т.к. полностью не уверен, но других идей пока нет. А разобраться все же желательно, а то такая непонятная мина в тылу.

Shumadan
04.12.2020, 11:30
Вм80 на 3,5 мгц сильно греются?

Mick
04.12.2020, 13:21
Вм80 на 3,5 мгц сильно греются?

Палец не обожжешь. На мой взгляд не горячее обычного. Но точно могу сказать только на следующей неделе. Заказал щуп- термометр.
Кстати у меня была задумка-выпендреж. В гипотетическом клоне Ориона на 3,5...4МГц, под процессор хотел поставить микруху термометр (по SPI, например DS1722) и вывести ее на AVRку, которая ATX питанием управляет. И к ней прицепить типа маленького (от видеокарт) вентилятора. Типа жарко-стало - включаем обдув, нет - выключаем или делаем меньше обороты. Возможно к этой идее еще вернусь :)

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


F1=not (TI/ or CAS/)
F2=CAS/
READY=H1/
WE/=WR/ or WRM/ or WO/
Сильно агитировать за проверку этого варианта не могу, т.к. полностью не уверен, но других идей пока нет. А разобраться все же желательно, а то такая непонятная мина в тылу.

Попробовал эквивалентную схему

WE/ = not(WRM/ or WO/) and (not WR/)
Просто ее проще было собрать из имеющихся.
Короче белый экран - записи нет.

Но если вернуться к текущему WE/ и вернуть сброс триггера D9.2 по SC/ and H1/, то строка Pass .... и мультиколор появляется, но все на этом и заканчивает.
Иногда красный экран или просто висит. Это не зависит от типа READY (быстрый или эквивалентный)

ivagor
04.12.2020, 14:15
Спасибо за проверку, только
WE/ = not(WRM/ or WO/) and (not WR/) это не эквивалентный вариант, надо добавить еще отрицание
WE/ =not (not(WRM/ or WO/) and (not WR/))
а то было наоборот

Mick
04.12.2020, 14:42
Спасибо за проверку, только

Да, точно. Тогда уж твою проще собрать.
Ну на экране горизонтальный тетрис. :)
Не пошло.

Пока самый лучший результат - это сброс триггера по SC/ and H1/ Там хоть строка появляется и матрас цветной.

ivagor
04.12.2020, 15:37
Тогда уж твою проще собрать.
Ну на экране горизонтальный тетрис.
Не пошло.
Ты попробовал WE/=WR/ or WRM/ or WO/ (или эквивалентный вариант)? А если с процом, который работал на 3 МГц при твоем варианте WE/?

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

Кажется до меня дошло. Вот так
WE/=WR/ or WRM/ or WO/ or H1
просто обязано работать

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

Хотя нет, я поторопился, добавление H1 по хорошему не должно влиять.

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

Тяжелый случай (у меня), должно влиять, все правильно я сначала написал, надо добавить H1

Mick
04.12.2020, 15:44
Кажется до меня дошло. Вот так
WE/=WR/ or WRM/ or WO/ or H1
просто обязано работать

Собрал, не работает ни на каком проце.

ivagor
04.12.2020, 16:02
Так не может быть, но так есть, мистика. Если соберешься, может на следующей неделе, хорошо бы посмотреть временные диаграммы записи

CodeMaster
04.12.2020, 16:06
И к ней прицепить типа маленького (от видеокарт) вентилятора.
Если его туда всё-равно ставить физически, то заставив его крутится на минимальных оборотах, то ты и шума не прибавишь, и всей системе хорошо сделаешь и не нужен этот гиморр с МК и пр.

Mick
04.12.2020, 16:20
и не нужен этот гиморр с МК и пр.

Не, ну а как температуру показывать в Биосе :)

ivagor
04.12.2020, 18:05
Mick, можешь написать, как именно ты сделал WE/=WR/ or WRM/ or WO/ or H1 ?

Mick
04.12.2020, 18:53
Mick, можешь написать, как именно ты сделал WE/=WR/ or WRM/ or WO/ or H1 ?

ЛЛ1 (WRM/ or WRO/) or ЛЛ1 (WR/) or ЛЛ1 (H1) = WE/

И вот это мы видим без разницы с каким процом

https://i.ibb.co/0hRg555/IMG-20201204-143946.jpg (https://ibb.co/0hRg555)

Сначала кубики носятся как угорелые, потом красный бордер и кубики замирают

ivagor
04.12.2020, 19:10
WRO/)
WRO/ это WO/ (выход 9 D42)?

Mick
04.12.2020, 19:23
WRO/ это WO/ (выход 9 D42)?

Да это WO/ - опечатался.

ivagor
04.12.2020, 21:08
Свежих мыслей пока не появилось, поэтому пытаюсь выискивать ошибки (всехние). Для WE/ ты брал H1, а READY=H1/, так?

Mick
05.12.2020, 08:08
Для WE/ ты брал H1, а READY=H1/, так?

Да пробовал и READY = H1/ и эквивалент, но результат тот же

ivagor
08.12.2020, 15:10
Разобрался (а то мне этот вопрос не давал покая), почему не работало мое казалось бы очень простое предложение
READY=H1/
WE/=WR/ or WO/ or WRM/ or H1
Проблема возникает, если второй такт цикла проца приходится на слот CPU.
Казалось бы все здорово, но WR/ станет активен практически полностью (или полностью, с учетом запаздывания относительно клока + запаздывание вносимое логическими элементами при формировании WE/) только в следующем такте.
А следующий такт - слот VPU и запись будет запрещена, что вполне правильно.
А потом все, во втором такте READY был=1 и тактов ожидания не будет, в итоге запись потерялась.
Вылечить эту штуку можно, но на мой взгляд лучшее лечение заключается в формировании WE/ с использованием ТМ2 или чего-то подобного.
Мое предложение возможно проканало бы при более левом тактировании (когда WR/ сильнее залезает во второй такт цикла), но я против смещения тактирования влево.
В итоге признаю такой вариант формирования WE/ неработоспособным при тактировании F1=not (TI/ or CAS/); F2=CAS/ и при READY=H1/

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

И, кстати, формирование WE/ можно было чуть упростить - WE/=WR/ or WRM/ or H1, раз есть WR/, то без WO/ можно было обойтись. Использование WO/ не делало само по себе схему неработоспособной, но усложняло ее без необходимости.

ivagor
08.12.2020, 20:04
Mick, D9 (ТМ2) сейчас на плате какой серии?

Mick
08.12.2020, 20:28
Mick, D9 (ТМ2) сейчас на плате какой серии?

К555ТМ2

ivagor
08.12.2020, 21:53
Т.е. небыстрая серия.
Проблема с анализом работы текущего формирователя WE/ в том, что там все на грани и для того, чтобы четко с уверенностью нарисовать и расписать, что происходит, нужно знать запаздывание SYNC относительно F2(=CAS/) для конкретного проца и время срабатывания ТМ2 и связанной логики. Если второе можно примерно оценить по справочникам, то с первым проблема. Сам я остановился на версии, что при 3 МГц для "быстрых" процов складываются такие условия, что (H1/ and SC/) не успевает стабильно сбрасывать D9.2.
На анализаторе можно проверить, что при "медленных" процах WE/ начинается в такте после SYNC, а при "быстрых" иногда проскакивает WE/ в такте SYNC.
Или можно проверить осциллографом запаздывание SYNC относительно F2(=CAS/). У "медленных" оно должно быть больше, чем у "быстрых", думаю как минимум на 10-20 нс.
Можно попробовать полечить это более поздним сбросом D9.2, например по H1/ and (not (RAS and SYNC)). Тут RAS, который подается на вход 11 D9.2
100% гарантии дать не могу, т.к. тут все на грани, но такого разнесения должно хватить.
Если бы D9 была на панельке, можно было бы попробовать заменить на максимально быструю серию. Но это не радикальное решение проблемы и если D9 запаяна, то менять ее точно не стоит.

Еще раз агитирую посмотреть анализатором.

ivagor
09.12.2020, 06:37
Можно попробовать полечить это более поздним сбросом D9.2, например по H1/ and (not (RAS and SYNC)).
Если этого не хватит, то дополнительно надо сменить тактовый сигнал (вход 11 D9.2) с RAS на H0.

ivagor
13.12.2020, 12:06
Альтернативный вариант лечения. Вход 4 D9.1=not(SYNC and H0). Так проще и надежнее, т.к. можно оставить сброс D9.2 только по H1/ и точно не понадобится менять тактовый сигнал D9.2

Mick
13.12.2020, 14:54
Так, я немного выпал из процесса. Заказал я новый анализатор 16 канальный (DSLogic U2basic).

Пришли из Китая память NM41256A-08 (80нс) и кварцы на 13МГц (это если попробовать еще и его в синхрогенераторе)

Ну и пришли новые новобранцы-процессоры.

Больше всего меня из них интересуют Родоны 9301 и 9303. Сохранится приемственность технологий и будут работать на 4МГц.
Посему пока верну частоту на 4МГц и соберу схему заново ибо я разобрал провода - запутался уже в них.

https://i.ibb.co/PWrL3wQ/IMG-20201213-143155.jpg (https://ibb.co/PWrL3wQ)

Кстати, еще должны подойти Родоны 9009.

Так вот, сам того не подозревая становишься коллекционером КР580ВМ80А :)

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

Кстати, еще тут мысль возникла - собрать на макетке узел синхрогенератора на EPM7032

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

P.S. Кто знает, можно ли оставлять свободный адресный вход у микрух MN41256, хотел их запихать вместо РУ5

ivagor
13.12.2020, 15:08
Больше всего меня из них интересуют Родоны 9301 и 9303
Где отхватил, если не секрет?

LeoN65816
13.12.2020, 15:14
P.S. Кто знает, можно ли оставлять свободный адресный вход у микрух MN41256, хотел их запихать вместо РУ5
Обязательно посадить на ноль или единичку.

Mick
13.12.2020, 18:03
Где отхватил, если не секрет?

У svinka

Mick
14.12.2020, 10:41
Собрал я провода согласно схеме 4 редакции (см. первый пост) дабы проверить работу процессоров Родон 9301 и 9303 на 4МГц

Запустил цветастый тест от ivagor и оба проца работают. Таким образом из тех кто точно работает на 4МГц так это
Родоны 9005, 9008, 9301, 9303. Это те кто у меня есть. Скоро еще добавиться Родон 9009 но это так сказать для проверки.
А так бы еще определить с какого месяца 90-года Родоны сменили технологию.

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

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

Ха, поставил Родон 8910, на 4 МГц тоже работает. Как говорит один персонаж из рекламы - Круто!

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

А вот Родоны 8909 из 4шт 50% работают на 4МГц. К сожалению 8910 у меня только один, посему утверждать не буду что тоже работают все процы. Но похоже понятен период когда сменили техпроцесс.

Mick
14.12.2020, 13:36
Вход 4 D9.1=not(SYNC and H0).

Напомни что на другие выводы D9 надо сажать при этом

ivagor
14.12.2020, 14:16
Напомни что на другие выводы D9 надо сажать при этом
Остальное остается как в zx8080_ver04.pdf

Mick
14.12.2020, 14:21
Остальное остается как в zx8080_ver04.pdf

Ну тогда Родон 9005 сваливается в красный бордер на 3 МГц. Он конечно ведет себя чуть по лучше чем с старым SC/, но сваливается.
При чем READY хоть альтернативный хоть быстрый - значение не имеет.

ivagor
14.12.2020, 14:24
Ну тогда Родон 9005 сваливается в красный бордер на 3 МГц
А "медленные" процы работают на 3 МГц при вход 4 D9.1=not(SYNC and H0)?
На вход 13 (R/) D9.2 подается H1/, как в схеме?

Mick
14.12.2020, 14:42
А "медленные" процы работают на 3 МГц при вход 4 D9.1=not(SYNC and H0)?
На вход 13 (R/) D9.2 подается H1/, как в схеме?

Медленные процы не пробовал, но похоже ты на верном пути.
По старой схеме Родон на 3МГц либо сразу в красный бордер, либо не стартует. По новому SC/ он максимум 5 проходов теста делает и уходит в красное.
Я решил поставить кварц на 13МГц = 3.25МГц.
При новом SC/ он доходит максимум до 25 проходов и сваливается. При старом SC/ он тоже работает не корректно. То есть счетчик байт идет а Pass нет.

Иными словами при старом SC/ хорошо может работать от 3,5МГЦ до 4МГц, а вот ниже начинается видимо уход в сторону нового SC/.
То есть, если теоретически сдвинуть еще (в какую ты там двигаешь), то может и станет работать.

ivagor
14.12.2020, 14:54
Mick, хочу уточнить - ты отдельно сформировал сигнал для входа 4 D9.1 (=not(SYNC and H0) ) или ты изменил SC/?

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

Если SC/ больше никуда не подается, только на вход 4 D9.1, то вопрос был лишним

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

Посмотрел, по схеме SC/ больше никуда не идет. Т.е. скорее всего ты на вход 12 D12.4 вместо CAS/ подал H0.

Mick
14.12.2020, 15:01
или ты изменил SC/?

Изменил SC/

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


скорее всего ты на вход 12 D12.4 вместо CAS/ подал H0.

Да

Кстати поставил Днепр 9205. Он на 3,25МГцпри старом SC/ сваливался, а вот с новым SC/ работает

ivagor
14.12.2020, 15:16
Mick, все же занудно еще раз спрошу - на вход 13 (сброс) D9.2 подается чистый H1/ без всяких добавок?

Mick
14.12.2020, 15:17
на вход 13 (сброс) D9.2 подается чистый H1/ без всяких добавок?

Да

ivagor
14.12.2020, 16:19
Мое предложение по модификации SC/ было рассчитано на борьбу с лишней записью в такте SYNC. В текущем варианте не вижу, как эта лишняя запись может появиться.
Есть как минимум 2 варианта дальнейших действий:
1. Попробовать поймать логическим анализатором момент ошибки.
2. Можно сделать простейшую программку, которая будет по кругу переписывать на экран картинку из пзу. Сама программа должна полностью работать из пзу, никаких подпрограмм и прерываний. Можно писать по разному в разные трети: например в верхнюю одиночные записи по ld (de),a , в среднюю стеком. В нижнюю можно попробовать записать только один раз при старте. Подождать и посмотреть, будет ли портится картинка в верхних третях.
Т.е. вопрос в том, проблема с записью или она шире?

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

Если идея с программкой устраивает, то я могу написать или сам сделаешь?

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

Как вариант - в нижнюю треть можно один раз на старте переписать из пзу, а потом в цикле читать озу и писать в ту же ячейку

Mick
14.12.2020, 19:00
Если идея с программкой устраивает, то я могу написать или сам сделаешь?

Если не затруднит, я сейчас писатель в меньшей степени.

Кстати попробовал сегодня Днепр 9205 опустить до 3МГц, собственно поведение как Родона 9005.

А вот более медленный проц Днепр 9010 работает на 3МГц.

ivagor
14.12.2020, 21:03
Сценарий работы test3pic
0. При старте задает атрибуты белое на черном, переписывает картинку из пзу в нижнюю треть экрана побайтно и устанавливает черный бордюр
Дальше бесконечный основной цикл
1.1. Переписываем картинку из пзу в верхнюю треть экрана побайтно
1.2. Сверяем верхнюю треть с пзу, если несоответствие, то устанавливаем красный бордюр
2.1. Переписываем картинку из пзу в среднюю треть экрана стеком (push)
2.2. Сверяем среднюю треть с пзу, если несоответствие, то устанавливаем зеленый бордюр
3.1. "Освежаем" (читаем и пишем по тому же адресу) картинку в нижней трети экрана побайтно
3.2. Сверяем нижнюю треть с пзу, если несоответствие, то устанавливаем синий бордюр

Картинка "абстрактная", столбцами высотой 64 строки значения от 0 до 255

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

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

Mick
15.12.2020, 09:05
В эмуляторе или в стабильно работающем компьютере ничего не будет происходить, черный бордюр и черно-белая картинка.

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

Опыт на 3МГц

ivagor
15.12.2020, 11:39
Получается все же у быстрых процов на 3 МГц проблема с записью

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

Переделал тест для проверки, не идет ли иногда запись в такте 1 цикла (когда SYNC).
Бесконечный цикл:
1. Переписывает картинку из пзу побайтно в среднюю треть (в test3pic так писал в верхнюю треть)
2. Сверяет с пзу.
Если обнаружит ошибку, то напечатает на экране ошибочный байт в двоичном виде. Несколько секунд бордюр будет красным, в это время тест на паузе. Потом бордюр станент черным и тестирование продолжится. Последний ошибочный байт будет оставаться на экране.

Если ошибочный байт будет всегда одинаковый, то скорее всего это слово состояния (FETCH=10100010 или MEMORY_WRITE=00000000)

Mick
15.12.2020, 13:27
Если ошибочный байт будет всегда одинаковый,

Нет он разный, и иногда пролезает запись в верхнюю треть экрана
Родон 9005 3МГц

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

Медленный Днепр 9010 картинка стоит как вкопанная

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

Сдается мне что все таки паразитная запись где то пролезает в быстрых процах

ivagor
15.12.2020, 15:15
Mick, в zx8080, насколько могу судить по схеме, такого (https://zx-pk.ru/threads/32000-vremennye-diagrammy-(rastaktovki)-quot-leningrad-48-quot-v-isis-proteus.html?p=1072935&viewfull=1#post1072935) (разных RASов в активной области и на бордюре) ведь нет? Не вижу в zx8080 откуда они могут появиться.

Mick
15.12.2020, 15:28
Mick, в zx8080, насколько могу судить по схеме, такого (разных RASов в активной области и на бордюре) ведь нет? Не вижу в zx8080 откуда они могут появиться.

В Ленинграде CAS немного по другому сформирован, у нас это просто инверсный H0. Так что разных RASов и CASoв нет они во всех областях идут одинаково.
Из предыдущих диаграмм записи видели когда вылезала паразитная запись. В момент защелкивания слова состояния. То есть в момент когда в системный регистр еще не обновилась информация (старая запись) по RAS возникает строб на D9.2 Вот он и хватает еще один такт записи. А там адрес уже другой или данные уже другие (слово состояния). И возникало вроде это на длинных командах записи (я полагаю типа SHLD, PUSH ...)

ivagor
15.12.2020, 15:39
Из предыдущих диаграмм записи видели когда вылезала паразитная запись. В момент защелкивания слова состояния.
Сдвиг SC/ должен был вылечить лишнюю запись в T1 и похоже действительно вылечил. Пока не могу составить в голове правдоподобную модель того, где сейчас может вылезти лишняя/паразитная запись. Возможно ее (лишней записи) теперь и нет, а по каким-то причинам искажается (адрес и/или данные) нормальная.

Mick
15.12.2020, 20:04
Сдвиг SC/ должен был вылечить лишнюю запись в T1 и похоже действительно вылечил.

Прикинул, действительно ты сдвинул сброс триггера записи за пределы срабатывания RAS. Теперь он по сути заканчивается с SYNC
В принципе можно таким образом попробовать еще раз сдвинуть на полтакта вправо-влево, но с коррекцией SC, чтобы он заканчивался с SYNC

ivagor
15.12.2020, 21:18
Возможны 4 варианта SC/. Пусть позиция исходного SC/=not(SYNC and CAS/) будет 0 (начало координат). Текущий вариант +2/4=not(SYNC and H0). Еще есть +1/4=not(SYNC and RAS) и +3/4=not(SYNC and RAS/), преимуществ у них не вижу, но возможно они есть.
+2/4=not(SYNC and H0) заканчивается с концом слота обращения к памяти. Если посмотреть на твои логи с реала, то SYNC заканчивается несколько позже F1 (или позже переднего фронта F2), т.е. он еще немного активен после конца слота, по крайней мере при 3.5 МГц.
Помню, что логи были получены при другом тактировании, но на сдвиг SYNC относительно F1 и F2 это не влияет. При смене частоты абсолютный сдвиг останется прежним, а вот относительный несколько меняется и при 3 МГц тот же SYNC меньше вылезвает в T2, т.к. больше его длительности остается в T1.
Поменять можно много чего, например момент переписывания из D9.1 в D9.2 и не только. Хорошо бы еще понять, в какую сторону двигаться.

ivagor
16.12.2020, 10:45
Доработал test1pic. Вторая версия при обнаружении ошибки показывает не только ошибочный байт из озу, но и эталонный байт из пзу.
Вверху эталонный байт
Строкой ниже - прочитанный из озу

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

Mick
16.12.2020, 11:39
Тут нарисовал идеализированные диаграммы с SC/
Старый вариант и новый.
Для старого SC/ можно переместить за пределы срабатывания D9.2 по RAS, если вместо RAS/ в формирователь SC/ поставить его противофазу - RAS.
Так как RAS формируется не на триггере а путем задержки через инвертор на ЛП5, то по логике между ними будет небольшая пауза, что при этом не должны наложиться сигналы RAS/ RAS, это чтобы иголки не было.

https://i.ibb.co/cxp44gD/ZX8080-3.jpg (https://ibb.co/cxp44gD)

ivagor
16.12.2020, 12:10
Посмотрел только новый (нижний) вариант. Если для 3.5 и 4 МГц, то SYNC и DBIN можно смело сдвинуть направо, как ты сдвинул WR\. То, что ты нарисовал (возможно только WR\ надо сдвинуть левее) в некоторой степени соответствует быстрым процам на <=3 МГц (у медленных тоже такой переход будет, скорее всего в районе 2.5-2.75 МГц). Конечно, разница в запаздывании сигналов относительно клоков у быстрых и тормозных процов не 70-80 нс, скорее в районе 20, но на 3 МГц это приводит к условному переходу некоторых сигналов быстрых процов в более левую позицию на картинке в том отношении, что у медленных эти сигналы точно справа, а у быстрых они уже немного вылезают слева.

Mick
16.12.2020, 12:51
как ты сдвинул WR\

Это с ноги ВМ80. В реальности WR/ начинается считай после SYNC

Добавил сигнал WR Mem - так будет точнее


https://i.ibb.co/7k9BwmX/ZX8080-31.jpg (https://ibb.co/7k9BwmX)

ivagor
16.12.2020, 13:16
Запаздывание (tDC) DBIN и SYNC отсчитывается относительно переднего фронта F2, а WR\ - относительно переднего фронта F1 и если рисовать единообразно, то надо сдвинуть или WR\ или DBIN и SYNC.

Решил дожать функционал test1pic до максимума. Теперь при обнаружении ошибки печатает 3 строки:
Адрес озу с ошибкой (hex)
Эталонный байт из пзу (bin)
Ошибочный байт из озу (bin)

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

Насчет WRmem я не понял, в схеме такого вроде нет. В схеме есть выход D10.1, но он будет инверсный относительно WRmem на картинке и по логам (и по схеме) видно, что длится он до F1 пересекающегося со следующим SYNC.

Mick
16.12.2020, 13:42
Насчет WRmem я не понял, в схеме такого вроде нет. В схеме есть выход D10.1, но он будет инверсный относительно WRmem на картинке и по логам (и по схеме) видно, что длится он до F1 пересекающегося со следующим SYNC.

Это я WRM проинвертировал и закончил окончанием WR/
По сути это типо должно выходить с D43.1 только в инверсии

ivagor
16.12.2020, 14:35
Изобразил свое видение части сигналов
https://i.imgur.com/wZYRTf2.gif

SYNC, DBIN и WR в трех вариантах. Без задержки понятно.
Большая задержка примерно соответствует всем процам на 3.5/4 МГц и медленным процам на 3 МГц.
Малая задержка условно соответствует быстрым процам на 3 МГц. Длительность SYNC, DBIN и WR конечно не меняется, но они раскорячиваются между соседними четвертьтактами. Для красивости (чтобы без раскорячивания) надо рисовать с большим временным разрешением.

ivagor
16.12.2020, 19:02
Еще раз предлагаю посмотреть анализатором.
Все версии test1pic пишут в озу только побайтно, поэтому если в логе появятся 2 записи подряд, то это ошибка и тут будет видно, при каких условиях она возникает.
Если двух записей подряд нет, а ошибки все же возникают, тогда надо думать дальше.

Т.к. я считаю, что разница в работе "быстрых" и медленных процов вызвана бОльшим запаздыванием управляющих сигналов относительно клоков у медленных процов, то эту версию можно проверить экспериментально.
Для этого надо сдвинуть клоки на 1/4 такта проца вправо. Но не сразу:
1. Надо заменить вход 11 D9.2 на H0. Если (по крайней мере медленные) процы сохранят работоспособность, то переходим к п.2.
2. Собственно сдвиг клоков
F1=(TI\ and CAS\) или эквивалентный вариант F1=not(TI or H0)
F2=RAS
SC\ не надо менять! SC\=not(SYNC and H0)

1) Если тормозные процы сохранят работоспособность после сдвига клока, а быстрые так и не начнут работать - значит дело не в запаздывании сигналов.
2) Или быстрые заработают, а медленные перестанут. Или все заработают. Тогда дело в запаздывании.
3) Или все перестанут работать - значит такой клок совсем не нужен, а проверка важности запаздывания не удалась.

Но если выбирать, то лучше бы анализатором посмотреть.

Mick
16.12.2020, 19:24
Но если выбирать, то лучше бы анализатором посмотреть.

Как приедет новый, посмотрим. Который есть, толку мало.

ivagor
16.12.2020, 20:02
Который есть, толку мало.
Но ты же им увидел лишнюю запись

Mick
16.12.2020, 20:03
Но ты же им увидел лишнюю запись

Хорошо, попробуем этим разглядеть.

ivagor
17.12.2020, 08:08
Если лишних записей нет, то с имеющимися тестами будет не так просто найти в логе ошибочную запись. Поэтому сделал тестик специально для анализатора. Он пишет в каждую ячейку числа от 0 до 255 и сразу проверяет. Если ошибка, то красный бордюр и короткое (в 4 раза короче, чем в test1pic) ожидание. Потом черный бордюр и продолжаем с того места, где остановились.
В чем фишка - в логе место ошибки можно будет найти по IOWR\. Да, придется отдать один из драгоценных каналов под казалось бы левый сигнал. Зато как находим ошибку: ищем в логе активный IOWR\. Он активен в 3 случаях:
1. При старте (запись 0 в FE)
2. При обнаружении ошибки (запись 2 в FE)
3. При выходе из состояния обработки ошибки (запись 0 в FE)
Нас интересует случай 2, и ближайшая по логу запись слева и будет записью с ошибкой. В случаях 1 и 3 ближайшие записи будут справа от IOWR\
Т.е. запускаем тест и анализатор, ждем красный бордюр, выключаем анализатор и ищем в логе ошибку.
Единственная возможная проблема, которую я пока представил - что этот тест не приведет к ошибочной записи (будет долго крутится без красного бордюра). Но тут не попробуешь - не узнаешь. Если не обнаружит, значит придется использовать другие уже проверенные тесты.
Еще такой момент - при старте память не очищается, поэтому на реале она очистится после первого прохода теста. Полный круг по памяти - примерно 4 минуты при 3 МГц, но начинает с экрана, поэтому он гораздо быстрее очистится.

Mick
28.12.2020, 09:25
Временно сделал паузу в проекте, надо было разобраться с своей звуковой картой (хотя в итоге вопросов стало больше чем ответов). Итак пока была пауза пришел новый анализатор на 16 каналов - DSLogic U2basic.
Будем так сказать смотреть что к чему. Правда вот не обещаю что на праздниках что то выйдет, хотя самому любопытно. Ведь уже подгорает от идее клона Ориона на турбо ВМ80 :)
А так невольно похоже стал коллекционером процессоров ВМ80 :)

Сгруппировал пока Родоны, к сожалению пока для ковчега не все подходят ибо не парные, но есть куда стремиться :)

https://i.ibb.co/8YfQ1PG/Rodon-VM80.jpg (https://ibb.co/8YfQ1PG)

Как было выше установлены примерно с процессоров 8910 начинается смена технологического процесса на Родоне, а это по сути дает возможность работать им на 4МГц, иными словами они стали наиболее близки по параметрам с импортными процессорами.

P.S. На барахолке создал тему по поиску Родонов - https://zx-pk.com/forum/viewtopic.php?f=5&t=17890#p169101

ivagor
28.12.2020, 10:33
Интересно, что за треугольник с 90 года рядом с логотипом завода, причем в 93 он другой. Еще svinka писал, что "сделано в ссср" предположительно экспортные родоны.

Mick
28.12.2020, 13:05
Интересно, что за треугольник с 90 года рядом с логотипом завода, причем в 93 он другой.

Треугольники вроде обозначали - типа боится статики. С другой стороны все кто на 4МГц работают они все с треугольниками. В таком случае выпадают конечно 8910, но можно предположить, что официально еще смену тех процесса не утвердили - опытные процессоры. Это надо искать процы с 8910 по 9005 и смотреть когда появился треугольник.

ivagor
28.12.2020, 14:24
Здесь (http://offtop.ru/dustyattic/v1_673128_all_.php?of13639=d8cae8d75b5ee4bbc70026d 69fdfdce6) (и здесь (http://kxk.ru/dustyattic/v1_702584_1.php)) пишут про чувствительность к статике, но без доказательств. Возможно доказательство было на картинке, которая уже не доступна.

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

Увидел там этикетку транзистора, где написано, что треугольник - знак чувствительности к статическому электричеству. И скан непонятно откуда, где написано, что дельта - признак содержания драгметаллов

Mick
31.12.2020, 17:48
Всех почитателей процессора КР580ВМ80А и не только, с наступающим Новым годом!
Всех благ, счастья и успехов в творчестве!

И как бы процессоры в надежде на продолжение исследований в следующем году.
:v2_dizzy_champagne: :v2_dizzy_christmas: :v2_dizzy_champagne:

https://i.ibb.co/FJ4Zhnx/2021-VM80.jpg (https://ibb.co/FJ4Zhnx)

Mick
12.01.2021, 11:58
Если лишних записей нет, то с имеющимися тестами будет не так просто найти в логе ошибочную запись. Поэтому сделал тестик специально для анализатора. Он пишет в каждую ячейку числа от 0 до 255 и сразу проверяет. Если ошибка, то красный бордюр и короткое (в 4 раза короче, чем в test1pic) ожидание.

Попробовал пока без анализатора, что на Родоне 9005 (на 3МГц не работает), что на Кванторе 9008 (на 3МГц работает) красного бордера не возникало ни разу.
Все таки я думаю, что как то завязано с выполнением кода из ОЗУ. Я конечно могу для подстраховки снять анализатором эпюры, но похоже проблема не в этом.

ivagor
12.01.2021, 12:22
А я думаю, что дело все же в записи, но есть какой-то нюанс. test1pic и testlog немного отличаются по организации проверки:
1. test1pic сначала переписывает картинку из пзу в озу, потом, когда все переписал, сверяет
2. testlog пишет и тут же проверяет, чтобы поймать неудачную запись. И не ловит, т.к. что-то принципиальное поменялось
Логи testlog записывать нет смысла, раз на всех процах он работает правильно. А вот лог test1pic с пойманной ошибкой на "быстром" проце может прояснить ситуацию, главное найти эту ошибку в логе

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

Прошло много времени, поэтому напомню на всякий случай, что в test1pic (и testlog) нет выполнения кода из озу, только из пзу. И нет никаких обращений к озу кроме записи и чтения тестовых данных (т.е. никаких вызовов подпрограмм или хранения рабочих переменных в озу)

Mick
12.01.2021, 19:04
test1pic сначала переписывает картинку из пзу в озу, потом, когда все переписал, сверяет

Попробовал test1pic3 c анализатором, к сожалению на IORW цепляться тяжело потому как ты при окончании записи долбишь в порт FE - записываешь черный бордер.
Можешь чуть изменить тест, в момент записи красноты в бордер перед этим читать порт FE - лучше по IORD триггер тогда ставить

ivagor
12.01.2021, 20:16
Запись 0 в FE я могу вынести из основного цикла, будет один раз при старте и в конце ожидания после нахождения ошибки (после красного бордюра). Ты хочешь в момент нахождения ошибки прекращать запись по триггеру IORD, я правильно понял? На мой взгляд это особо ничего не даст, можно и вручную выключить при появлении красного бордюра, все равно ошибочную запись придется искать "вручную", просмотром, т.к. она произошла намного раньше обнаружения ошибки (здесь, в отличие от testlog, запись и чтение/проверка разнесены). У меня пока нет идей, как облегчить нахождение ошибки.

Mick
12.01.2021, 21:03
Ты хочешь в момент нахождения ошибки прекращать запись по триггеру IORD, я правильно понял?

Нет, я хочу начинать поиски с этого момента.



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

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

ivagor
12.01.2021, 21:10
Нет, я хочу начинать поиски с этого момента.
Так я и не понял эту идею


Можно сделать по другому, записывать сначала допустим по 8 значений, потом сверять, затем следующие 8 и так далее. По крайней мере будет проще считать если вылезет ошибка
Это можно попробовать, но уже завтра

Mick
12.01.2021, 21:15
Это можно попробовать, но уже завтра

Дык и проверять завтра только смогу :)

ivagor
13.01.2021, 07:38
Примерно придумал, как можно сделать, но надо уточнить насчет триггеров.
1. Нужны триггеры старта записи лога и окончания записи или только один из них (какой)?
2. Если нужны триггеры старта и окончания записи, то они должны быть в разных каналах? Для примера запись лога можно начать по первой записи в память, следующие записи в память (надеюсь) ничего не перетриггерят, а стоп записи лога можно сделать по чтению порта. Но можно и не так, начинать запись вручную, а стоп по триггеру.

Mick
13.01.2021, 09:32
Но можно и не так, начинать запись вручную, а стоп по триггеру.

Скорее наверное так, ибо я не совсем разобрался еще с анализатором.

ivagor
13.01.2021, 12:05
Второй вариант анализатородружественного теста.

1. При старте запись 0 в порт FE. Опорный байт=FF
2. Опорный байт++
3. Дальше до конца памяти цикл по 8 записей и проверок
3.1. 8 записей. Опорный байт, опорный байт+1, ..., опорный байт+7
3.2. 8 проверок.
Если обнаружена ошибка, то читаем порт, но не останавливаемся, а продолжаем до конца группы из 8 байт.
Если в группе была ошибка (или ошибки), то красный бордюр, немного ждем, черный бордюр и продолжаем
4. Если дошли до конца памяти, то переход к п.2.

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

Ну и пока не ясно, будут ли ошибки при работе данного теста, может он процессоро-толерантный как testlog и надо что-то поменять

Mick
14.01.2021, 15:22
Ну и пока не ясно, будут ли ошибки при работе данного теста, может он процессоро-толерантный как testlog и надо что-то поменять

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

Анализатор процесс записи показывает вот так.

https://i.ibb.co/s2wwxFz/DSView-210114-151206.png (https://ibb.co/s2wwxFz)


Каналы:
0 - TI/
1 - F1 (выв.9 D35)
2 - F2 (выв.11 D35), он же CAS/
3 - RAS/ (выв. 9 D2)
4 - H1 (выв. 1 D35)
5 - SYNC (выв.13 D12)
6 - WRM+WO+WR (выв.12 D9)
7 - WE/ (выв.8 D9)
8 - WR/ (выв.12 D45)
9 - IORD/ - но он по сути бестолковый

Цена 1 деления 10нс (100МГц захват)

Картинка одинакова что на медленном проце, что на быстром

NEO SPECTRUMAN
14.01.2021, 15:31
а известно 8080 тоже сбрасывает SP в $FFFF по ресету или нет?
чот сходу не нагугливаитсо

можете там за одно проверить с каким нибудь тестом

а то я хочу заюзать rst0 в качестве какого нибудь JR :)

ivagor
14.01.2021, 16:47
100МГц захват
Вот это приятное разрешение


красный бордер иногда все таки вылезает, но криминала особо не замечено
Тут я не понял. При красном бордюре iord триггерит окончание записи лога? Если нет, то это проблема анализатора или проверь как задан триггер.
Если iord останавливает запись лога, то там видно одну из двух вещей: или ошибку записи или ошибку чтения.
Если по управляющим сигналам непонятно, почему ошибка, это тяжелый случай, значит что-то с данными или адресом, но с 16 каналами будет сложно определить.


Появление время от времени одиночных атрибутов, но ошибкой это твой тест не считает.
Интеллекта у теста нет и он выдумывать что-то от себя не может.
Если ошибка не обнаружена, значит прочитано значение совпадающее с тем, которое ожидает по данному адресу тест.
Т.е. тут или одинаковая ошибка в адресе записи и чтения, или ошибка при чтении, которая исказила неправильные записанные данные так, что они совпали с правильными.


8080 тоже сбрасывает SP в $FFFF по ресету или нет?
не сбрасывает

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


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

NEO SPECTRUMAN
14.01.2021, 16:50
не сбрасывает
печально...
а где это написано?

ivagor
14.01.2021, 17:18
Один из вариантов, что можно сделать. Убрать 3 сигнала: 1 (F1), 6 (вход D D9.2) и 8 (WR\). Добавить шину данных и DBIN. Так можно будет сравнить данные при записи и при чтении.


а где это написано?
В векторовском разделе форума точно обсуждали (много лет назад), в даташите вроде тоже есть. Точные места сейчас назвать затрудняюсь, надо искать.

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


шину данных
Если с записью и чтением данных все нормально, то можно будет поменять ШД на мультиплексированный адрес, который идет на озушки

ivagor
14.01.2021, 19:27
а где это написано?
An external RESET signal of three clock period duration (minimum) restores the processor's internal program counter to zero. Program execution thus begins with memory location zero, following a RESET. Systems which require the processor to wait for an explicit startup signal will store a halt instruction (EI,HLT) in the first two locations. A manual or an automatic INTERRUPT will be used for starting. In other systems, the processor may begin executing its stored program immediately. Note, however, that the RESET has no effect on status flags, or on any of the processor's working registers (accumulator, registers, or stack pointer). The contents of these registers remain indeterminate, until initialized explicitly by the program.

Mick
14.01.2021, 20:56
Тут я не понял. При красном бордюре iord триггерит окончание записи лога? Если нет, то это проблема анализатора или проверь как задан триггер.

Нет, по iord триггер срабатывает и запись заканчивается. Но после просмотра около сигнала нет изменений, которые указывали бы на косяк. Циклы записи одинаковы всегда.

А вот чем я говорил когда красный бордер не появляется, но явно видна ошибка.

https://i.ibb.co/h7kkkbP/IMG-20210114-151441.jpg (https://ibb.co/h7kkkbP)

Видишь косяк с атрибутом. Но тест не обнаружил ошибки - красного бордера не возникло.

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


Небольшие отличия в запаздывании некоторых управляющих сигналов (хотя бы 10 нс) должны быть

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

ivagor
14.01.2021, 21:11
Но после просмотра около сигнала нет изменений, которые указывали бы на косяк. Циклы записи одинаковы всегда.
Тогда скорее всего дело в данных или адресе, тут у меня других идей не появилось.


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


Надо тебе поставить будет программу от анализатора
Эту (https://www.dreamsourcelab.com/download/)?

Есть еще подсказка, что при работе testlog не возникало ошибок. Это что-то значит, но я не могу понять что. Там была запись и сразу проверка, а в testlog2 (и в практически всех остальных тестовых программах) циклы записи и проверки разнесены.

Mick
15.01.2021, 19:38
Эту?

Да.

Вот примерно как выглядит лог. Ошибочное чтение. - https://yadi.sk/d/Un1UgCJdL5tfiQ

Сигналы
0 - TI/
1 - RAS/
2 - CAS/
3 - H1
4 - SYNC
5 - WE/ (8 D9)
6 - CSRAM/
7 - D0
8 - D1
9 - D2
10 - D3
11 - D4
12 - D5
13 - D6
14 - D7
15 - IORD/

HardWareMan
15.01.2021, 20:35
Mick, ты бы лучше подписывал сигналы прямо в софте ЛА. Чтобы была прямая привязка, а не необходимость искать легенду где-то в недрах форума.

ivagor
15.01.2021, 20:52
Программу могли бы сделать получше, хотя бы объединение нескольких каналов в шину, но как есть так есть.

Если глаза меня не обманывают, то видна ошибка чтения 1F вместо 3F, но все довольно загадочно. На ШД была правильная комбинация с начала CSRAM/ примерно до CAS/, т.е. фактически до начала реального чтения из озу. Пока не понимаю, откуда она (правильная комбинация) там появилась и куда так быстро пропала.
Ошибки записи были видны даже визуально (на экране), получается еще и ошибки чтения.

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

Mick, в каком месте ты цеплялся к ШД? Это ШД проца или между D30 и D33?

Mick
15.01.2021, 21:06
Mick, в каком месте ты цеплялся к ШД?

На буферном регистре ИР22

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


Ошибки записи были видны даже визуально (на экране)

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

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


Если глаза меня не обманывают, то видна ошибка чтения 1F вместо 3F

Да именно так. И сначала данные правильны, а потом слетают

ivagor
16.01.2021, 06:32
После некоторого размышления все же нет 100% уверенности, что это ошибка именно чтения. Нужен визуальный контроль, например писать только в область атрибутов, там выбивающийся байт будет сразу виден. Еще можно попробовать при обнаружении ошибки читать эту ячейку несколько раз.
Выглядит так, что сначала данные правильные, но для такой крутой "предвыборки" не понимаю физических основ, там еще casа не было. Может это невероятное совпадение, но верится, конечно, с трудом.

На буферном регистре ИР22
Со стороны D или MD? Скорее D, но лучше уточнить.

Этот анализатор тоже не хочет логить без TI? А то бы заменить этот сигнал на более полезный, например DBIN или READY

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

Хотя с чтением все же что-то неладно, "типа иголки" на ШД

Mick
16.01.2021, 08:34
Скорее D, но лучше уточнить.
Уточняю, со стороны D

NEO SPECTRUMAN
17.01.2021, 03:02
вобщем я херею от чудес которые происходят при адаптации пзушки

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

проверяю перемещаемость кода
(собираю со всеми процедурами лежащими в обратном порядке)

отваливается сравнение строк
"A"="A" (оно же например inkey$="Q")
и выдает все время 0

все это происходит в eightyone

пол дня с этим трахаюсь

потом тыкаю эту же пзу-шку в другой эмулятор в третий
а там все прекрасно работает... :v2_dizzy_facepalm:

шито блджт мать вашу происходит? о_О

что можно было нарукожопить в эмуляторе
что один и тот же код по разным адресам выполняется по разному? :mad::v2_dizzy_wall:

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

видимо все это происки злых бкшных шаманов которые пытаются остановить появление зх8080

HardWareMan
17.01.2021, 06:25
Программу могли бы сделать получше, хотя бы объединение нескольких каналов в шину, но как есть так есть.
Угу, они не сделали шину потому что есть декодеры. Но их родной декодер требует тактирования (сигнал, по которому запоминаются значения). Это удобно, когда ты смотришь относительно некого строба. А для асинхронного объединения нужен свой декодер. И пишется он не сложно. Даже на изменяемую ширину шины (а статичная ширна ваще изи).

ivagor
17.01.2021, 13:52
Третий вариант анализатородружественного теста. Отличия от второго:
1. При старте очищает озу нулями.
2. Группы записи и проверки по 4 байта вместо 8.
3. Тест пишет (и проверяет) только в область атрибутов.
4. При обнаружении ошибки читает этот адрес еще раз (результат чтения не влияет на работу теста и нужен чтобы в логе анализатора можно было сравнить два чтения одного адреса).
5. Пауза (с красным бордюром) при обнаружении ошибки увеличена, чтобы можно было рассмотреть экран и увидеть ошибочный байт, если он там есть.

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


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

HardWareMan
17.01.2021, 17:30
ivagor, кстати да. Я забыл, что там можно не указывать тактирование и тогда он будет показывать от изменения к изменению, как настоящая шина.

ivagor
17.01.2021, 18:12
Да, это они хорошо сделали, а то я сначала указал TI/ в качестве тактового и "типа иголки" на ШД пропускались

HardWareMan
17.01.2021, 18:58
ivagor, там при написании декодера можно указать обязательные пины и необязательные пины. И обрабатывать их соответственно.

ivagor
17.01.2021, 19:11
С обязательными я познакомился, когда хотел использовать декодер ШД от z80, он потребовал еще 3 обязательных сигнала

ivagor
18.01.2021, 08:04
При обнаружении ошибки читает этот адрес еще раз
Как это будет выглядеть в логе - iord будет после повторного чтения, которое может быть и правильным, ошибку обнаружило предыдущее чтение. Т.е. надо смотреть два чтения до iord

Насчет "правильного 3F перед неправильным 1F". Все же это действительно совпадение, 3F есть на ШД в начале каждого CSRAM

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


3F есть на ШД в начале каждого CSRAM
Уточнение - в начале каждовго CSRAM до ошибочного чтения включительно, в следующих чтениях 3F меняется на 43

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

Если управлять записью вручную (по бордюру), то можно заменить IORD на более полезный сигнал. А место ошибки определяем поиском - SYNC=F и ШД=42hex

ivagor
18.01.2021, 11:05
Два крошечных, но важных изменения по сравнению с 3й версией теста:
1. При старте озу заполняется не нулями, а 0F, чтобы при в байтах атрибутов были видны ошибки не только в цвете фона
2. Заполняется все озу, а не только доступное на чтение. Это не принципиальный момент, просто проверить, что в таком случае вместо 3F или 43 (или еще чего-то) в начале CSRAM всегда будет 0F

Mick
18.01.2021, 11:37
Так что мне проверять, 3 или 4 тест.
И проверять медленный (его просто записывать) и быстрый (по срабатыванию по IORD)?

ivagor
18.01.2021, 12:10
что мне проверять, 3 или 4 тест.
Лучше 4

проверять медленный (его просто записывать) и быстрый (по срабатыванию по IORD)?
Насчет медленный/быстрый я не вполне понял. Если речь про триггерение по iord, то я бы так подошел - если есть важный сигнал, которым стоит заменить iord, то лучше записывать вручную без iord с контролем бордюра, а если такой сигнал пока не ясен, то проще с iord. Сигналы то конечно есть на замену iord, но их много и не знаю какой выбрать.
Очень важно записать и с плохого проца и с хорошего, чтобы можно было сравнить. Когда будет красный бордюр пожалуйста обрати внимание, виден ли выбивающийся/выделяющийся ошибочный байт.

Mick
18.01.2021, 12:25
Беда в том, что медленный проц не выбивался ни разу на прошлых тестах. То есть поймать ситуацию с ошибкой возможно не получится.

ivagor
18.01.2021, 13:02
Это не беда, это скорее хорошо, т.к. будет пример стабильно работающих (на 3 МГц) операций с озу. Для медленного проца просто запиши фрагмент прогона теста.

Mick
18.01.2021, 21:02
Прогнал тест4. Ошибки с медленным процом не были замечены, с быстрым возникали, но не так часто.
На экране артефактов не обнаружено.

Быстрый проц - https://yadi.sk/d/FpLAmbr3dTtHRg
Медленный проц - https://yadi.sk/d/qifQL3SG6q_ioQ

Сигналы те же, почему то сбросились при начале замера.

ivagor
19.01.2021, 08:04
Не знаю, кто как, а я не увидел ответ на главный вопрос - почему ошибки. Если других мыслей нет, то стоит посмотреть, что на адресных входах озушек, т.е. заменить D0-D7 на MA0-MA7 и сравнить медленный проц без ошибок и быстрый с ошибкой

ivagor
19.01.2021, 10:10
Для медленного проца достаточно одного сеанса записи, а для быстрого желательно не меньше двух (и в каждом по ошибке).

Mick
19.01.2021, 19:03
Сменил шину данных на адреса ОЗУ (MA0-MA7)

Быстрый проц - https://yadi.sk/d/FpLAmbr3dTtHRg
Медленный проц - https://yadi.sk/d/qifQL3SG6q_ioQ

ivagor
20.01.2021, 09:03
Логи хорошие, криминала не видно, а ошибки с быстрым процом есть. У меня пока нет идей в рамках 16 каналов, разве что можно попробовать (временно) поменять РУ5 на более быстрые озушки, вроде после изменения SC/ ты это не пробовал.

Mick
20.01.2021, 09:53
разве что можно попробовать (временно) поменять РУ5 на более быстрые озушки, вроде после изменения SC/ ты это не пробовал.

Хорошо, попробуем поставить и посмотреть.

То есть у тебя подозрения что память не отрабатывает, но тогда как же при 3,5МГц или 4МГц она все успевает.

ivagor
20.01.2021, 10:14
У меня иррациональные подозрения, рациональных пока нет. Мало того, что на 3.5 и 4 работает, еще и на логах 3 МГц проблем не видно, кроме того, что читаются неправильные данные из озу. И даже на 3 МГц быстрые процы работают, когда проверка сразу после записи. Как это все непротиворечиво совместить я не знаю.

Mick
20.01.2021, 11:23
У меня иррациональные подозрения, рациональных пока нет.

Если рассуждать логически. Синхрогенератор у нас один и не зависит от типа процессора (медленный или быстрый). Значит тут проблем не должно быть.
Смотрим процесс чтения из ОЗУ.
Когда идет сигнал SYNC на шине данных 82h (чтение данных). Данные удерживаются процессором в течении всего SYNC и чуть больше.
Я так понимаю, потом процессор должен отдать шину на чтение данных
Затем возникает непонятный 3F и длится по сути пока RAS/ перейдет в 0. Вероятно как раз в этот момент шина отдана и фиг знает что там.
По срабатыванию CAS/ в 0 сначала всегда какой то мусор и только потом нормальное значение.

Так вот WRBUF у нас активен по H1=0 и H0 =1 (CAS/ =0). То есть в этот момент происходит на шине мусор а потом данные.
Не может ли быть коллизия именно в этот момент, проц шину еще не отпустил, а данные уже ему по CSRAM пытаются вкарячить.

Иными словами, что такое 3F и что такое мусор за ним?

ivagor
20.01.2021, 12:31
Если я правильно понял, ты про первый тест, где все CSRAM/ до ошибочного включительно начинались с 3F, а после ошибочного чтения с 43. Это данные из озу под пзу, т.к. чтение из озу каждый H1=0, кроме тех случаев, когда WE/=0. Команды из пзу читаются, адреса на шине адреса, но на шину данных c "нашей" стороны ИР22 они попадают только при CSRAM/=0. Потом (с 3 или 4 теста, я уже забыл, надо уточнить) я стал при старте заполнять все озу (от 0000 до FFFF) значением 0F, что можно увидеть в логах c D0-D7.

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

С 4й версии, там я написал (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1099417&viewfull=1#post1099417)

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

Еще один момент - если возникнет вопрос, почему в 4й версии не всегда CSRAM/ начинается с 0F на ШД, то там легко заметить, что "не 0F" наблюдается в случаях, когда на предыдущий H1=0 попадал SYNC, и в это время на ША была всякая ерунда.

ivagor
20.01.2021, 15:11
Есть вопрос по логам, на который я не знаю ответ - в первом логе ошибочное чтение было с tCAC ("время выборки относительно сигнала выбора адреса столбцов") 10 нс, это совершенно нереально для dramины (если не страничные и другие подобные режимы, и то для более быстрых, чем РУ5). Остальные чтения, в т.ч. ошибочные в следующих логах, с tCAC=50-60 нс, что все равно очень быстро для РУ5Г (официально 120 нс, для РУ5Б - 70 нс), но это еще туда-сюда, тем более никто не торопит и cas не убирает, там запас времени есть. Возвращаясь к непонятному - ладно бы через 10 нс данные продолжали дергаться, меняться, но они замерли и не менялись.

Mick
20.01.2021, 16:01
Насколько я понял у анализатора частота выборки 100МГц, т.е. 10нс. Как сам заметил там сигналы кратны 10нс и даже если возникнет короткая иголка она будет и анализатор ее уцепит, то она будет длиной 10нс.
Если допустим мусор возникает при смене CAS/ из 1 в 0 к тому же WRBUF становится активным в это же время, то возможно анализатор ухватывает изменение данных из РУ5Г.
Тут вопрос какова задержка в РУ5 с момента выставления адреса до появления данных. В нашем случае сколько времени после CAS/ появляются данные на выходе.

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

ivagor
20.01.2021, 16:11
В нашем случае сколько времени после CAS/ появляются данные на выходе.
Это как раз tCAC, и для практически всех чтений в логах это 50-60 нс.
Насчет той ошибки с tCAC как бы 10 нс. Понятно, что в реальности картина скорее следующая: в районе перехода CAS/ в активное состояние переходит в активное состояние и WRBUF и то, что мы видим через 10 нс явно висело на шине MD к тому моменту и теперь дошло на выход ИР22. Но у меня основное недоумение в том, почему дальше, через те самые 50-60 нс не появились нормальные данные из озу, соответствующие текущему адресу и даже никаких дерганий на шине. Ну и почему такое проявление ошибки было одно, а в двух других логах вобще не за что зацепиться.
Кстати, я высказывал в теме мысль, что у медленных процов задержка (по крайней мере некоторых) сигналов относительно клоков больше, чем у быстрых. В логах можно заметить, что CSRAM у медленных запаздывает чуть сильнее, чем у быстрых, на 10-20 нс. Связываю это с большим запаздыванием DBIN у медленных процов. Но это просто наблюдение, не вижу, как это может повлиять на ошибки.

Mick
20.01.2021, 19:23
Ну хорошо, а что по твоему ты надеешся увидеть на быстрой памяти 100нс?

И чем это нам поможет, если как ты предполагаешь что в медленных DBIN запаздывает относительно быстрых. Может в этом случае компенсировать для быстрых процов (задержать) - установить что то среднее. Хотя вполне возможно что при этом перестанут быстрые процы работать на 4МГц.

P.S. У китайцев заказал керамический D8080A - как придет его проверим на предмет к какому типу он относится. Вроде писали что он не гонится.

ivagor
20.01.2021, 20:07
Замену памяти я в данном случае воспринимаю не как лечение, а как диагностическую процедуру. Вряд ли все станет хорошо, но возможно это укажет направление. Например ошибок станет больше или меньше.

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

Mick
21.01.2021, 10:02
Вряд ли все станет хорошо, но возможно это укажет направление. Например ошибок станет больше или меньше.

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

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

Хотя, поставил медленный проц - на экране артефактов нет. Ему похоже пофиг.

ivagor
21.01.2021, 10:24
Визуально появились артефакты на экране их тест не обнаруживает, ошибки в самом тесте возникают
Т.е. похоже еще ярче, чем с РУ5 проявляются 1) необнаруживаемые ошибки записи и 2) ошибки чтения

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


логи вечером пришлю
Думаю стоит обратно заменить шину MA на D

Mick
21.01.2021, 12:46
Думаю стоит обратно заменить шину MA на D

Это я уже заменил, все тесты на новой памяти с шиной D

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


Т.е. похоже еще ярче, чем с РУ5 проявляются 1) необнаруживаемые ошибки записи

Да.

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


Если бы это была плисина, то я бы начал "экспериментировать",

У меня время от времени возникает сделать девборду на основе моего ZXM-Jasper, только на ВМ80. Как раз для разгонных нужд - https://zx-pk.ru/threads/28023-kompyuter-quot-zxm-jasper-quot-obsuzhdenie.html?p=925057&viewfull=1#post925057

ivagor
21.01.2021, 15:09
С быстрой памятью, когда стало сравнительно много ошибок записи, это хороший повод увидеть их в логе. Скорее всего ты записал лог с быстрой памятью по ошибке чтения (IORD + красный бордюр). Хорошо бы еще записать лог, во время которого случится ошибка записи, т.е. во время записи лога ты увидишь, что появился левый, выделяющийся атрибут. Тут останавливать запись по IORD не надо, можно даже временно заменить его на вход 12 (D) D9.2 (он же выход 3 D43.1), но это не обязательно, в принципе WE/ хватит. У меня появилась мысль, если подтвердиться, то ты и сам увидишь в логе.

CodeMaster
21.01.2021, 15:23
Мало что понимаю, но давно слежу за этой эпопеей ;-) Можно высказать очень нубское предложение?
Я не помню сколько там канальный анализатор, но думатся неполного байта будет достаточно (накрайняк можно сделать отдельно запись старшего и младшего нибла).
Может быть сделать запить 4-х (6-ти) бит ШД на ногах процессора и этих же бит на ногах РУшек и посмотреть не влияет ли остальная схема на прохождение данных?

З.Ы. Если предложение совсем не в тему, можете не заметить его ;-)

NEO SPECTRUMAN
21.01.2021, 16:23
последние страниц 30 уже не слежу за безостановочным тыканием анализатором
как там проц все еще будет с вайтами?

а то так получилось что новая ПЗУ-шка
4 секунды теперь только будет запускаться на безвайтовом 3,5МГц z80
что ужо ощутимо долго...

что как бы намекает что 4МГц бы не помешали :)

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

так же чот пропустили достижение 666-го поста в теме :)

Mick
21.01.2021, 19:21
У меня появилась мысль, если подтвердиться, то ты и сам увидишь в логе.

Итак, вот какая картинка с мусором на быстрой памяти.

https://i.ibb.co/FVbzBcb/IMG-20210121-130519.jpg (https://ibb.co/FVbzBcb)

Логи с шиной данных и IORD - https://yadi.sk/d/7ye0X1_JMLGmvA
Логи с шиной данных и выв. 12 D9 - https://yadi.sk/d/6ixEZP-hND2Xeg

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


последние страниц 30 уже не слежу за безостановочным тыканием анализатором
как там проц все еще будет с вайтами?

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

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


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

Гы гы РУ5Д у меня к сожалению нет, чтобы на тормозной памяти проверить.

NEO SPECTRUMAN
21.01.2021, 19:30
Я бы сократил бы ПЗУ
щас основная проблема работоспособность после дубового адаптирования
тк 8080 имплементации z80 команд которые я юзаю не очень точно повторяет работу с флагами
а местами вообще содержит ошибки...

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

ну и я несколько поспешил в процессе
результат получился соответствующий :)

Mick
21.01.2021, 19:51
нашел у себя ГДРовскую память U2164D. Она РУ5 какой букве соотвествует?

ivagor
21.01.2021, 20:15
Логи с шиной данных и выв. 12 D9
В этих логах под названием CSRAM/ явно не CSRAM/


Логи с шиной данных и IORD
Насчет ошибки непонятно, но заметно, что память чуть быстрее. У РУ5Г tCAC в основном 50 нс (иногда 60), а тут 40 нс (иногда 50)

Mick
21.01.2021, 20:39
В этих логах под названием CSRAM/ явно не CSRAM/

Наверное отскочила прищепка. Новые данные теперь уже во вторник будут.

ivagor
21.01.2021, 20:58
Если оставить в стороне CSRAM/, то я думал, что все же увижу в логе с явной ошибкой записи лишние WE/, но я их не увидел. Это с одной стороны хорошо, но с другой стороны вопрос с механизмом возникновения этих ошибок остается открытым.

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

Насчет ошибок на картинке и почему тест их не обнаруживает. С вероятностью близкой к 100% это были ошибки записи (в т.ч. в область 4000-57FF) при первоначальном заполнении памяти значением 0F. Основной цикл теста трогает только область атрибутов и наличие 0F по другим адресам не проверяет.
Я все же склоняюсь к тому, то ошибки чтения на самом деле являются ошибками записи, просто мы обнаруживаем их при чтении. Уже писал, что ввел повторное чтение ячейки при обнаружении ошибки и там всегда ошибка повторяется, на мой взгляд это больше похоже на то, что в озу записалось неправильное значение.

Mick
21.01.2021, 21:17
С вероятностью близкой к 100% это были ошибки записи

Хорошо, если это ошибки записи, почему их нет с медленным процессором.
По моему надо попытаться понять чем отличаются процы и как с этим бороться.

И да, ты не в курсе аналога памяти U2164D - если это РУ5Д, то можно для чистоты эксперимента проверить на быстром проце.
По логике, чем шустрее память, тем ошибки возникают чаще. С РУ5Г ошибки случаются реже, а вот что будет с РУ5Д.

ivagor
22.01.2021, 08:23
Хорошо, если это ошибки записи, почему их нет с медленным процессором.
Если бы знал, я бы написал, не стал держать в себе. Один момент вчера заметил, так получается, что в тесте все записи в 3 такте, и если посмотреть на сигнал, который ты назвал WRM (что может кого-то запутать, т.к. в схеме уже есть другой WRM/), то он заканчивается раньше WE/ на 40-50 нс. Причина этого - что WR/ проца становится =1. Уверен, что тут как и с CSRAM/ (DBIN) у медленных процов WR/ заканчивается немного позже. Но, как и с CSRAM/, явных проблем это не должно вызывать, т.к. и по даташиту и по логу после завершения WR/ на ШД (что важно) и ША (что уже не очень важно к этому моменту) еще некоторое время будут актуальные данные. Тем не менее в порядке танцев с бубном можно укоротить WE/. Даже для РУ5Г (не говоря про более быструю память) минимальные длительности tWR и tWCH - 80 нс, при 3 МГц это четверть такта, сокращение не нарушит требования даташита.
Укорачивание сзади - возможны разные варианты:
1) новый WE/=старый WE/ or RAS/
или
2) вход 13 (R/) D9.2=H1/ and (TI/ or CAS/)
или
3) вход 13 (R/) D9.2=H1/ and TI/, но тут еще надо заменить вход 11 (С) D9.2 на H0
или
4) можно еще что-то придумать

Укорачивание спереди - самый простой вариант уже озвучил ранее, это замена входа 11 (С) D9.2 на H0.

По хорошему такие изменения не должны влиять, но и замена памяти не должна была влиять на количество ошибок (и с медленными процами так и есть), а на практике с быстрыми влияет. Укорачивание WE/ можно рассматривать как одну из возможных диагностических операций.


Насчет U2164D достоверные характеристики сходу не гуглятся, но скорее всего по логу разница была бы заметна, те же РУ5Г от более быстрой памяти отличаются по tCAC.

Mick
22.01.2021, 08:45
Насчет U2164D достоверные характеристики сходу не гуглятся, но скорее всего по логу разница была бы заметна, те же РУ5Г от более быстрой памяти отличаются по tCAC.

Тогда во вторник поставлю и посмотрим как она поведет.


Укорачивание спереди - самый простой вариант уже озвучил ранее, это замена входа 11 (С) D9.2 на H0.

По моему уже пробовали и ни к чему хорошему вроде не привело.

ivagor
22.01.2021, 10:28
По моему уже пробовали и ни к чему хорошему вроде не привело.
Если ты пробовал, то о результатах не писал.
Я предлагал это в качестве составной части одного из вариантов исправления SC/, но ты не писал, что пробовал его (исправлять текущий вариант SC/ точно не нужно, лишних записей в логах не видно).

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

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

ivagor
22.01.2021, 14:07
Придумал, как можно проверить отдельно чтение без записи. После включения питания в dram не нули, а более-менее индивидуальный для каждого типа "мусор". Тестируем так:
1. Считаем образцовую CRC
2. Бесконечно повторяем цикл - считаем CRC, сравниваем с образцовой, если совпало, то бордюр ненадолго зеленый, потом продолжаем, если не совпало - то красный и в этом случае можно остановиться. Лог тут не ненужен, достаточно чтобы за полчаса-час не появился красный бордюр.

Mick
22.01.2021, 15:02
В любом случае никто не заставляет все это пробовать на практике, можно воспринимать это как дополнительную пищу для размышлений.

Проверить не сложно, теперь есть анализатор.

Но если теоретически порассуждать, то как бы с быстрой памятью вываливается мусор и ошибки чаще, с РУ5Г на экран ничего не срется, ошибки реже. Остается проверить еще один вариант, поставить 565РУ5Д, она вроде наиболее тормознутая из всех. И по теории заговора - там должны исчезнуть вообще ошибки.

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


Насчет U2164D достоверные характеристики сходу не гуглятся

Тут немного описывается они - https://retrocmp.de/hardware/u2164d/u2164d.htm
Я так понял быстродействие маркируется во второй строке. Если в статье U2164B C15 - 150нс, то это РУ5В
У меня U2164B C20 - 200нс, это РУ5Г
Значит не подходят немного.

ivagor
25.01.2021, 17:03
Сделал тест (https://yadi.sk/d/FzXEX8MeSAgRtg) правильности чтения по ранее озвученному сценарию (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1100442&viewfull=1#post1100442).
1. При старте небольшая пауза, потом черный бордюр
2. Считаем эталонное значение CRC16 для адресов 4000h-6000h
3. Основной цикл
3.1. Считаем CRC16 для адресов 4000h-6000h
3.2. Сравниваем с эталонным значением.
3.3. Если совпало, то ненадолго зеленый бордюр, потом черный и переход к п.3.1
3.4. Если не совпало, то красный бордюр и стоп

Сначала лучше убедиться в работоспособности теста на медленном проце. Минуты будет достаточно, при этом во время работы теста должен мигать зеленый бордюр. Потом переходим к быстрому процу. Тут надо потестировать час или хотя бы полчаса. Если за это время свалится в красный бордюр, то ошибки чтения 100% есть. Если будет пролжать мигать зеленым, значит ошибок чтения не обнаружено. Чем дольше тест с зеленым миганием, тем больше уверенность в отстутствии ошибок чтения, для практике часа достаточно.

Mick
26.01.2021, 11:44
Сначала лучше убедиться в работоспособности теста на медленном проце. Минуты будет достаточно, при этом во время работы теста должен мигать зеленый бордюр. Потом переходим к быстрому процу.

Проверил.

Медленный проц с 100нс и РУ5Г зеленый бордюр моргает - без сбоев
Быстрый проц с 100нс и РУ5Г - зеленый бордюр моргает небольшое количество (2 - 3 раза) и красный бордер. Причем РУ5Г быстрее сваливается, буквально может после подсчета CRC, т.е. сразу в первом же цикле.

ivagor
26.01.2021, 12:05
Печально, значит все же не только ошибки записи (для которых я уже придумал теорию), но и чтения, для которых идей пока нет.

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

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

Mick
26.01.2021, 14:29
Я вот думаю, что править запись лучше после исправления чтения, а то нормальная проверка будет невозможна.
Логично.

Только я вот все же думаю надо понять какие сигналы в медленном и быстром процах отличаются и на сколько. По сути тут и зарыта собака.
И как эта зависимость отличается при возрастании частоты.
Если допустим при 3МГц медленный проц - король, а быстрый проц - нищеброд, то на 4 МГц все наоборот. И только 3,5МГц их относительно уравнивают. Так как синхрогенератор во всех случаях один и тот же, а меняется только длительность сигналов, то стоит искать несостыковки в процах.
К тому же такая схемотехника включения ВМ80 похоже впервые решили использовать и не факт, что она будет работать к примеру на 2,5МГц.

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

Подумал немного. При чтении у нас от проца задействованы сигналы SYNC и DBIN.
То есть для начала можно в этом тесте посмотреть сигналы чтения из памяти и относительно их посмотреть времена.
Еще мы же сдвинули тактовые и сделали их относительно сигнала CAS/, но вот смену адресов, которая работает по RAS мы не смотрели.

ivagor
26.01.2021, 15:07
Сигналы у медленных чуть запаздывают относительно быстрых. Какой-то сигнал замерял, было 10 или 20 нс разницы.

смену адресов, которая работает по RAS мы не смотрели.
Ты же записывал и выкладывал логи с шиной MA озушек.

Mick
26.01.2021, 15:17
Сигналы у медленных чуть запаздывают относительно быстрых. Какой-то сигнал замерял, было 10 или 20 нс разницы.

Частота дискретизации анализатора 100МГц и сигналы условно менее 10нс будут считай равны 10нс. Нам похоже нужно сравнивать те которые отличаются более 10нс. По сути их два SYNC и DBIN.


Ты же записывал и выкладывал логи с шиной MA озушек.

Я имел ввиду не RAS/, а RAS который идет на мультиплексоры.

ivagor
26.01.2021, 15:23
Нам похоже нужно сравнивать те которые отличаются более 10нс. По сути их два SYNC и DBIN.
Речь я так понимаю пока про чтение. Шина адреса у медленных скорее всего тоже чуть запаздывает.

Я имел ввиду не RAS/, а RAS который идет на мультиплексоры.
RAS ты не записывал, зато записывал результат его работы, мультиплексированный адрес, который идет на озушки.

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

Из управляющих сигналов при чтении еще можно вспомнить READY, он наверняка тоже чуть запаздывает у медленных, т.к. формируется на основе адреса, слова состояния и DBIN.

Mick
26.01.2021, 15:35
Из управляющих сигналов при чтении еще можно вспомнить READY, он наверняка тоже чуть запаздывает у медленных, т.к. формируется на основе адреса, слова состояния и DBIN.

Я думаю в текущем тесте надо померить управляющие сигналы.

В предыдущих тестах для интереса посмотрел сигнал SYNC относительно CAS/, начало и конец.
У быстрых 50нс - SYNC - 50нс, либо варианты 60нс - 50нс, 50нс - 60нс
У медленных 60нс - 60нс
Я конечно не смотрел досконально, но получается разница тут в 10нс либо спереди, либо сзади, либо с обоих сторон.
Если учесть погрешность анализатора, то длительность у быстрых 40нс (50нс), в зависимости от случая, у медленных 50нс.

ivagor
26.01.2021, 16:10
Не вполне понял твои замеры, у меня для пары замеров в медленном и быстром получилось (относительно переднего фронта CAS/)
Медленный: передний фронт SYNC +70 или +60; задний фронт SYNC +400
Быстрый: передний фронт SYNC +50; задний фронт SYNC +380

Mick
26.01.2021, 16:21
Не вполне понял твои замеры, у меня для пары замеров в медленном и быстром получилось

Я от двух CAS/ считал.
Но даже исходя из твоих замеров - разница по сути 10-20нс, что по сути минимальна

ivagor
27.01.2021, 07:01
Есть не очень красивый, но сравнительно простой и скорее всего действенный вариант лечения быстрых процов на 3 МГц. Надо задержать тактовые сигналы проца на 20 нс. RC цепочки не стоит, лучше (на каждый канал) или пару НЕ быстрой серии последовательно или, если медленной серии, то ИЛИ или XOR (тогда на второй вход землю). Судя по схеме лучше добавлять после (или прямо перед, после развилок на D43.2 и D12.4) D35.4 и D35.5, чтобы задеть только тактовые проца и не трогать сигналы идущие на память. SC/ и сигнал на входы L D42 "задержатся сами", т.к. задержится SYNC. Но это явно локальное решение, и для других частот и процов его придется убрать.

Mick
27.01.2021, 11:44
Есть не очень красивый, но сравнительно простой и скорее всего действенный вариант лечения быстрых процов на 3 МГц. Надо задержать тактовые сигналы проца на 20 нс.

Для последнего теста действительно действенные.
Сначала я сигналы F1TTL выход 8 DD35.4 и F2TTL выход 10 DD35.5 пропустил через элементы ЛЛ1 (DD47.3 и DD47.4 соответственно).

Проверил на медленном проце - работает и на двух быстрых Родон 9005 и P8080A-1 - работали где то час на двоих без сбоев.
Затем решил поглядеть на быстром проце, когда начинает сваливаться. Вернул сначала F1 - появились косяки и красный бордер.
Затем попробовал F2 вернуть, при новом F1. Работает без сбоев. Оставил поработать - полчаса пока зеленый бордер.

Таким образом пока есть зависимость от задержки F1

P.S. DD35 - 555ЛН1 и DD47 - 555ЛЛ1

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

P.S.S. Забыл сказать, нашел КР565РУ5Д, как приедут - попробуем еще с ними проверить.

rw6hrm
27.01.2021, 11:52
...когда делал замену ГФ24 по схеме из "Альтаира" ( http://rw6hrm.qrz.ru/8080.htm ), то в родном мануале указана была необходимость небольшой задержки между окончанием Ф1 и началом Ф2. Это не из этой оперы?

zx_
27.01.2021, 11:56
защита от сквозного тока у ключей

Mick
27.01.2021, 12:01
Это не из этой оперы?

По моему не совсем. Здесь F1 наоборот получается сближаешь с F2, если только F1 задерживаешь. Либо задержка не увеличивается вовсе, если задерживаешь F1 и F2. Тут скорее задержка влияет на формирование основных сигналов процессора и их следование относительно сигналов синхрогенератора, отвечающие за работу с памятью.

ivagor
27.01.2021, 12:02
Для последнего теста действительно действенные.
Другим тестам тоже должно помочь.

HardWareMan
27.01.2021, 12:50
F1 рекомендуют чуток раньше F2 из-за того, что по F1 работает внешняя шина. Т.е. захват сигналов буфером и накачка внутренней шины. она должна захватить данные на ШД до начала работы остальной схемы. Но по датащиту допускается нулевая задержка.

Mick
27.01.2021, 18:56
Другим тестам тоже должно помочь

После двухчасового прогона зеленого бордера, записал мультиколорный тест.
Он тоже без сбоев

https://i.ibb.co/52qYSfF/IMG-20210127-160241.jpg (https://ibb.co/52qYSfF)

Что же, невероятно, но иногда все решает один элемент ЛЛ1 :)

Ну что, на 3МГц считаем заработало в первом приближении, теперь проверять сие безобразие на 4МГц и на 3,5МГц.

P.S. Все сегодняшние опыты произведены с памятью КР565РУ5Г

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

Внезапно исчезла кнопка редактирования первого поста, посему тогда ссылка тут будет на текущую схему - https://yadi.sk/d/NAzgMEjgyOp94A

ivagor
27.01.2021, 19:14
Поздравляю с решением "проблемы быстрых процов на 3 МГц"! Если на 3.5 и 4 процы (по крайней мере быстрые) заработают, то рекомендую сфоткать результат работы speed test, т.к. есть подозрение. что быстрые (на 4) с задержкой F1 могут превратиться в медленные.
В принципе если бы знать заранее, то стоило бы предусмотреть подключение платки формирователя/модификатора тактовых сигналов, потому что
1) На 3 МГц быстрые надо тормозить.
2) Скорее всего на 3.75 и 4 медленные надо "разгонять". Это можно сделать разными способами, например сдвинуть тактовые сигналы на 1/4 такта проца влево, но потом задержать на часть этой четверти такта.
То, что в визарде pll делается заданием фазы, в железке приходится эмулировать такими не очень удобными и красивыми способами.

Mick
27.01.2021, 19:20
то рекомендую сфоткать результат работы speed test, т.к. есть подозрение. что быстрые (на 4) с задержкой F1 могут превратиться в медленные.

Будем завтра смотреть.
Если быстрые станут внезапно медленными на 4МГц, значит введение джамперов(перемычек) должно спасти нас от очередного мозговыверта.
У нас же еще в сторонке топчется ВМ85А, ждет своей очереди :)

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


То, что в визарде pll делается заданием фазы, в железке приходтся эмулировать такими дедовскими мерами.

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

ivagor
28.01.2021, 08:02
Задержка F1 и F2 на 4 МГц наверняка переведет быстрые процы в разряд медленных, а медленные возможно перестанут работать (но это не точно). Но не все так плохо, скорее всего можно превратить медленные (на 4 МГц) процы в быстрые без дополнительных корпусов, хотя потребуется резня.
1) При формировании F1TTL можно обойти D10.2 и D35.4, TI/ и CAS/ в этом случае надо подать сразу на D47.3.
Уточню, что на D10.2 конечно тоже надо оставить TI/ и CAS/ для формирования L для D42.
2) При формировании F2TTL можно обойти D35.5 и D47.4, нужный сигнал H0 есть рядом на входе D35.2.
Превращение медленных на 4 МГц в быстрые при этом вполне возможно, надеюсь и быстрые продолжат работать. Ну и если все хорошо, то можно попробовать какой-нибудь ранее неработоспособный на 4, вдруг произойдет чудо. Хотя это уже маловероятно, для таких процов более реален рубеж 3.75.

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

Для F2TTL описанных мер для медленных процов на 4 МГц скорее всего будет достаточно, а F1TTL при необходимости можно еще немного сдвинуть влево, но тут понадобиться дополнительный корпус.
F1TTL=NOT(RAS/ AND TI), т.е. можно использовать 1533ЛА3 или даже 1531ЛА3. Просто ИЛИ в быстрых сериях проблематично найти, а ЛА3 или западный аналог попроще.

Mick
28.01.2021, 09:59
сфоткать результат работы speed test,

Вот тут забавность возникла.
Запаял кварц на 16МГц,
Мультиколорный тест на быстром проце работает без сбоев.
Поставил Квантор 9008, он сваливается где то в районе A9...F6 прохода (Start byte). Раньше в даун входил сразу или вообще не запускался.
То есть медленные процы стали лучше себя чувствовать, но надо на других проверить.

Зашил speed test. Что на Родоне 9005, что на Кванторе 9008 - пишет везде 0000

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

Откатился до 3МГц клоков - speed test тоже 0000 показывает. Похоже что то пошло не так :(

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

Прошил test 5, который частоту проца показывает.

На 3МГц пишет CPU Frequency 0.01MHZ

Осцил показывает 3МГц.

ivagor
28.01.2021, 10:33
С прерываниями все нормально, часы в test 5 идут?

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

Хотя без прерываний test 5 завис бы при старте, т.е. они есть. Возможно тут обратная проблема, запрос прерывания висит дольше чем нужно.

Mick
28.01.2021, 11:02
Для F2TTL описанных мер для медленных процов на 4 МГц скорее всего будет достаточно,

Я тут для эксперимента F2TTL сделал в обход D35.5. Подал H0 непосредственно на новый буфер ЛЛ1. И забавно уже 5 проход мультиколорного теста Квантор 9008 на 4МГц проходит без красного бордера.
То есть медленные процы могут внезапно заработать и на 4МГЦ.

Но нужно все таки тест скорости, чтобы заценить их возможности.

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


С прерываниями все нормально,

Да, соплю повесил. Прерывания не шли, а таймер в 5 шел.

Ну и тест скорости показал все таки нестабильную работу медленного проца на 4МГц
Когда ему удалось добраться до конца то цифры такие

DadPchl - 137B
RstRet - 0CFD

Быстрый показал

DadPchl - 137A
RstRet - 0CFD

Картинки если нужно скину вечером

P.S. F2TTL сейчас такая как вчера, тое сть вернул цепь DD35.5 - ЛЛ1

ivagor
28.01.2021, 11:08
DadPchl - 137B
RstRet - 0CFD

Быстрый показал

DadPchl - 137A
RstRet - 0CFD
Эти цифры соответствуют "быстрому" варианту, т.е. медленный проц действительно "разогнался". Для стабильности можно попробовать F1TTL сдвинуть еще влево.

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


P.S. F2TTL сейчас такая как вчера, тое сть вернул цепь DD35.5 - ЛЛ1
Если двигать тактовые, то оба. Потом конечно можно пробовать один возвращать, но сначала лучше выяснить, как работает при сдвиге двух тактовых.

Mick
28.01.2021, 11:42
Если двигать тактовые, то оба. Потом конечно можно пробовать один возвращать, но сначала лучше выяснить, как работает при сдвиге двух тактовых.

Скажем так при сдвинутом F2TTL - медленный проц вообще тест скорости не проходит. С обычным F2TTL - через раз.

Ну а так проверю и оба сдвинуть.

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

Сдвинул оба сигнала F1TTL и F2TTL, проверял на 4МГц медленный проц:
- тест скорости не проходит.
- вернул назад F2TTL - вообще не запускается
- вернул назад F1TTL, сдвинул F2TTL - тест не проходит
- вернул назад F1TTL и F2TTL - тест проходит через раз.

Быстрый я не пробовал, так как он и так работает без сдвигов.

ivagor
28.01.2021, 12:08
Насколько помню было три условные градации процов (поправь если путаю)
1. Быстрые, которые быстро работали на 4 МГц
2.1. Медленные, которые на 4 МГц работали медленнее быстрых
2.2. Медленные, которые не работали нормально на 4 МГц, а некоторые вроде совсем не запускались

У меня большая степень уверенности, что 2.1 можно сдвигом тактовых влево превратить в 1, только надо определиться с величиной сдвига.
И, к сожалению, тоже большая степень уверенности, что 2.2 сдвигом тактовых в 1 не превратить.

Сейчас я не понял, какой медленный проц ты тестируешь, из группы 2.1 или 2.2.

Mick
28.01.2021, 12:53
Сейчас я не понял, какой медленный проц ты тестируешь, из группы 2.1 или 2.2.

Из 2.2, до этого Квантор 9008 в лучшем случае на 3,75 запускался. На 4 вообще никак. Сейчас кое как даже начал, но не стабильно.

ivagor
28.01.2021, 13:06
Надеюсь ты все же попробуешь и из 2.1. Например ты фоткал результат speed test одного из родонов, он был медленный и если он заработает как быстрый, то это довольно круто, получится, что советские ВМ80 тоже могли работать на 4 с минимальными тормозами.

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

А насчет процов 2.2. есть еще "суперсдвиг F1TTL влево" с использованием 1531ЛА3, возможно и для F2TTL можно придумать покруче, но лучше сначала разобраться с 2.1

Mick
28.01.2021, 13:07
Надеюсь ты все же попробуешь и из 2.1. Например ты фоткал результат speed test одного из родонов, он был медленный и если он заработает как быстрый, то это довольно круто, получится, что советские ВМ80 тоже могли работать на 4 с минимальными тормозами.

Это Родоны до 8910 выпуска. Теперь уж в понедельник их принесу и попробую.
Заодно и память РУ5Д подойдет.

ivagor
28.01.2021, 14:15
Это Родоны до 8910 выпуска
Тут (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1091153&viewfull=1#post1091153) вижу, что на 4 медленно работали родоны 90 года. Еще припоминаю, что один из родонов 89 вроде так заработал (наверно как раз 8910), а родоны раньше 8910 разве хоть как-то работали на 4 МГц?
Чтобы двигать тактовые более осмысленно и целенаправленно желательно привлечь анализатор. Если у тебя dslogic plus, то он может 4 канала оцифровать с частотой 400 МГц. Стоит этим воспользоваться и уточнить задержки для трех групп (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1101645&viewfull=1#post1101645) процов. Думаю можно ограничиться сигналами: TI/ (или TI), SYNC, DBIN и WR/. В результате можно будет уточнить задержки, пусть в данном случае не относительно клоков, но это даже не так важно, главное посмотреть разницу в задержках между группами процов. Может окажется, что групп 2.1 и 2.2 и нет, в том смысле, что у них задержки одинаковые.

Mick
28.01.2021, 14:58
Тут вижу, что на 4 медленно работали родоны 90 года.

Ну этот тест да, а потом когда пришли новые процы, я проверял на мультиколоре.
Все Родоны после 8910 работали на 4МГц, а кто ранее уж как повезет, кто медленный, кто полубыстрый. Имеется ввиду чем дальше от 8910 тем медленнее. Хотя тот, у которого надпись СДЕЛАНО В СССР ближе к быстрым, чем к медленным.

Mick
28.01.2021, 19:24
Фото speed test на 4МГц

Квантор 9008 - не стабильно, но когда проходит показывает эти данные

https://i.ibb.co/b1BkBL4/IMG-20210128-105615.jpg (https://ibb.co/b1BkBL4)


Родон 9005 - работает всегда :)

https://i.ibb.co/JqWgDFy/IMG-20210128-105748.jpg (https://ibb.co/JqWgDFy)

ivagor
28.01.2021, 20:12
Так понимаю, что фотки со сдвигом тактовых влево. Все же здорово, что родон 90 года заработал быстро в zx8080, и у ВМ80 советского выпуска были резервы.

Насчет анализатора для оценки задержек. После некоторых размышлений пришел к выводу, что лучше захватывать с клоками, чтобы получить стандартные параметры tDC (от F2 до SYNC или от F1 до WR/) и tDF (от F2 до DBIN) и тут возможны два варианта:
1. 4 канала 400 МГц. TI/, F2, SYNC, DBIN
2. 8 каналов 200 МГц. TI/, F1, F2, SYNC, DBIN, WR/, может еще что-то, например READY
Это конечно не обязательно, но получив эти значения думаю можно будет более осмысленно сдвигать (или не сдвигать) тактовые сигналы, зная на сколько и в какую сторону.

Mick
28.01.2021, 20:52
Так понимаю, что фотки со сдвигом тактовых влево.
Сейчас оба сигнала работают через доп элементы ЛЛ1. Схема вариант 5 (последний)

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


но получив эти значения думаю можно будет более осмысленно сдвигать (или не сдвигать) тактовые сигналы

Я для интереса пропустил F1TTL еще через один свободный буфер -> D35->ЛЛ1->ЛИ1
И все, медленный проц встал.
Пропускал и F2TTL, медленный проц нестабилен.

Так что скорее всего для медленных процов это уже предел. На 3,75МГц наверное они будут работать стабильнее, но это надо проверять.

ivagor
28.01.2021, 21:02
Сейчас оба сигнала работают через доп элементы ЛЛ1. Схема вариант 5 (последний)
Т.е. это сдвиг вправо? Интересно, но (мне) непонятно для родона 90 на 4 МГц.

Mick
28.01.2021, 22:00
Интересно, но (мне) непонятно для родона 90 на 4 МГц.

Да похоже для быстрых процов пофиг какая схема на 4МГц, а вот на 3МГц только последняя.

ivagor
29.01.2021, 07:14
Так родон 90 был медленный (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1091153&viewfull=1#post1091153), а со сдвигом вправо стал быстрым (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1101683&viewfull=1#post1101683). В моей картине мира твои amd и intel с наименьшей задержкой, родоны >8910 с задержкой побольше, у остальных наших ВМ80 задержка еще больше. Как сюда укладывается поведение родона 90 на 4 МГц мне пока непонятно.

Mick
29.01.2021, 08:37
Так родон 90 был медленный, а со сдвигом вправо стал быстрым.

По всей вероятности да, я уже путать стал - ну да Родоны 90 на 4МГц работали, а другие нет.

Mick
30.01.2021, 12:45
Пополнение для опытов прибыло.

https://i.ibb.co/FnrGfLd/IMG-20210130-122608.jpg (https://ibb.co/FnrGfLd)

https://i.ibb.co/7kXWg7N/IMG-20210130-122559.jpg (https://ibb.co/7kXWg7N)

Знал бы заранее, что такой ВМ80 необычный, поставил бы ZIF панельку.

Итак, что нам осталось выяснить в плане работоспособности процессора.

- снять анализатором на 4МГц системные сигналы быстрых Родонов и не быстрых Кванторов. В принципе для сравнения можно снять и иностранца P8080A
- понизить клоки до 3,75МГц и поглядеть, будут ли медленные на ней работать
- понизить до требуемой 3,5МГц и если все пучком, проверить порты и окультурить комп (убрать лишние панельки, порезать и кинуть проводники)

По поводу разгона выше 4МГц, это уже либо на новом клоне Ориона, либо на девборде специально для ВМ80.
Но одно уже понятно, что клон Ориона на ВМ80 можно сделать на 4МГц либо с подбором наших процов, либо на импорте.

P.S. Хорошо что ВМ85 не так много заводов выпускало у нас :)

ivagor
30.01.2021, 13:28
Пожалуй есть небольшая путаница насчет "быстрый" и "медленный". Если говрить про 4 МГц, то быстрые - которое работали быстрее, медленные - соответственно медленнее (с большим числом тактов ожидания). Но была еще и третья группа - процы, которые совсем не работали на 4 МГц, и нередко я и ты третью группу тоже называли медленными, особенно когда речь шла о <4 МГц. Чтобы было меньше путаницы желательно уточнить терминологию, например 1й (amd, intel); 2й (родоны >=8910); 3й (остальные советские) сорт. Или высший, 1й и 2й. Или еще как-то, но все же лучше выделять 3 группы, а не 2. Возможно родоны 91 или 92 попадут в одну группу с amd и intel, кто знает.


- снять анализатором на 4МГц системные сигналы быстрых Родонов и не быстрых Кванторов. В принципе для сравнения можно снять и иностранца P8080A
Хорошо бы снять как минимум amd, intel, родон 90, родон 92 и парочку других советских постарше

- понизить клоки до 3,75МГц и поглядеть, будут ли медленные на ней работать
Вот как раз тут возникает путаница с терминологией. Интересно, будут ли работать на 3.75 "самые медленные", которые не работали на 4, а то "просто медленные" работают на 4, значит и на 3.75 должны работать.

У меня еще отдельный вопрос/просьба. В самом начале желательно проверить, возможно все же ты просмотрел, и родон 90 стал быстрым со сдвигом влево, а не вправо. Т.е. может все же путь тактовых в этом тесте был без D10.2, D35.4, D35.5, а то у меня в голове это не укладывается.

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

Насчет РУ5Д интересно. Кстати, РУ5Г у тебя какого года?

Mick
30.01.2021, 14:14
Кстати, РУ5Г у тебя какого года?

РУ5Г - две точки 9106


Чтобы было меньше путаницы желательно уточнить терминологию, например 1й (amd, intel); 2й (родоны >=8910); 3й (остальные советские) сорт. Или высший, 1й и 2й. Или еще как-то, но все же лучше выделять 3 группы, а не 2. Возможно родоны 91 или 92 попадут в одну группу с amd и intel, кто знает.

Скажем так на 3МГц что Родоны 90...93, что интелы и amd - не работали, до введения схемы номер 5 (последняя).
А медленные, которые на 4 МГц не работали, куда относятся все, кроме Днепр 92 и Родоны с 8910, на 3Мгц работали. Это была схема номер 4 (предыдущая)

Сейчас как ты говоришь Родоны с схемой номер 5 стали близки к интелу и amd. Медленные 3 сорт стали хоть как то дрыгаться на 4МГц, но не стабильно.

Так что тогда пусть будет.

1. Супербыстрые - интел и амд, как правило мы о них особо и не ведем речь
2. Быстрые - Родоны начиная с 8910 и Днепр 9205
3. Медленные - все остальные.

Но не факт, что на 3МГц при новой схеме (5 редакция) все станут либо быстрыми, либо медленными.
Надо тест по сути заново проводить на трех частотах и смотреть как изменилась ситуация с этой схемой. По сути надо отобрать несколько экземпляров процов и делать на основе их тестов выводы.

ivagor
30.01.2021, 14:28
Когда работает стабильно, но с дополнительными тактами ожидания, и есть другие процы, которые работают с меньшим числом тактов ожидания, значит первые с большой степенью уверенности можно привести ко вторым сдвигом тактовых сигналов. Т.е. это "превращение" быстрых в супербыстрые на 4 МГц.
Если процы работали на большей частоте и перестали работать на меньшей (и есть другие процы, которые работают на меньшей), значит их тоже можно вылечить регулировкой фазы тактовых. Но эта регулировка действительно может привести к появлению лишних тактов ожидания у других процов, т.ч. желательно проверять.
А если совсем не работают или работают нестабильно на высокой частоте, как медленные на 4 МГц, то тут не факт, что сдвиг тактовых поможет на 100%.

Mick
30.01.2021, 16:51
А если совсем не работают или работают нестабильно на высокой частоте, как медленные на 4 МГц, то тут не факт, что сдвиг тактовых поможет на 100%.

Вот именно, по сути Квантору не сильно помогают сдвиги на 4МГц. Да, безусловно он по сравнению со схемой 4 стал работать, хоть и нестабильно. Но вот дальнейшая игра со сдвигами уже не влияют на его лучшую работоспособность.
Чисто теоретически проверить его, да и вообще комп с медленной памятью РУ5Д.

То есть на 4МГц идет речь уже больше превращение быстрых в супербыстрые.

ivagor
30.01.2021, 17:08
комп с медленной памятью РУ5Д
Вот еще интересный момент. Определенно не все РУ5Г одинаково полезны. Твои судя по работе и анализатору скорее на уровне РУ5Б, а РУ5Г другого завода и другого года может быть сильно хуже. Поэтому интересно было бы сравнить tCAC (время от CAS/ до появления данных из озу) твоих РУ5Г и РУ5Д. Для этого нужны как минимум CAS/, CSRAM/ и шина данных. В идеале ШД на выходах РУ5, но если не гнаться за правильными абсолютными цифрами, то можно там же, где ты записывал, после (если говорить про чтение) ИР22.

Mick
31.01.2021, 14:30
Твои судя по работе и анализатору скорее на уровне РУ5Б, а РУ5Г другого завода и другого года может быть сильно хуже.

Ну подбирать я их не буду. Есть вроде с полноценной надписью КР565РУ5Г, завтра и их попробую.

Также отобрал несколько процессоров для "финальных" проверок. Поскольку я полагаю что схема номер 5 удовлетворяет критерию и волки сыты и овцы целы. То есть все процессоры как минимум работают на 3 МГц и на 4МГц быстрые показывают результаты супербыстрых.

Короче вот те кто будут в испытаниях участвовать.
Родон 9005 (быстрый)
Квантор 9008 (медленный)
P8080A-1 (супербыстрый)
P8080A (супербыстрый)
Днепр 9010 (медленный)
СДЕЛАНО В СССР 8808, предположительно Родон (быстрее медленного, но еще не быстрый)
Днепр 8903 (медленный)
Родон 8910 (быстрый)
Родон 8909 (быстрее медленного, но еще не быстрый)
Квантор 8905 (медленный)
Днепр 9205 (быстрый)

Под испытаниями будет пониматься.
Работают ли на 4МГц - speed test и каков результат. Работоспособность процессора оценивается путем прохождения теста подряд 5 раз. Результаты должны быть идентичными.
Далее по нисходящей; 3,75МГц, 3,5МГц и 3МГц

После этого делаем необходимые замеры на Родоне 9005 и Кванторе 9008 и пусть будет P8080A-1 на логическом анализаторе.

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

Mick
01.02.2021, 13:45
Проверил 565РУ5Д с Родоном 9005 и Квантором 9008. С Родоном на 4МГц работает, с Квантором 4МГц более стабилен, чем с РУ5Г, но глючит все равно.
Из 5 проверок теста - прошел только 3 раза. Родон все 5 прошел.
Результаты тестов не изменились.

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

Итак, тестирование выбранных процессоров на 4МГц с памятью КР565РУ5Д - схема вариант 5, путем прохождение speed test 5 раз. Годным признается тот, кто прошел тест 5 из 5

1. Родон 9005 - 137A - прошел
2. Родон 9201 - 137A - прошел
3. Родон 9110 - 137A - прошел
4. Родон 9008 - 137A - прошел
5. Родон 9108 - не прошел (ведет себя странно, такое ощущение, что неисправен, посмотрим его на нижних частотах)
6. Intel P8080A-1 (китаец) - 137A - прошел
7. Intel P8080A (китаец) - 137A - прошел
8. Днепр 9205 - 137A - прошел
9. Днепр 9010 - не прошел
10. Днепр 8903 - не прошел (один раз показал 137A и все)
11. Квантор 9008 - не прошел (пару раз показал 137B и все)
12. Квантор 8905 - не прошел (один раз показал 137A и все)
13. СДЕЛАНО В СССР 8808 - не прошел

Таким образом ситуация особо не изменилась. Те кто работал на 4МГЦ они и работают, результаты улучшились и они по сути теперь все супербыстрые
Те кто не работал, те и не работают, оговорюсь - стабильно. Видно, что они выполняют тест, некоторые один, два раза проходят.
Единственный Родон 9109 (вчерашний новичок) который может быть просто неисправным.

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

Тестирование выбранных процессоров на 3,75МГц с памятью КР565РУ5Д - схема вариант 5, путем прохождение speed test 5 раз. Годным признается тот, кто прошел тест 5 из 5. На сей раз процессоров меньше, все кто не прошел 4МГц и часть 4МГцовых

1. Родон 9005 - 1242 - прошел
2. Родон 9108 - 1242 - прошел (значит рабочий)
3. Intel P8080A (китаец) - 1242 - прошел
4. Днепр 9205 - 1242 - прошел
5. Днепр 9010 - не прошел (один раз показал 1242 и все)
6. Днепр 8903 - 1242 - прошел
7. Родон 8910 - 1242 - прошел
8. Родон 8909 - не прошел (один раз показал 1242 и все)
9. Квантор 9008 - 1243 - прошел
10. Квантор 8905 - 1242 - прошел
11. СДЕЛАНО В СССР 8808 - не прошел (один раз показал 1242 и все)

Как видно, те кто работал на 4МГц, тот работает на 3,75МГц, а те, кто не работал в большинстве своем заработали.
Один только Родон 9108 не понятно, вроде по идее должен на 4МГц работать, а не хочет. Возможно это просто партия такая "косячная"
Следующий тест будет на 3,5МГц, чисто для проверки неработающих на 3,75МГц.

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

Тестирование выбранных процессоров на 3,5МГц с памятью КР565РУ5Д - схема вариант 5, путем прохождение speed test 5 раз. Годным признается тот, кто прошел тест 5 из 5. На сей раз процессоров меньше, все кто не прошел 3,75МГц и часть 4МГцовых

1. Родон 9005 - 110A - прошел
2. Intel P8080A (китаец) - 110A - прошел
3. Днепр 9205 - 110A - прошел
4. Днепр 9010 - 110A - прошел
5. Родон 8909 - 110A - прошел
6. Квантор 9008 - 110A - прошел
7. СДЕЛАНО В СССР 8808 - 110A - прошел

Таким образом на частоте 3,5МГц работают практически все процессоры в данной конкретной схемотехнике.
Остается проверить те же процы на частоте 3МГц с целью выяснения будут ли 4МГцовые работать на более низкой частоте. Напомню, что Родон 9005 и ему подобные не работали на чатоте 3МГц при варианте схемы 4.

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

Тестирование выбранных процессоров на 3,0МГц с памятью КР565РУ5Д - схема вариант 5, путем прохождение speed test 5 раз. Годным признается тот, кто прошел тест 5 из 5. Проверялись в первую очередь те процы, что работают на 4МГц

1. Родон 9005 - 0E9x - прошел
2. Intel P8080A (китаец) - 0E9x - прошел
3. Днепр 9205 - 0E9x - прошел
4. Днепр 9010 - 0E9x - прошел
5. Родон 8909 - 0E9x - прошел
6. Квантор 9008 - 0E9x - прошел
7. СДЕЛАНО В СССР 8808 - 0E9x - прошел

Примечание: 0E9x - последний символ не влезает (уменьшенная частота тактового генератора)

Таким, образом все процессоры работают на 3МГц. А если обобщить, то в новом варианте схемы процессоры имеют практически одинаковые результаты, что радует. Посему исследования в этой части предварительно считаются завершенными. К сожалению не обошлось без торможения, но и то визуально видны отличия скорости процессора на 3МГц и 4МГц, это я говорю тем кто, говорил, что выигрыш если поднять частоту ВМ80 в Орионе (гипотетический клон) небольшой. На 4 МГц спектрумовский экран гораздо быстрее обновляется, я думаю и орионовский тоже будет веселее обновляться.

Mick
01.02.2021, 19:20
Скриншоты результатов тестирования:

4МГц

https://i.ibb.co/RYRhFLz/IMG-20210128-105748.jpg (https://ibb.co/RYRhFLz)

3,75МГц

https://i.ibb.co/2Pkxphc/IMG-20210201-113752.jpg (https://ibb.co/2Pkxphc)

3,5МГц

https://i.ibb.co/N1njXRM/IMG-20210201-125403.jpg (https://ibb.co/N1njXRM)

3,0МГц

https://i.ibb.co/ky6gVBQ/IMG-20210201-132254.jpg (https://ibb.co/ky6gVBQ)

Mick
02.02.2021, 11:13
Насчет анализатора для оценки задержек. После некоторых размышлений пришел к выводу, что лучше захватывать с клоками, чтобы получить стандартные параметры tDC (от F2 до SYNC или от F1 до WR/) и tDF (от F2 до DBIN) и тут возможны два варианта:
1. 4 канала 400 МГц. TI/, F2, SYNC, DBIN
2. 8 каналов 200 МГц. TI/, F1, F2, SYNC, DBIN, WR/, может еще что-то, например READY

К сожалению не получится. У меня DSLogic U2Basic, у него максимум 100МГц.
Чтобы получить про версию его надо дорабатывать.

ivagor
02.02.2021, 12:22
Прочитал про переделку U2Basic->Plus, интересно китайцы обеспечивают позиционирование разных моделей.
С точностью 100МГц/10 нс тоже был бы смысл, тем более логов на 4 МГц ты еще не записывал. Зато с 16 каналами можно убить двух зайцев - и задержки разных процов (супербыстрого, быстрого и медленного, не работающего стабильно на 4 МГц) сравнить и tCAC РУ5Д увидеть. Сигналы скорее всего такие: TI/, F1, F2, SYNC, DBIN, WR/, READY, CSRAM/, D0-D7.

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


F1, F2
Тут реально самое близкое - это инверсные F1TTL и F2TTL, но это не проблема.

Mick
02.02.2021, 12:26
С точностью 100МГц/10 нс тоже был бы смысл, тем более логов на 4 МГц ты еще не записывал.

Это мы можем сделать.

Mick
02.02.2021, 19:04
Зато с 16 каналами можно убить двух зайцев - и задержки разных процов (супербыстрого, быстрого и медленного, не работающего стабильно на 4 МГц) сравнить и tCAC РУ5Д увидеть. Сигналы скорее всего такие: TI/, F1, F2, SYNC, DBIN, WR/, READY, CSRAM/, D0-D7.


Вот снял диаграммы на 4МГц с РУ5Д при работе test speed

Интел - супербыстрый
Родон 9005 - быстрый
Квантор 9008 - медленный, не работающего стабильно на 4 МГц
Днепр 9205 - быстрый но с подвохом. Оказывается на него влияют щупы анализатора и в тесте сваливается. Стоит убрать щупы, тест проходит. (Я так полагаю ему не нравятся щупы на выводах проца SYNC, DBIN, READY и WR/)

https://yadi.sk/d/5s3UYf_z9ZBJxg

ivagor
02.02.2021, 21:07
Интересные логи, надо их будет еще поизучать.

От фронта F1TTL до среза F2TTL (т.е. от среза F1 до фронта F2) 30 ns, неслабо так.

От среза F2TTL до фронта SYNС
Intel - 50 ns
Rodon9005 - 60 ns
Dnepr9205 - 60 ns
Kvantor9008 - 70 ns

От среза F2TTL до стабильных данных на ШД 50-60, изредка 70 ns. Задержка на D35.5 и D47.4 (т.е. от CAS/ до F2TTL) +30-40ns, в итоге tCAC РУ5Д 80-100 (изредка 110) ns, но если это после ИР22, то нужно еще отнять его задержку. По tCAC эти РУ5Д быстрее своих паспортных характеристик, между РУ5В и РУ5Г, ближе к РУ5В. Но, конечно, по одному (пусть и очень важному) параметру не надо делать слишком далеко идущие выводы.

Mick
03.02.2021, 09:28
От фронта F1TTL до среза F2TTL (т.е. от среза F1 до фронта F2) 30 ns, неслабо так.

Если учесть, что частота дискретизации 10нс, то можно считать 20нс


От среза F2TTL до фронта SYNС
Intel - 50 ns
Rodon9005 - 60 ns
Dnepr9205 - 60 ns
Kvantor9008 - 70 ns

То есть разница от супербыстрого и быстрого в пределах 10нс, а вот медленные уже отстают на 20нс.
Вроде и не много, а поведение сразу меняется.

Если к выходным придет посылка от китайцев с двумя керамическими D8080A. Их надо проверить на 4МГц, как они работают.
Кстати нашел польские аналоги MCY7880, как прибудут, тоже хочется узнать к кому они ближе.

ivagor
03.02.2021, 10:35
Если учесть, что частота дискретизации 10нс, то можно считать 20нс
Формально скорее от 21 до 39 нс

Немного дополню.
В предыдущем своем посте не написал обозначение, от среза F2TTL до фронта SYNС это tDC.

От среза F2TTL до фронта DBIN (tDF)
Intel - 60 ns
Rodon9005 - 70 ns
Dnepr9205 - 80 ns
Kvantor9008 - 80 ns

От среза F1TTL до среза WR/ (тоже tDC)
Intel - 40-50 ns
Rodon9005 - 50-60 ns
Dnepr9205 - 50-60 ns
Kvantor9008 - 60 ns

Немного капитанства не относящегося к логам.
Если бы в пределах досягаемости не было ИЛИ (которые только в 155 и 555), то можно было бы заменить D47.1 на ИЛИ-НЕ, D47.2 на И-НЕ. При этом еще второй вход D47.2 надо менять с H1/ на H1.

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


От фронта F1TTL до среза F2TTL (т.е. от среза F1 до фронта F2) 30 ns
Посмотрел более тщательно, оказалось, что там идет зонами, зона 20 ns, потом 30 ns, потом 20, потом 30 и т.д.
Т.е. скорее этот интервал (tD1 по amdшному даташиту) от 20 до 30 ns.

Mick
03.02.2021, 11:28
Поискал информацию по польскому клону i8080 - MCY7880.
Хм, оказывается у него максимальная частота 3,0 МГЦ - http://www.datasheetcatalog.net/ru/datasheets_pdf/M/C/Y/7/MCY7880.shtml

Интересно, это копия интеловского процесора или нашего. Если нашего, то у нас вроде не было 3 МГЦ процессоров.
И у поляков выпускался еще MCY6880 у которого температурный диапазон шире, похоже керамика - видимо для военных.

ivagor
03.02.2021, 12:07
оказывается у него максимальная частота 3,0 МГЦ
Это воодушевляюще, с другой стороны в таблице минимальная длительность такта 480 нс=2.08 МГц. Сложно по такому противречивому даташиту строить прогноз, но у тебя будет возможность узнать на практике.

Mick
03.02.2021, 13:07
но у тебя будет возможность узнать на практике.
Будем надеется что процы пришлют.
Кстати забыл, у китайцев еще заказал INS8080A. Как придут и их проверим на рабочую частоту.

А пока в принципе можно сделать вывод, что отечественные процессоры разгоняются до 4МГц, в основном это процессоры производства Родон (когда у них треугольничек на корпусе появился) и Днепры (после 92 года). К сожалению Кванторов 93 годов у меня нет, чтобы проверить. На 3,75МГц начинают работать большинство наших процессоров, а уже на 3,5МГц работают практически все.
При этом не стоит забывать, что это справедливо для данной схемотехники. Если бы схема была построена по классическому варианту, когда процессор мог обращаться к памяти когда ему захочется, т.е. без тормозов, то вероятно что процессоры показали совсем другие результаты.
Как показали исследования импортные (китайские) P8080A, которые относительно недороги, являются самыми шустрыми и тоже спокойно работают на 4МГц.

Возможно 4МГц не предел и процессоры смогут работать на более высоких частотах, но увы, на этой плате уже смысла нет проводить опыты, потому как и память может не осилить, да и синхрогенератор надо будет конкретно переделывать.

Поэтому на данный момент, останется проверить еще три процессора, которые пока не приехали: D8080A (керамика), MCY7880 (польский аналог), INS8080A
А затем, если продолжать исследования по поводу максимальной частоты, то видится некий комп-стенд с логикой на сменяемых модулях FPGA или CPLD.
Плюс такого подхода, можно увеличить входную тактовую частоту в несколько раз, чтобы поиграться сдвигами фаз клоков на более мелкие шаги.

Ну и то чего я хотел клон Ориона на ВМ80А - 3,5МГц...4МГц или на импорте 4МГц.

По данному проекту осталось только в ПЗУ что то вменяемое зашить :)

HardWareMan
03.02.2021, 13:46
А может уже взять проверенную HDL модель и заказать свой ASIC? Только 5в, но в остальном - полноценный ВМ80, с двумя тактовыми фазами и всё такое. Но зато работающий на 16МГц.

Mick
03.02.2021, 13:56
А может уже взять проверенную HDL модель и заказать свой ASIC? Только 5в, но в остальном - полноценный ВМ80, с двумя тактовыми фазами и всё такое. Но зато работающий на 16МГц.

Нескромный вопрос - и по чем это удовольствие?

HardWareMan
03.02.2021, 15:38
Нескромный вопрос - и по чем это удовольствие?
Тыц! (https://youtu.be/T1V_k61HPWo?t=1129)

Mick
03.02.2021, 19:03
Забыл провести еще один опыт - узнать как работает комп без буфера АП6. Напаял перемычки.
Тут все печально. Только импортный P8080A осилил и спокойно работал - результаты speed test на 4МГц без изменений - 137A

А вот наши кто в лес, кто по дрова. Быстрые Родон и Днепр вообще заыисали, а вот медленные типа Квантор 9008 хитрили и проходили тест вот так

https://i.ibb.co/QjD9qWb/IMG-20210203-152613.jpg (https://ibb.co/QjD9qWb)

В общем, похоже применять ВМ80А без буфера данных не рекомендуется.
Для исключения вопроса про подтяжку данных к питанию - она есть 10кОм резисторы.

Нашелся у меня в запасах один ИК80, что же рискну его здоровьем и проверю завтра. :)

Mick
04.02.2021, 08:49
Нашелся у меня в запасах один ИК80, что же рискну его здоровьем и проверю завтра.

Немного ввел в заблуждение, у меня КР580ИК80А производства Квазар 8308.
И, барабанная дробь.... - он замечательно работает на 4МГц.
Результат speed test - 137A, т.е. как и у других
Но вот греется он гораздо сильнее чем другие КР580ВМ80А и в закрытом корпусе ему либо радиатор, либо радиатор с вентилятором нужен.

ivagor
04.02.2021, 09:11
Квазар 8308.
И, барабанная дробь.... - он замечательно работает на 4МГц.
Круто, возможно сказывается то, что ВМ80 там передирали и они знали тонкости их правильного изготовления.


греется он гораздо сильнее чем другие КР580ВМ80А
Представитель техпроцесса 6 микрон (https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html?p=1088747&viewfull=1#post1088747), как я понимаю

Mick
04.02.2021, 09:42
Кстати, еще один опыт провел. Вместе с ИК80А я прихватил Кванторовский 9203, хотел посмотреть будет он работать на 4МГц в новой схеме. В прежней схеме он не работал
И результат положительный, он тоже работает на 4 МГц.
Похоже все производители после 92 года точно перешли на новый техпроцесс.
Но есть один нюанс, не знаю влияет он на что или нет. Что он, что Квантор 9008 (когда проходил тест, что случалось не часто) в позиции DadPchl пишут 137B
А все остальные - 137A

ivagor
04.02.2021, 10:08
DadPchl пишут 137B
А все остальные - 137A
Получается с этим ("медленным") квантором между прерываниями исполняется на одну пару команд больше.

ivagor
04.02.2021, 13:07
Mick, у тебя завтра будет доступ к zx8080 или только на следующей неделе?

Mick
04.02.2021, 13:36
Mick, у тебя завтра будет доступ к zx8080 или только на следующей неделе?

Вроде должен быть.

ivagor
04.02.2021, 18:18
Придумал я себе мотивацию, чтобы переделать эксолонский проигрыватель для zx8080. Сделал вариант (https://yadi.sk/d/Bas6TeJlbe1HzQ), который совсем не использует озу. Это открывает новые возможности тестирования. Можно проверить работоспособность на 4 МГц тех медленных процов, которые возможно не работали на этой частоте из-за несогласованности с озу. Можно даже попробовать самые быстрые процы (intel, amd) на частоте >4 МГц, т.к. ограничивающими факторами в zx8080 являются озу и вывод изображения, а этому тесту ни то ни другое не нужно. Сразу скажу, что ответственности за выход оборудования из строя я с себя снимаю и на опасных тестах не настаиваю.
После запуска начнет играть. После окончания небольшая пауза и снова. Варианты 3_5 и 4 конечно можно пробовать на любых частотах, просто в них соответственно на 3.5 и 4 ноты будут практически совпадать с оригинальными спековскими. На реале будет звучать чуть "благороднее" чем в emu.

Mick
05.02.2021, 08:19
Можно проверить работоспособность на 4 МГц тех медленных процов, которые возможно не работали на этой частоте из-за несогласованности с озу.

Проверил два медленных процессора Квантор 9008 и Днепр 9010
Квантор заиграл на 4МГц, а вот Днепр свалился(замолчал) спустя пару секунд.

Из предыдущих тестов напомню, что Квантор 9008 начинал работать на 3,75МГц, Днепр на 3,5МГц.