Докладуюсь: книжка приехала.
Желающим помочь оцифровывать - просьба написать в личку, сделаем папку в Дропбоксе и помаленьку будем сканить...
Вид для печати
Докладуюсь: книжка приехала.
Желающим помочь оцифровывать - просьба написать в личку, сделаем папку в Дропбоксе и помаленьку будем сканить...
Берем ULA (любезно пожертвованную Anubis_OD, отдельное спасибо ему) с попутчиками:
http://s56.radikal.ru/i151/1505/79/79e95da1fe44t.jpg
Потом пилим маникюрным набором Dremel:
http://s017.radikal.ru/i429/1505/e3/d9e69e7a3e62t.jpg
Смотрим в торец, и видим что только 580ВМ1 нуждается в улучшенном охлаждении - только у него металлическая пластина на весь корпус:
http://s017.radikal.ru/i436/1505/b8/c655d5a0f06et.jpg
Обтачиваем все что можно, пластинку в ULA я так и не нашел, поэтому снизу она не обточена:
http://s017.radikal.ru/i406/1505/5d/44a3e1e48c8dt.jpg
Звоним химику и договариваемся насчет кислотной ванны :)
Продолжение следует...
Читай: соответствие выводов к ножкам (а также если у ножек есть перемычки\соединения до кристалла, внутри слоя эпоксидки) - похерено.
Ну ULA ж не процессор - зачем ей хороший теплоотвод? В ней и ума-то собственного нет, одна матрица ячеек с логикой.... ЛА3-переросток, прости Господи...:)
Рекомендую дождаться книжки, которую мы тут сканим. В ней разобрано по блокам - что, как, куда и зачем (и схемы ячеек итд).
Процентов 30 уже готово. Как завершим - выложу в паблик.
У Vslav другой результат - будет потранзисторная модель для FPGA (которую можно потом будет перевести и в код для эмулятора) которая даст 100% совместимость. Что и как он вряд ли будет расписывать подробно, вот тут уже и можно приложить сканы книги (если кому-то будет интересно разобраться в сути).
Не-а, если немножко подумать - то ничего не "похерено" :). Все соединения идут строго по порядку - обычно внутри корпуса проводники не пересекаются - конструкция такая. Во всяком случае, мне пока в дюжине вскрытых микросхем "похерить" распиновку не удалось ни разу. Находишь землю-питание, и дальше внешние контакты подписываются банально против часовой стрелки согласно нумерации.
А разве есть простая прямая связь сложности схемы с потреблением? Можно привести пример схемы с единственным транзистором КТ808А, который один-одинешенек выделяет 20Вт :). А можно взять микросхемку 74HC595 в которой порядка тысячи транзисторов и потребляет она микроватты.
На самом деле в ULA 6C001 около 1000 стандартынх ячеек, в каждой может быть использован источник тока на 210 мкА, грубо, если половина ячеек включена в данный момент то будет потребляться около 100мА, и все они в итоге пойдут от +5V поскольку импульсных преобразователей внутри нет. Итого - 0.5Вт только на статику. Надо было сделать питание от внешнего источника +1В, тогда бы мощность уменьшилась бы.
Уже, почта наконец раздуплилась :)
Потранзисторная модель - это порядка 6000 транзисторов. Хочется сделать как в случае с 1801ВП1 - там тоже примерно 6000 транзисторов, но они были в итоге нарисованы как логические ячейки, это на порядок сокращает объем работы. В книге маловато рассказано про библиотеку ячеек, и там бОльшая вариабельность чем у ВП1 - несколько примитивных ячеек объединяются в одну (например D-триггер), при этом есть топологическое разнообразие, будет много дурной работы при рисовании в пикаде. И нет почти никакой информации по задержкам, только примерная общая цифра.
Имхо, не совсем. В 1515ХМ2 ячейки разложены стройными, относительно изолированными столбцами, поэтому ячейка находися в пределах столбца и имеет два варианта топологии - прямой и зеркальный. А в ULA есть базовая ячейка о 6 транзисторах, и есть, например, тактируемый D-триггер, занимающий 4 базовых ячейки. И, как я понял, эти 4 ячейки могут лечь любой фигуркой тетриса. Сделаем фото, станет окончательно ясно, будет хорошо если это не так.
Так дело в том, что плат (и ULA к ним) было несколько версий. Соответственно, 100% эмуляция будет именно к одной версии платы (ну или вскрывать придется их все).
Если немножко подумать - то окажется, что выше - просто допущение, а не утверждение. Мне встречались чипы и с соединениями, и с неподключениями ног (и вместо ноги "по порядку" подключена "следующая задействованная"). Особенно этим балуются всякие BGA и иже с ними.
Про простоту - не знаю, а вообще - есть (при прочих равных, разумеется).
Мне неизвестны микросхемы с единственным транзистором КТ808А. Давайте быть более реальными, и не вводить ненужных сущностей.
Так сугубо для оценки (НЕ для реверса) - можно взять уже имеющийся скан с 6502.org, или как его там. На нем же видно, что к чему, не?
PS: так а зачем "потранзисторная" схема, если уже есть "поблочная функция" (в книжке)? Ее же проще перевести на верилог, заодно и косяки родного чипа "починятся". ULA же есть как раз "перевод функции в жылизяку", ну так нам надо ту же функцию но в другую жылизяку (FPGA). Имхо, разуплотнять весь вопрос до транзисторов - смысла нет, см.про верии ULA. Это как решение какого-нибудь интеграла раскладывать на атомарные арифметические операции типа (1+2). Разложить-то можно - но зачем?
Ух, я смотрел на фотографию ULA 9C из Интернета, там 990 ячеек, поэтому считал общее количество примерно 1000. А в книжке есть фото ULA 6C, там всего 4 квадранта по 11x12, итого 4*11*12 - 528 ячеек. Это шара :), сам кристалл по площади тоже меньше - поэтому я не допилился до подложки (боюсь испортить), ну и мощность соответственно тоже почти вдвое меньше.
Еще интересно Крис пишет что фотографирование кристалла стоит ~$500/час и занимает целый день. То есть дерут за такие фотки несколько тысяч шкурок убитых енотов :). Хотя, возможно там полный комплекс - декаппинг, делееринг, фото. В-общем, за такие деньги я бы тоже фотографию не выложил в открытый доступ, поэтому ее и нет, как и нет полной схемы.
Э-э-э... Мы уже дожили до реверса чипов в BGA и пилим?
Пилились простые корпуса DIP-40, там внутрикорпусная трассировка вполне простая, цоколевка пиляемых микросхем известна, в данном случае "похерить" что-либо очень трудно, даже если там будут пропуски или сдвоенная сварка. Проблемы очень маловероятны, ввиду "неперепутанности" такого процесса как wire bonding:
видео раз
видео два
Я сегодня наконец уяснил что на 6502 валяется фото ULA 9C, а нам интересна 6С, так что то фото просто для общей справки. 6С содержит другое количество базовых ячеек, как оказалось.
Меня интересует точность воспроизведения функций, тратить силы и время на ручную сверку мне неинтересно, поэтому я пользуюсь автоматическими средствами сквозного контроля системы проектирования. Если получится для ULA нормально создать логические ячейки, то так и сделаю, для 1801ВП1 это удалось, на потранзисторном уровне ВП1 не прорисовывался.
Потому что бывают интегралы не берущиеся аналитически, а только численно :)
Не совсем реверса. Но вскрываем, да.
Мы их на золото пилим (и прекрасно видим и узоры меди унутре, коя не нужна со всеми ихними интерконнектами - и подключения к кристаллу, за коими собственно туда внутрь и лазим). Пачками-сс. :)
А брутфорсом они решаются вообще все без исключения. Включая еще не придуманные. Но есть ньюанс, что говорится. :)
Там в ULA особенность есть, в ней некоторая часть (надеюсь очень небольшая) используется как аналоговая схема, потому всякие HDL "пролетают". Вообще с трудом себе представляю как проектировать аналоговые asic-и и как пересчитать параметры с симулятора в размеры и форму элементов на кристале, но тут вероятно была ЕЩЕ одна специфика за счет того что форма\размеры элементов определены в стандарте самой ULA, т.е. они неизменяемы а значит для достижения нужной функции можно пользоваться только "суммой" других более мелких "стандарных" функций (соответственно размер схемы может вырости в разы). Некая инфа по особенностям ячеек ferranti есть у автора книги, он ее откопал в музее ferranti, вполне возможно поделится ею если спросить.
Там нет никакого особо необычного аналога. Кодер PAL/NTSC и, возможно, ввод-вывод с магнитофона. Так это для реплики уже никого не волнует, повторять их 1-в-1 в ПЛИС нет смысла.
В книжке аж пара разделов посвящена аналоговым сигналам + вводу\выводу на всякие спикеры\магнитофоны. В самой ULA аналога нет - она лишь формирует сигналы "наружу", для генерации аналога уже рассыпухой на плате.
Как пример:
http://s017.radikal.ru/i411/1506/f3/cbc4b392ee78t.jpg
А это и есть небольшой аналоговый фрагмент, типа простенький ЦАП или можно рассматривать как смеситель. Как работает - очевидно, как либо оформлять его на Verilog - нет необходимости.
Я к тому, что он не в составе ULA - а снаружи ее (то есть - не сабжево). Для эмуляции на плисине это совершенно не нужно, разумеется - в самой ULA аналоговых частей нет.
Угу. Вот тот вышеприведенный кусочек формирует аналоговый яркостный сигнал. И этот сигнал - не цифровой, он именно аналоговый. Это смеситель, смешивает цифровые компонентные сигналы RGB с нужными коэффициентами и на выходе дает аналоговый сигнал. И этот узел именно аналоговый и именно внутри микросхемы, другое дело что он примитивный и можно себе голову не морочить при разработке реплики - сразу давать выход в компонентном формате RGB.
Также, как я понял, внутри ULA имеется кодер PAL/NTSC, тоже аналоговый фрагмент, он немножно сложнее - фазовый модулятор, добавление цветовой синхронизации и тд, но опять-таки, функция узла понятна, можно не париться насчет его аналоговости и повторения.
Впрочем, у нас тут на форуме уже есть умельцы и ряд готовых проектов на ПЛИС с кодером PAL внутри, так что - если очень хочется, то реализуемо.
Разве?
Я так понял, что этот узел - на плате, набран рассыпухой рядом с ULA (где из ULA вываливаются только RGBY):
Скрытый текст
http://z00m.speccy.cz/pics/plus2sch.png[свернуть]
PS: в книжку пока не вникал - читал по диагонали то, что пролетает перед глазами пока сканится. :)
Я не знаю что это за схема, и что там за ULA, явно не совпадает по цоколевке с 6C.
Если верить книге, то ULA серии 6С выдает на свои ножки видео в компонентном формате яркость + два цветоразностных, и выдаются они в аналоговом виде потому что иначе 16 вариантов цвета по 3 линиям не выдать. Также в яркостный выход замешана синхронизация и гашение. Внутреннего кодера PAL/NTSC в ULA 6C нет.
Spectrum+2 issue 3 PCB.
Первая попавшаяся в гугле с распиновкой ULA. Можно взять другую, не вопрос.
Вот, нашел канонiчную - обвязка вне ULA, плюс доп.чип:
Скрытый текст
Надо покурить книжку поплотнее. Вот лично я не вижу ни единого смысла пихать аналоговые цепи в изначально цифровую схему, плюс будет не самым адекватным делать эти цепи на основе таки изначально-цифровых по предназначению ячеек (а кроме них по сути в ULA ничего и нет). Подкручивать-то их сообразно ситуации как прикажете, если они в чипе?
Плюс, вокруг ULA рассыпаны просто кучи дискретов (и как раз по направлению на выход изображения) - если все основные аналоговые сигналы в ULA, то к чему эти россыпи-то?
Скрытый текст
У 48k машины ULA выдавала видеосигнал в формате UV+Y, у 128й - RGBY. Это совершенно разные ULA. PAL и тем более, NTSC кодеров ни на каких ULA не было. "Куча дискретов" - это собственно PAL кодер (tea2000 на 128k и LM1889 на 48k), и схема подмешивания звука в изображение.
Тем не менее, разработчики ULA так сделали :)
А смысл бывает - вот ЦАП - это какая схема? Цифровая или налоговая? :)
Ну вроде да - Logic Array. Но, другой стороны - транзисторы они и есть транзисторы, кое-что аналоговое изобразить можно запросто. Во-всяком случае, формирователи яркости и цветоразностых - без проблем.
Ну не все, только часть, а дискреты - резисторы/конденсаторы приводят уровни и прочие параметры сигналов в нужный вид - согласование, активных компонентов среди этих дискретов практически нет.
Угу, я уже добавил правильную схему постом выше.
Ага. Рассчитанные на "открыто\закрыто" без полутонов, ибо штампуются как части стандартной ячейки. И она рассчитана быть цифровой, если еще на стадии проектирования кристалла не было сказано иного. В этом-то и вопрос.
Я просто отталкиваюсь от того, что ULA все же не полностью кастомный чип а-ля гибридка какая-нибудь (где уж воистину - как Аллах на душу положит, такие сюрпризы и будут), а все же матрица-полуфабрикат могущий быть использованным и в других устройствах вообще, и не только в спектруме в частности. А коль скоро различия у таких чипов только в последней маске - то делать какую-то часть ULA (которая пойдет и в другие проекты) под аналоговые сигналы именно спека имхо нет ни смысла, ни логики. Получится кристалл, который больше никуда не продать кроме как дяде Клайву. Не партию чипов со стандартным кристаллом+кастомной маской - а вообще весь кристалл.
Но книжку еще не читал, говорю же. Вполне возможно, что именно эти конкретные спековские ULA и надо рассматривать не как стандартные полуготовые матрицы от производителя, а именно как кастомные чипы именно и только для спека, и не оглядываться на то что по сути-то кристаллы ДОЛЖНЫ быть взаимозаменяемыми с другими проектами, если не брать во внимание последнюю маску.
А вообще - надо просто взять, сфотать, и посмотреть - что там у выходных падов накручено. Как там прогресс с купанием в кислоте?
Ну, короче, к эмуляции в плисине оно никаким боком (как и все те PAL-кодеры и прочая рассыпуха). Аминь. :)
ULA 6с о которой говорится - со Спектрума 48к ревизии 3.
они были на ревизии 3 и ревизии 3b.
Ы-ы-ы, неужто никогда не видели звукового усилителя на 155ЛА3? Можно много чего нагуглить по теме "использование цифровых микросхем в линейном режиме". "А мужики-то и не знают" :biggrin:
Биполярный транзистор - он и есть биполярный транзистор, можно использовать в ключевом режиме (типа "цифровой"), а можно в линейном (типа "аналоговый"), режим определяется схемой включения, а не технологией изготовления (параметры от нее зависят, конечно, но не принципиально, особенно в те времена), а на схемотехнику особых ограничений в ULA нет, частотные параметры приличные, думаю, можно даже неплохой операционник соорудить. Параметры транзисторов в книге должны быть, можно взять какой-нибудь electronic workbench и смоделировать, если интересно.
Вот возьмем транзистор КТ315, можно радиоприемничек соорудить, а можно и цифровую схему. Транзисторы внутри ULA ничем принципиально от КТ315 не отличаются, физика та же самая.
Дык, серию 6С специально для Клайва с его миллионными тиражами и сделали.
Сегодня пришла посылка еще кое-с-какими интересными микросхемами, надо триммировать, потом уже всю серию химику отдам, надеюсь на этой неделе сделают.
На своем форуме BC писАл: "...в ULA есть аналоговые цепи и помимо формирователя цвета. В частности, в ULA ZX Spectrum 16/48k выход спикера/магнитофона сделан как 2х битный нелинейный ЦАП, а входной сигнал с магнитофона обрабатывается компаратором с программной регулировкой чувствительности."
Не видел. Честно.
Именно. И схема включения у нас - уже "прожжена" в ячейке, со всеми тамошними диодиками\резисторчиками. Полуфабрикат ULA-подобных чипов есть набор стандартных (эквивалентных друг другу) ячеек, кои поверху и соединяются - а не голых транзисторов. Как правило, в смысле.
Если же сама ячейка (со схемой включения транзисторов в ней) подверглась тому или иному моддингу - то это уже нестандартная ячейка. И на нее уже надо смотреть особо, угу.
Отличаются тем, что уже кое-как соединены - и "оторвать и переподключить" получится разве что путем заказа нового кристалла (читай - это будет уже другая ячейка, и другой чип).
В этом, скорее всего, и есть ньюанс. Тогда весь чип надо рассматривать не именно что матрицу ячеек, а как full-custom die - к которому неприменимы стандартные подходы типа "все ячейки - одинаковы, разница между ними" и проч.
И это таки добвляет неожиданного головняка. :(
А вот и нет, абсолютно. Базовая ячейка представляет собой: один отдельный резистор, два резистора с одним общим выводом, что не мешает использовать только один из них при необходимости, и две пары транзисторов, которые соединены коллекторами, и один двух- эмиттерный транзистор. Эти транзисторы можно использовать как три отдельных, если уж имеющиеся общие точки не подходят. Ну будет три транзистора вместо пяти, некритично. И, кажется (я не уверен, слету ненагуглил), в CML нету встроенных диодов Шоттки, поэтому это вообще самые примитивные транзисторы.
Нет, полуфабрикат ULA 6C - это пластина с вытравленными отдельными транзисторами и резисторами (ну есть общие выводы, но можно выкрутиться), объединение в ячейки очень условно - мало встроенных связей. А готовый вид схеме придают именно наложением связей сверху. И эти связи (топологию) разрабатывает заказчик (или под него). Как цепи сделаешь - так и будет, можно триггер, а можно операционный усилитель. Библиотечная ячейка - это не догма, особенно в те времена, толковые инженеры могли и порезвиться мимо них :). Вон 1801ВМ1 нарисовали ВООБЩЕ без библиотечных ячеек, всего 16+ тыс транзисторов, и не кашляли.
Времена были простые и незамысловатые, шаблон стоил копейки, тестовый образец получался за пару дней. Поэтому можно было и свое. Даже сегодня, при необходимости можно у фаба попросить разработать нужную ячейку, если нужно и условия позволяют.
Для 6C топология наверняка передавалась в векторном виде (GDS), при микронных нормах фабу вообще все равно что там нарисовано. Ячейки или отдельные транзисторы - все равно. Может быть, было критично для моделирования, но я думаю что и схему с отдельными транзисторами можно было и тогда моделировать. В-общем, на тех технололгниях никаких непреодолимых препятствий использовать отдельные транзисторы - нет. Я даже в 1801ВП1 встречал извраты и отступления от стандандартных ячеек, а это вообще другая (не биполярная) технология.
Я в книжку (и в конкретную ULA) пока не вникал, говорю же.
Я рассуждаю именно что про сферические ПЛМ в вакууме. Как класс, а не как конкретный чип.
Досканим книжку, вывалим в паблик - там уже можно будет и самому скачать и почитать. :v2_dizzy_punk:
О да.... говорю как вскрывший немало гибридок. А вот цифровые чудесатости пока в новинку. Но разумеется не исключаю, что они есть - и их много.
Та я не говорю, что были тех.препятствия. Я говорю, что пальпируемый чип в саму логику ПЛМ - не лезет. Сугубо теоретически. А что там в нем они начудили по факту - микроскоп покажет. Ведь не зря же клоны делали криво и на рассыпухе - значит, не всё там просто было с этой ULA, что даже на волне ТОЙ популярности - и не смогли спилить 1в1 и сделать свою ULA с диззями и знакоместами (хотя ведь, разумеется - пытались), да и по сей день вопрос совместимости таки не порешали на 100%. Вот авось тут и порешаем, в конце-то концов.
Если бы те кто первыми сотворили клон могли "пилить" то содрали бы 1:1, как были содраны уже к тому времени ТЫСЯЧИ микрух. История же говорит о том что только энтузиастам схемотехникам со Львова было интересно в СССР клонировать speccy, и сделали они это путем тыка и подгона схемы под снятые осциллограммы с оригинального аппарата. Когда же популярность вошла в пик (1992) и на том же Ангстреме появился "заказ" на ULA, то всяческих схем было море и они просто даже не задумались о важности клонирования. К тому же не уверен что они в этом деле были мастерами, так как они все делали "по своему", это скорее в Воронеже был налажен именно тот что надо "дралоскоп".
Предлагаю не вводить сослагательных наклонений. ЕСЛИ БЫ у них были сорцы всей ULA - то и пилить бы не пришлось...но вот у них сорцев не было, сие есть факт. Да и сейчас тоже нет.
Про спил я говорил в том ключе, что лично мне неизвестны примеры успешного спила кастомных кристаллов того времени (я не говорю, что сие было невозможно - я говорю, что лично я не знаю успешно завершенных примеров). Все без исключения попадавшиеся мне бутлеги плат, использующих кастомные чипы (не только спек - я тут попутно старые игровые приставки ковыряю, и там бутлегов - вагонами, и все разные) - предпочитали либо модифицировать фирмварь на тему полного отрывания\модификации функций того чипа, либо набирать аналоги той или иной степени корявости на рассыпухе. Понятно, что ни о каком клонировании оригинального аппарата в обоих случаях речи не идет - речь лишь идет о совместимости, и грабли могут вылезти чуть более чем везде.
Мы же тут (в этой теме) таки желаем реверснуть ULA именно для клонирования, а не для совместимости. Если этого еще не было сделано раньше (пиратами и проч) - то значит раньше этого нельзя было сделать по тем или иным причинам, т.е. не всё так просто было с тем чипом по состоянию на то время (ибо, как Вы раньше и сказали - если тогда могли бы - то спилили бы. Но вот не смогли-сс - и мы все эти годы имеем то, что имеем, а не точную копию ULA).
Ну а сейчас в этой теме, судя по всему, настала пора это исправить. :)
Ключевое слово было "кастомных".
На 8080 были сделаны кучки плат от разных производителей (можно было сравнивать работу чипа в разных вариантах), плюс какая-никакая документация (система команд, назначения выводов и проч).
Сравнить с ULA - которая есть "черный ящик" и по сей день.
Имхо, в эпоху бума восьмибиток рынок спека был, мягко говоря, ничуть не меньше 8080 - и являлся ничуть не менее вкусным.
Какой-то ниочёмный разговор, из пустого в порожнее :-/
Безо всяких ИМХО - в СССР рынка НЕ было. Всяко кооперативы, не говоря о Кулибиных-частниках не могли себе позволить реверс ULA, когда спеки стали выпускать заводы у которых было оборудование для реверса (например "Процессор" начал это делать в 89-90 году), эпоха Спектрума уже клонилась к закату, а закончили (тот же "Процессор" в 93-94 году) когда в стране уже была полная жоппа. Но, и без этого, как я говорил ранее, заводам уже не была нужна совместимость с оригиналом в принципе.
Я выше и сказал " по состоянию на то время" (и даже подчеркнул это). Я тоже говорю, что на то время - могли бы, спилили бы. Причем не могли не потому, что не могли себе позволить - а потому что особой совместимостью не заморачивались, Chronos запустился - и сойдет, можно на прилавок. Вот если бы НЕ запускался, и народ валом бы возвращал товар - то и средства на реверс бы сразу нашлись, какими бы они ни были. А пока убытки от возвратов были меньше затрат по спилу - то и пофигу. Это как раз мы тут страдаем не пойми чем с точки зрения подхода "товар\деньги". :|
О чем спор - действительно непонятно. Об одном и том же говорим ведь. Пиратов и покупателей их продукции устраивали корявые аналоги (и дальше пилить до полного соответствия для достижения эфемерных бонусов 100%-совместимости они не намеревались, ибо если бы это было просто - они сразу бы вывалили полную копию) - а нас вот тут вот такие поделки не устраивают, вот и весь спор.
---------- Post added at 12:06 ---------- Previous post was at 12:01 ----------
А зачем тогда вся эта тема, если Ленинград и без ULA работает?
Мы тут в теме как-то просто берем и смешиваем перфекционизм и идею ("Хочу точную копию ULA!") - с товарно-рыночным подходом ("Работает как есть, и ментальное большинство полностью устраивает - так что пофигу!"), отсюда и метания туда-сюда. Нам бы тут или портки б натянуть, или крестик бы снять бы. :)
---------- Post added at 12:22 ---------- Previous post was at 12:06 ----------
PS: скан книжки завершен. Будет две версии - одна в DJVU (постараюсь сделать и вывалить быстро - возможно, даже сегодня), вторая - полноценный распознанный текст с поиском и прочая (этим занимается юзер NiKa).