[Перевод] Реверс-инжиниринг микросхем по фото
Тем, кто любит гикпорн-фотографии от BarsMonster и его товарищей по цеху, наверняка интересно научиться расшифровывать логическую схему по её фотографии. Например, что делает вот этот кусочек Z80?
Яркие вертикальные полосы — это металлические проводники; горизонтальные полосы, от которых видны только тёмные границы — это проводники из поликремния; область неправильной формы с ярко-чёрной границей — это легированная часть кремниевой подложки; желтоватые круги — это соединения между слоями микросхемы.
Каждый транзистор образован поликремниевым проводником, пересекающим область легированного кремния:
По традиции, такие транзисторы называют MOSFET («металл-оксид-полупроводник»), даже когда затвор не металлический, а поликремниевый. Автор вполушутку предположил, что ни один производитель поликремниевых транзисторов не хотел называть их POS.
Работа транзистора заключается в том, что когда к затвору приложено положительное напряжение, то легированная область, включающая исток и сток, становится проводящей; когда напряжение с затвора снято, то исток и сток размыкаются.
Вот та же самая фотография с размеченными транзисторами и проводниками: (я добавил в авторскую иллюстрацию обозначения соединений между слоями)
Из вертикальных металлических проводников задействованы (соединены с полупроводниковым слоем) только три; остальные просто проходят мимо. Красный проводник за рамками кадра соединён с питанием, синий — с землёй. Поликремниевые проводники, входящие в кадр, подписаны буквами; транзисторы, затворы которых образованы этими проводниками, подписаны цифрами. Меня поначалу сбивало с толку то, что — в отличие от принципиальной схемы — на микросхеме у транзисторов нет чётких границ: исток одного транзистора является одновременно стоком следующего транзистора.
Голубая (легированная) область сверху от проводника A соединена в точке ⦹ с заземлённым металлическим проводником. Когда на A есть напряжение, то открываются транзисторы 1 и 6, и вся голубая область сверху от проводника B становится проводящей, т.е. заземляется. При этом заземляется и жёлтый металлический проводник, соединённый с голубой областью в точке ⦷.
Когда на проводнике B есть напряжение, то открываются транзисторы 2 и 7, и жёлтый проводник заземляется через соединения ⦷ и ⊗. Наконец, когда на C есть напряжение, то открываются 3 и 8, и жёлтый проводник заземляется через ⊜ и ⊗. В итоге жёлтый проводник заземляется, когда .
Проводник Out соединён с голубой областью в точке ⊛. Эта точка соединена через ⦹ с землёй, когда открыты все три транзистора 6, 7, 8, т.е. когда .
Наконец, точка ⊛ соединена с жёлтым проводником, когда открыт один из транзисторов 4 или 5, т.е. когда . Это значит, что ⊛ будет заземлена через жёлтый проводник, когда . Если же точка ⊛ не заземлена ни через жёлтый проводник, ни через правую верхнюю часть голубой области, то соединение ⊚ с красным проводником подтягивает её к положительному напряжению: длинная узкая полоска легированного кремния даёт нужное сопротивление. Автор не упоминает, что проводник Out, пересекая узкую голубую полоску, образует ещё один транзистор: когда Out заземлён, то этот дополнительный транзистор закрывается, и подтяжка отключается.
Я нарисовал принципиальную схему, в целом сохраняя расположение элементов:
В итоге на Out получается положительное напряжение, когда :
Эта схема образует блок однобитного АЛУ: входы A, B и C — операнды, D и E выбирают операцию (AND либо OR). В четырёхбитном АЛУ процессора Z80 эта схема повторяется четырежды:
На этом снимке Т34ВМ1 (советского клона Z80, разобранного и сфотографированного BarsMonster) видно, что и остальные блоки в АЛУ Z80 повторяются по четыре раза.
Именно так, размечая по фотографии микросхемы транзистор за транзистором, был создан онлайн-симулятор Visual 6502.