[Перевод] Реверс-инжиниринг микросхем по фото

Тем, кто любит гикпорн-фотографии от BarsMonster и его товарищей по цеху, наверняка интересно научиться расшифровывать логическую схему по её фотографии. Например, что делает вот этот кусочек Z80?

fcf584c2b2fef43ed354031731b31d87.png

Яркие вертикальные полосы — это металлические проводники; горизонтальные полосы, от которых видны только тёмные границы — это проводники из поликремния; область неправильной формы с ярко-чёрной границей — это легированная часть кремниевой подложки; желтоватые круги — это соединения между слоями микросхемы.

Каждый транзистор образован поликремниевым проводником, пересекающим область легированного кремния:

f9522538c4df974c6a581c893e069650.png

По традиции, такие транзисторы называют MOSFET («металл-оксид-полупроводник»), даже когда затвор не металлический, а поликремниевый. Автор вполушутку предположил, что ни один производитель поликремниевых транзисторов не хотел называть их POS.


Работа транзистора заключается в том, что когда к затвору приложено положительное напряжение, то легированная область, включающая исток и сток, становится проводящей; когда напряжение с затвора снято, то исток и сток размыкаются.

Вот та же самая фотография с размеченными транзисторами и проводниками: (я добавил в авторскую иллюстрацию обозначения соединений между слоями)

kvuwftanqoi0hcpa1u2zknxqony.pngfcf584c2b2fef43ed354031731b31d87.png

Из вертикальных металлических проводников задействованы (соединены с полупроводниковым слоем) только три; остальные просто проходят мимо. Красный проводник за рамками кадра соединён с питанием, синий — с землёй. Поликремниевые проводники, входящие в кадр, подписаны буквами; транзисторы, затворы которых образованы этими проводниками, подписаны цифрами. Меня поначалу сбивало с толку то, что — в отличие от принципиальной схемы — на микросхеме у транзисторов нет чётких границ: исток одного транзистора является одновременно стоком следующего транзистора.

Голубая (легированная) область сверху от проводника A соединена в точке ⦹ с заземлённым металлическим проводником. Когда на A есть напряжение, то открываются транзисторы 1 и 6, и вся голубая область сверху от проводника B становится проводящей, т.е. заземляется. При этом заземляется и жёлтый металлический проводник, соединённый с голубой областью в точке ⦷.

Когда на проводнике B есть напряжение, то открываются транзисторы 2 и 7, и жёлтый проводник заземляется через соединения ⦷ и ⊗. Наконец, когда на C есть напряжение, то открываются 3 и 8, и жёлтый проводник заземляется через ⊜ и ⊗. В итоге жёлтый проводник заземляется, когда $(A\lor B\lor C)$.

Проводник Out соединён с голубой областью в точке ⊛. Эта точка соединена через ⦹ с землёй, когда открыты все три транзистора 6, 7, 8, т.е. когда $(A\land B\land C)$.

Наконец, точка ⊛ соединена с жёлтым проводником, когда открыт один из транзисторов 4 или 5, т.е. когда $(D\lor E)$. Это значит, что ⊛ будет заземлена через жёлтый проводник, когда $\left(\left(A\lor B\lor C\right)\land\left(D\lor E\right)\right)$. Если же точка ⊛ не заземлена ни через жёлтый проводник, ни через правую верхнюю часть голубой области, то соединение ⊚ с красным проводником подтягивает её к положительному напряжению: длинная узкая полоска легированного кремния даёт нужное сопротивление. Автор не упоминает, что проводник Out, пересекая узкую голубую полоску, образует ещё один транзистор: когда Out заземлён, то этот дополнительный транзистор закрывается, и подтяжка отключается.

Я нарисовал принципиальную схему, в целом сохраняя расположение элементов:

kvuwftanqoi0hcpa1u2zknxqony.pngy8qdb-fgmxmdpauysiz8qzvdmf0.png

В итоге на Out получается положительное напряжение, когда $\lnot\left(\left(\left(A\lor B\lor C\right)\land\left(D\lor E\right)\right)\lor\left(A\land B\land C\right)\right)$:

dqleqfyphewy8xnhfe7-pmzuhvi.png

Эта схема образует блок однобитного АЛУ: входы A, B и C — операнды, D и E выбирают операцию (AND либо OR). В четырёхбитном АЛУ процессора Z80 эта схема повторяется четырежды:

7xyx-oqek5harmviovchdc35_e8.jpeg

На этом снимке Т34ВМ1 (советского клона Z80, разобранного и сфотографированного BarsMonster) видно, что и остальные блоки в АЛУ Z80 повторяются по четыре раза.

Именно так, размечая по фотографии микросхемы транзистор за транзистором, был создан онлайн-симулятор Visual 6502.

© Habrahabr.ru