Докладуюсь: книжка приехала.
Желающим помочь оцифровывать - просьба написать в личку, сделаем папку в Дропбоксе и помаленьку будем сканить...
Вид для печати
Докладуюсь: книжка приехала.
Желающим помочь оцифровывать - просьба написать в личку, сделаем папку в Дропбоксе и помаленьку будем сканить...
Берем 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 не прорисовывался.
Потому что бывают интегралы не берущиеся аналитически, а только численно :)
Не совсем реверса. Но вскрываем, да.
Мы их на золото пилим (и прекрасно видим и узоры меди унутре, коя не нужна со всеми ихними интерконнектами - и подключения к кристаллу, за коими собственно туда внутрь и лазим). Пачками-сс. :)
А брутфорсом они решаются вообще все без исключения. Включая еще не придуманные. Но есть ньюанс, что говорится. :)