Вложений: 3
Новый реверс Вектора 06Ц.01 и возможная реинкарнация
Здравствуйте, коллеги.
На форуме зарегистрировался почти сегодня, но с Вектором знаком более 30 лет. Мой экземпляр нашелся у Родителей спустя десятилетия,
во внешне хорошем состоянии, но с достаточной коррозией. Для решения проблемы было решено полностью демонтировать 2/3 аппарата
с левой стороны, что дало интересные возможности: вместо восстановления экземпляра я решил совместить известные сканы схем и
доступную для анализа PCB и восстановить и схему и имеющуюся топологию в KiCad. Это первый этап для интересной, как мне кажется,
задумки - сделать реплику на современных SMD компонентах. Я смотрел на имеющиеся 2014 и 2017 версии, но меня там не сильно
привлекали как раз обилие DIP и разветвленность проектов: стремление включить большинство известных доработок.
Мой подход в следующем:
- цель проекта - реплика Вектора на CMOS аналогах 580 серии в QFP/PLCC и 74HC/HCT в SO исполнении.
- возможно применеие Altera EPM7000S как gluе logic, но это будет мой первый ПЛИС проект.
- это любительский just-for-fun проект, я не считаю себестоимость и затраты для тиражирования.
- элементная база выбирается сообразно целей проекта.
- вся документация и сопровождение ведется в OpenSource инструментарии (ну может старый Quartus 13 сюда не попадает, но синтезаторы для ПЛИС - это отдельная песня).
- вся документация будет доступна под открытой лицензией. Пока используется CC BY-NC-SA.
Как происходило:
- по "желтым" сканам из картотеки (я еще не сильно ориентируюсь, но это должно быть детище @svofski совместно с коллегами, как то @Tim0xA сотоварищи - огромное им за это спасибо!) схема перенесена в KiCad.
- по ходу процесса были порождены соответствующие символы в библиотеке элементов (155 серия, ибо я бомблю с буржуинских обозначений AND/OR, КР565РУ6, СНП34-90-Р-В, СНП34-30-Р-В, что-то еще).
- по схеме и имеющейся PCB была разведена топология, максимально близкая к оригиналу, прозвонка использовалась для уточнения схемы. Нормы по дорожкам 0.8/0.2 и 0.4/0.2, первый типоразмер для основной разводки, второй для дорожек между DIP 2.5мм. На плате в оригинале есть множество чудесатых форм площадок, что неудобно в CAD.
- нумерация/refdes элементов полностью соответствуют оригиналу.
- я не умею multiple bus в KiCad, поэтому сигналы шин префиксируются указанием на оригинальную шину и номер ввода на схеме и реальным назначением сигнала, например ~A22_BAIO5 - это 22 ввод в комбинированную шину адреса, которая обозначается второй (2) на оригинальной схеме и который является (~) инвертированным (B) буферизированным сигналом адреса (A) ввода-вывода (IO) бит 5 (5).
- в библиотеке футпринтов были допилены соответствующие элементы с шагом 2.5.
- общий шаг при переразводке PCB был строго 1.25, кроме пары диагональных мест.
Что есть сейчас:
- sch/pcb документация по Вектору, снятая по тому, что есть в действительности на моем экземпляре.
- первый проект KiCad c единой схемой на листе A3 + память отлельно и разводкой PCB соответствующей оригиналу, на PCB возможны косяки с шелкографией, ибо не проверял, но и ERC и проверки PCB проходят. Понятно, что это не гарантирует от всех ошибок.
- второй проект в KiCad с той же топологией PCB, которая использовалась для обеспечения неизменности, но со схемой уже разделенной по функциональным блокам. Это больше для структурирования и понимания схемотехники Вектора на верхнем уровне: оригинальная схема не помогала в этом совсем.
Вложение 76752Вложение 76753Вложение 76754
Дела текущие: Vector06c-Neo
Ковыряю понемногу реинкарнацию. Проблем пока две.
1. Сильно хочется уйти от x32 организации памяти к x8, на худой конец к x16. Но при x8 стандартный 60-70ns DRAM в принципе не лезет в тайминги, отведенные для доступа видеоадаптера. У "средних" РУ6 задержка от спада /CAS до данных в паспорте 120ns, поэтому 4 обращения в x8 DRAM точно не влезут. С x16 можно повоевать. Поэтому пока двинулся в другом направлении - использовать емкую, но небыструю SRAM 512Kx8 с 55ns с прицелом в ней же и кваз разместить. Впритык в окно доступа видеоадаптера 4 обращения влезают, пока в симуляции в ModelSim. Обращения будут сопровождаться 4мя latch сигналами, разнесенными во времени, почти также как защелкиваются сейчас все 4 ИР13, но не одновременно. Для выравнивания, 3 из 4х байт будут временно защелкиваться в промежуточных регистрах, как пример - защелкивание атрибута знакоместа в спектрум-совместимых, только тут ждать надо меньше - до окончания выборки всех 32 бит. Данные четвертой страницы сохранять не надо, по четвертому стробу все будет писаться в выходные сдвиговые, но уже не ИР13, а 74HC165PW. Пока, в теории, схема выглядит правдоподобной. Отвечаю, зачем такие извращения:
- планирую уместиться в EPM7128S, что ограничивает меня и по ячейкам и по пинам, регистры в синтезе особенно дороги. Посему, все регистрово-простое, что можно вынести в отдельные корпуса, я вынесу. И даже не буду в синтез вносить, как например пиксельные сдвиговые, они изначально планировались на отдельных чипах, отдавать >=32 ячеек из 128 за такое я не готов.
- x8 занимает меньше места и отпадает необходимость в выходном демультиплексоре на КП2 до CPU.
Где есть резервы:
- мастер клок у меня 48МГц, чтобы иметь возможность уплотниться где надо или подвинуть сигналы (а 3 RC цепочки в стандартной схеме есть - на CPU клоке, на сбросе PSW и на 512 точках растра).
- не пытаться впихнуть кота в коробку, забить на кваз и поставить любые Cache SRAM x8 с доступом 10-25ns. Необходимости в защелках перед пиксельным сдвигом это не отменяет, но с таймингами становится проще.
2. Переход от DRAM к SRAM помогает во временной области, за RAS/CAS можно спокойно 2 обращения сделать, а с учетом меньшего времени доступа SRAM чипов, то и все 4. Но грабли начинаются в другом - во входном адресном мультиплексоре. Если его делать в CPLD, то туда надо завести 16 линий адреса CPU + 8 линий начала экрана ВВ55 на входы счетчиков скроллинга и вывести 8 бит мультиплексированной шины адреса памяти. Итого 32 бита и 32 пина CPLD из 84х. Это с учетом того, что все видеосчетчики внутри CPLD, как и задумывалось. Для SRAM выводить обратно надо все 16 бит адреса и ноги CPLD становятся узким местом. Да можно сэкономить 2-3 пина, поскольку убираются /CAS0-CAS3 + /CASE, но для адресации кваза добавляются еще 3 бита адреса, формируемых между основной памятью и страницами кваза. Пока промежуточное решение - вытащить входной адресный мультиплексор в логику (SN74CBT16233DGVR), а резерв в CPLD придержать, еще не делались дешифраторы IO, логика кваза и всякое остальное.
* SN74CBT16233DGVR под вопросом, он конечно прикольный и все-в-одном, но по разводке будет проще 4шт КП11 в TSSOP-16 применить (да, я знаю, что родных КП11 в TSSOP нет, но мы все же поняли, да?).
Напоминашки:
- не надо спрашивать "зачем" и искать коммерческую или иную целесообразность. Все, что я делаю - это just for fun. Вектор-06Ц был моим первым компом.
- хоть и паяльник я держать умею с детства, но на жизнь зарабатываю я написанием кода. Посему и тут и там могу быть некомпетентен. ;)
- цель проекта сделать современную реплику Вектора. Не программную эмуляцию (с этим коллеги преуспели), не синтез всего в FPGA (привет первопроходцу @svofsky), а просто милый маленький девайс. Типа iMac. В цельной алюминиевой коробке. ;) :D
PS: Невзначай появилось имя проекта. Неоригинальное, но на силксринах уже отпечатанное: Vector06c-Neo.
PS2: Коллеги, у кого нибудь есть в читаемом виде сканы наших даташитов на РУ6/РУ5/РУ7 с диаграммами и таблицами таймингов? Все что находится либо пережато и нечитаемо, либо новодел pdfный из 2х страничек к которому доверия никакого. Заранее, спасибо!
- - - Добавлено - - -
Цитата:
Сообщение от
Improver
CY7C131-15JC. Данные там на 8 бит, значит одного чипа хватит, быстродействие превосходное, и корпус можно выбрать компактный, типа plcc или pqfp...
Все, конечно, здорово... но! У меня есть CY7C131E-55JXI в PLCC52. Да, прикольно. Да SRAM и двухпортово. Но на этой площади 2x 155РУ2 точно уместятся, толкаться не будут и доп. согласования не попросят.
Не, чипы прикольные, я не спорю, но они не про то.
;) А вот на них сделать non-wait шлюз с "программным арбитражем и семафорами" ("с блек-джеком и дамами с пониженной социальной ответственностью" (c) Bender@Futurama) - это интересно.
А с другой стороны подвесить можно всякое. GPU например на FT812, как коллега TSLabs сделал с ZX-Evo.