Просмотр полной версии : Корвет: Модернизация
Возможно, пока еще не решил, там ведь деталей куча и маленькая тележка
У меня руки чешутся заменить там 24 микросхемы памяти на статику, но знаний и времени маловато :(
Модератор: Тема предназначена для обсуждения вопросов модернизации компьютера Корвет и его клонов как в практическом, так и теоретическом аспектах.
TomaTLAB
06.09.2021, 21:03
заменить там 24 микросхемы памяти на статику
Сходу не выйдет, там весьма специфически запись в ГЗУ организована.
Нужно будет или организовывать цикл чтение-модификация-запись, или втулить туда 8шт. статики и сделать его 256-ти цветным, ну чтоб добро не пропадало :D
С ОЗУ и АЦЗУ, таких траблов вроде быть не должно.
TomaTLAB, а зачем 8? Разве 3 не хватит? Там же просто входы и выходы раздельно используются, но это всё равно не двухпортовка. КР589АП16 должны помочь. Впрочем, схемы перед глазами нет, могу и ошибаться.
TomaTLAB
07.09.2021, 20:55
Там же просто входы и выходы раздельно используются,
Не только. При записи используются отдельные сигналы -WE для каждого бита. На них во время строба записи подаются проинвертированные сигналы с шины данных.
А сами данные для записи идут с регистра цвета. Т.е. зафиксированный в регистре цвет записывается только в те биты для которых установлена 1 на ШД. В остальных битах сохраняются значения какие были до этого.
Можно и в отдельные плоскости писать, этим как раз регистр цвета заведует. Информационные входы всех микрух одной линейки (цветовой плоскости) соединены вместе и подключаются к тому самому рег. цвета.
Можно было бы поставить еще один регистр на входы и задавать доп. маску, но так делать не стали. И сдается мне, это, действительно, было бы уже лишнее.
TomaTLAB, тогда я выбираю 8 микрух статики и возможность замутить RAM-диск на 512кб :)
TomaTLAB
07.09.2021, 22:04
кусь...
тогда я выбираю 8 микрух статики Тогда придется нашаманить неких костылей для обеспечения обратной совместимости.
И, наверно раз уж пошла такая пьянка, все же приделать режим прямой записи, иначе запись в тот RAM-диск будет ну очень витиеватым занятием. :)
В целом у меня есть идеи поэтому поводу, они уже давно у меня в голове сидят, только надо как то их сформулировать.
LeoN65816
12.09.2021, 10:24
или втулить туда 8шт. статики
И точно также это ничего не даст, как и в случае трёх чипов статики... У них не поразрядная, а побайтовая запись...
тогда я выбираю 8 микрух статики
Тогда придется нашаманить неких костылей для обеспечения обратной совместимости.
Во-о-о-от, ты и сам это понимаешь... А что за костыли могут это исправить?
В целом у меня есть идеи поэтому поводу, они уже давно у меня в голове сидят, только надо как то их сформулировать.
Поделись, пожалуйста, соображениями. ;)
Лично моё мнение: FPGA "спасёт отца русской демократии"... ;) Сразу два зайца - наши! Во-первых, во внутренней памяти FPGA организовываем массив 3 х 8 (8 - для поразрядной записи!) модулей памяти размерностью
16Кх1 (или 4 страницы по 16К [4х16Кх1], если жирность FPGA позволяет), чтобы обеспечить совместимость по режимам записи. Во-вторых, эта же память организовывается двухпортовкой, чтобы облегчить арбитраж доступа прицика и дисплейного контроллера. И там же двухпортовкой АЦЗУ 1Кх9 для того же.
Там кроме ОЗУ желательно бы РТ2 поменять
Не то слово. Пару ПЛИСок, вроде EPM7128.
LeoN65816
12.09.2021, 10:58
Пару ПЛИСок, вроде EPM7128.
EPM7128 хороша тем, что 5-вольтовая. Хороша тем, что в 100-ногом корпусе довольно много юзерпинов. Но плоха тем, что внутренняя шина очень узкая, всего 36 (или 32?) сигнала...
TomaTLAB
14.09.2021, 17:26
И точно также это ничего не даст, как и в случае трёх чипов статики...
Ну как не даст... Ставим их так, что каждый из 8-ми корпусов статики отвечает за свой бит. Точно так же как было растаскиваем отдельные -WE.
Но получаем на выходе не три, а целых восемь цветовых плоскостей (ну или 4, если взять 4-битные чипы). Костыли понадобятся, чтобы эти доп. плоскости разрулить.
И надо бы это, наверно в отдельную тему перетянуть, чтобы не офтопить.
И надо бы это, наверно в отдельную тему перетянуть, чтобы не офтопить.
Пожалуйте, обсуждайте.
LeoN65816
17.09.2021, 07:06
Ставим их так, что каждый из 8-ми корпусов статики отвечает за свой бит. Точно так же как было растаскиваем отдельные -WE.
Это ты так цветовой режим записи сэмулируешь. А плоскостной как?
Но получаем на выходе не три, а целых восемь цветовых плоскостей
Ага, и LUTу "привет", и регистру цвета/плоскостей, и всему программью...
TomaTLAB
17.09.2021, 14:48
А плоскостной как? Да, действительно, там реализована адресация каждого отдельного бита по всему ГЗУ. Тогда только через RMW. Все равно нужно разделять DI/DO.
TomaTLAB, тогда достаточно все-таки 3-х микрух статики. Интересно, 70нс быстродействия хватит для RMW? Удастся ли эту логику уместить в одну EPM7128? Разделение I/O можно так же в ПЛИС засунуть, чем шинные формирователи использовать.
Я уже писал где-нибудь, что хочу еще и текстовый режим 80х25 или хотя бы 64х25?
Можно собрать схему в Протеусе и отладить все нюансы RMW. Что то нигде не нахожу прошивок РТ2, только в виде текстовых таблиц в описании, может есть у кого то они считанные программатором, ну или набранные по имеющимся таблицам?
LeoN65816
17.09.2021, 22:37
Тогда только через RMW.
Вот стал активным сигнал записи в ГЗУ на 2 (или сколько там?) такта. Кто будет делать этот RMW? И как?
Все равно нужно разделять DI/DO.
"Мёртвому припарка"...
TomaTLAB, тогда достаточно все-таки 3-х микрух статики.
Опять я тебя не понимаю... Вроде же уже обкашляли этот тупик...
На всякий случай напомню, что уже обсуждали модернизацию и дополнительные плюшки: #1 (https://zx-pk.ru/threads/30526-proekt-novodela-korvet-obsuzhdenie-tz.html?p=1014231&viewfull=1#post1014231), #2 (https://zx-pk.ru/threads/30526-proekt-novodela-korvet-obsuzhdenie-tz.html?p=1014354&viewfull=1#post1014354).
В общем, заменить 24 мс РУ5 на 3 SRAM вполне реально.
https://i.ibb.co/mH9wjs7/korvet2.png (https://ibb.co/cN6HB5d)
хоть и с запуском схемы в Протеусе есть проблемы, по Fn при старте я ни куда не попадаю, просто черный экран. Тогда как в бейсик через 10с после запуска выходит и клавиатура там адекватно работает..
с прошивками РТ2, так же все не просто, их два варианта как оказалось, отличаются все. Как и два варианта схемы, правда очень похожих.
LeoN65816
05.10.2021, 23:04
Избавился от кучи РУшек, но добавил кучу регистров и мультиплексоров...
Данные для мультиплексоров U7-U14, которые не подлежат изменению, берутся с регистров U5, U16, U18, в которые эти данные пишутся при предыдущем чтении ГЗУ видеоконтроллером. Я правильно понял схему?
Избавился от кучи РУшек, но добавил кучу регистров и мультиплексоров...
24 мс минус, 14 плюс, итого на 10 корпусов меньше, хотя, конечно, весьма громоздко получилось
Данные для мультиплексоров U7-U14, которые не подлежат изменению, берутся с регистров U5, U16, U18, в которые эти данные пишутся при предыдущем чтении ГЗУ видеоконтроллером. Я правильно понял схему?
не совсем, адреса для ОЗУ МАх и /CASх выставляются раньше сигнала записи WEG, а по его спаду(те инициация самой записи) данные из ОЗУ записываются в U5, U16, U18 и дальше запись будет производиться в этот же адрес МАх. Далее приходит этот WEG задержанный на элементе как сигнал /WEGQ на запись ОЗУ. Данные же для записи выдаются этими 8ю мультиплексорами согласно битам разрешения /GWEx.
Здесь нужно иметь ОЗУ достаточно быстрое, что бы выставить данные от момента прихода адреса, выборки его по /CASx и до начала спада WEG...
немножко разобрался с загрузкой из внешней ПЗУ:
https://i.ibb.co/51jtg3D/korvet8.png (https://ibb.co/Tw0pxGX)
https://i.ibb.co/MkZqnp1/korvet9.png (https://ibb.co/k25YK0D)
https://i.ibb.co/thkzW2f/korvet10.png (https://ibb.co/fSB9PNR)
LeoN65816
06.10.2021, 08:52
На второй фотке "Проверка отображения графической информации" беда какая-то... Линии рисуются в цветовом режиме записи. Видно, что "не вышло" маскирование битов...
Вообще, довольно красивая идея реализации RMW. Попробуй увеличить задержку /WEGQ относительно /WEG, то есть еще несколько раз добавляй по одному вентилю 74LS32.
Да, сам вижу, что вторая картинка совсем не такая, как в emu. Буду разбираться. Много неизвестных на пути.
В процессе нашел ошибку в обработке прерываний от 580ВН59 в своей x80.dll(i8080), затем нашел ошибку в i8259(580ВН59) самого Протеуса. Пришлось писать свою dll для i8259.
Два варианта схемы самого Корвета, несколько разных прошивок РТ2, какие варианты к какой схеме так до конца и не понял, а симуляция каждого варианта очень долгая, 1с работы схемы, чуть больше 4х минут в реале... На картинке видно время симуляции 5.39с=~25 минут реального времени...
Вечер убил, пока разобрался с черным экраном - толи это глюк, толи фишка Корвета, как минимум на прошивке ОПТС 2.0 - если запускаться с нажатой F2, для загрузки из внешней ПЗУ, то нет инициализации 155РУ2 и на экране ничего не видно. Подключился в монохромном режиме, а там текст! Как оказалось надо запуститься без нажатых кнопок, затем нажать F2, и затем СБРОС, вот тогда все выводится как надо в цвете.
Добавлю, еще и в emu, похоже нашел ошибку в обработке прерываний! В emu переход на обработчик прерывания происходит сразу же по выполнению команды EI (разрешить прерывания), понятно, это при условии, что есть этот запрос прерывания, а должен переход происходить с задержкой на одну команду после EI. Это может использоваться в конструкции EI - IRET, что бы этот IRET выполнился, а потом новое прерывание обработалось. Это есть в даташите на i8080 и z80. В i8085 не смотрел, но думаю аналогично.
Если на мультиплексоре DD62/15 заменить сигнал /CAS на комбинацию CAS и ACCESS пропущенные через элемент 2ИЛИ-НЕ(ЛЕ1), то в моменты обращения от ЦП выборка ОЗУ будет происходить в 2 раза раньше, чем сейчас, тк /ACCESS по длительности как RAS+CAS. Это облегчит требования к быстродействию ОЗУ.
Завтра приведу временные диаграммы этого узла. Сейчас, с такой доработкой( без нее тест пишет -отсутствует), прогоняю этот тест, это на всю ночь:
https://i.ibb.co/BVSZTY2/korvet12.png (https://ibb.co/6RfPDq0)
Если на мультиплексоре DD62/15 заменить сигнал /CAS на комбинацию CAS и ACCESS пропущенные через элемент 2ИЛИ-НЕ(ЛЕ1), то в моменты обращения от ЦП выборка ОЗУ будет происходить в 2 раза раньше, чем сейчас, тк /ACCESS по длительности как RAS+CAS. Это облегчит требования к быстродействию ОЗУ.
Вообщем с этой доработкой все работает как положено:
https://i.ibb.co/xhyKz6D/korvet13.png (https://ibb.co/BLmHTBt)
и времянки всей схемы RMW,
без доработки:
https://i.ibb.co/xm7hfQM/korvet14.png (https://ibb.co/9wrnVjq)
с доработкой:
https://i.ibb.co/PWkgH0z/korvet15.png (https://ibb.co/3FKcZQY)
видно время выборки ОЗУ, в сравнении с длительностью сигнала /CAS (частота - 2.5М, или период 400нс),
составляет пол периода, или чуть меньше 200нс. Вот и требование к быстродействию мс SRAM.
без доработки все, действительно, плохо...
схема:
https://i.ibb.co/6t2Tv60/korvet16.png (https://ibb.co/qgzc0bY)
по схеме Корвета в Протеусе, в целом. В Протеусе нет моделей ИР27 и ИР20, я их заменил на ИР23 и КП13 соответственно с изменением управления. Однако для ИР27 во всех местах, где вывод /OE посажен на землю, замена ИР27 на ИР23(74ls374) идет без каких либо доработок один в один. ИР20 на КП13(74ls298) меняется с добавлением одного инвертора по входу тактирования. Замена РТ2 на прошивку в ПЗУ типа W27c512-45 возможна для всех кроме d8 в синхрогенераторе. Для d8 все сложнее, там на один из входов приходит частота 10М, и на выходных сигналах появляются иголки, а тк эти сигналы управляют разными регистрами в том числе, то эти иголки приводят к защелкиванию этих регистров в совсем неправильное время и ничего не работает. Для обхода этой проблемы в Протеусе я поставил по выходу регистр, который защелкиваю частотой 20М, но как это будет работать в реале я сказать не могу. Очень хочется этот узел собрать на рассыпухе мелкой логики, ну и пусть будет пяток лишних корпусов, зато не будет печки РТ2. На фоне общего количества микросхем это число растворится.
Проект в Протеусе нужен кому нибудь?
LeoN65816
09.10.2021, 09:32
Опять придираюсь ;). На "Проверке отображения графической информации":
1. Вертикальные линии в левой части экрана какие-то "подозрительные"...
2. В левой же части два белых знакоместа. Утверждать не буду, однако, когда-то запускал КТДП на реальной Форманте, и вроде их там не было...
Предложение. Запихнуть в EPM7128STC100 регистры U5, U16, U18, плюс RMW U7-U14, плюс регистр цвета с обвязкой, плюс РТ2 по чтению ГЗУ. Тогда реальный профит по корпусам. Минусы:
1. Всё желаемое может не влезть из-за ограниченного количества внутренних связей в ПЛИСке.
2. Нельзя проверить в Протеусе. Тестить/отлаживать придётся на реальной макетке-прототипе.
Также вместо DD8 и DD34+DD31 можно поставить по EPM7064SLC44. Также можно применить GAL16V8 и GAL22V10 - благо TL866 их поддерживает.
Нет предела совершенству.
Опять придираюсь ;). На "Проверке отображения графической информации":
1. Вертикальные линии в левой части экрана какие-то "подозрительные"...
2. В левой же части два белых знакоместа. Утверждать не буду, однако, когда-то запускал КТДП на реальной Форманте, и вроде их там не было...
1- особенность схемы отображения в Протеусе
2- они должны быть, более того и справа они должны быть, но конкретно здесь ушли за предел экрана
https://i.ibb.co/LrtCTmC/korvet18.png (https://ibb.co/NrjL05L)
переход на плис, не соответствует эпохе разработки Корвета в отличии от статики, которая хоть и была дорогой, но уже существовала. Да и плис оттолкнет желающих повторить схему, в отличии от более распространенных мелких мс.
Sancho45
11.10.2021, 08:47
Проект в Протеусе нужен кому нибудь?
Кидайте, пригодится...
Кидайте, пригодится...
во вложении проекты первой и второй версии Корветов, со всем набором bin, jed, dll файлов
нужна версия Proteus 8.5 или выше. Архивы специально подгонял под ограничение в 200кб на вложение
Sancho45
15.10.2021, 14:00
Прошивки 556рт2 синхрогена и диспетчера памяти полностью разобрал. Разные варианты к конкретной модели не относятся, в теории все взаимозаменяемые. Некоторые различия в схемах это доработки... Если конкретные вопросики будут, постараюсь помочь...
Что то затихла тема. Вот если вдруг решите править есть файлы печатки, да и схема в P-CAD 2002 - https://zx-pk.ru/threads/19192-korvet-pechatnye-platy.html?p=1140368&viewfull=1#post1140368
Кстати 8 КР132РУ4 можно заменить двумя CY7C150 без всяких извратов, но вот 9-ю РУ4 придется оставлять.
9-ю РУ4 придется оставлять
Зависит от цены и доступности РУ4 и альтернативы, возможно 3 одинаковых будет проще (и 3 бита в одной из 1kx4 не будут задействованы).
Зависит от цены и доступности РУ4 и альтернативы, возможно 3 одинаковых будет проще (и 3 бита в одной из 1kx4 не будут задействованы).
Вполне разумно.
На али CY7C150 стоят от 70 руб, вернее я так понял 1$. 3шт - 210 руб
КР132РУ4Б если верить efind.ru то средне так 30руб. 9шт - 270 руб
По сути сопоставимо, но места возможно будет меньше жрать.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot