Реверсинжинеринг топологии микросхем

Этот пост был навеян вопросами, которые задавались в топике Как «открыть» микросхему и что у неё внутри?

Реверсинжинеринг микросхем по их топологии использовался и используется не только на территории бывшего Советского Союза, но и в США, Европе и в Китае. Применяется он и по сей день. «Зачем изобретать колесо?» Он заключается в воссоздании электрической схемы микросхемы по её топологии. Это может быть как КМОП, так и биполярная технология. Но только одна электрическая схема для воссоздания микросхемы не пригодна. Надо научиться её моделировать. Разобраться как всё это работает целиком.

В России реверсинжинерят сложные гражданские микросхемы США (да, это делают все, кому не лень), США с радостью готово заполучить наши уникальные военные микросхемы (да-да, и таких очень много), Китай просто копирует всё, что только к нему может попасть. Просто таким образом разработка достаточно сложной, необходимой заказчику, микросхемы ускоряется в несколько раз. Когда есть представление о том, что нужно от микросхемы, остаётся найти близкий зарубежный аналог, восстановить его и переделать под свои нужды. Так же микросхему можно сделать и радиоционно-стойкой (это уже закладывается в технологическом маршруте изготовления).

В принципе одному человеку достаточно успешно можно реверсинжинерить микросхему с топологическими нормами до 0.5 мкм и количеством транзисторов на кристалле до 5 тыс штук за 3 месяца (включая разборку того, как всё это чудо работает).

Воссоздание электрической схемы производится путём изучения и сопоставления изображений кристаллов при различных стравленных слоях металлизаций (обычно, когда параметры транзисторов очевидны). Обычно используется до 3х слоёв металлизации. Это может быть как аллюминий, каждый слой которого разделяется диэлектриком (диоксид кремния), так и поликремний, а так же сочетания из нескольких типов металлизаций. Если параметры транзисторов не очевидны, то необходимо будет изучать поперечный срез кристалла для понимания структуры транзистора.

Приведу пример восстановления электрической схемы маленького кусочка кристалла микросхемы драйвера полумоста, выполненного по технологии КМОП 1 мкм.

Топология до стравливания алюминия (т.е. имеем 2й слой разводки).



Топология после стравливания алюминия (имеем 1й слой разводки — поликремний).



Работая с данной топологией выясняем где здесь транзисторы p- и n-типов, материал резисторов (для определения сопротивления) и видим стабилитрон. После восстановления электрической схемы имеем следующее:



Далее анализируем как работает этот кусочек схемы и понимаем, что этот элемент — защита от пониженного напряжения питания. Достаточно толковая схемка. И очень простая к восстановлению и расшифровке.

Имея хороший микроскоп восстановить можно практически всё. Сложно, конечно, если присутствует «защита от копирования» — уловки разработчиков. Главное потом — проанализировать и понять, как схема работает.

Спасибо за внимание! С удовольствием отвечу на Ваши вопросы!
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 51

    +21
    Тема очень интересная, но пример напоминает известную картинку «Как нарисовать сову»: вот у нас первый слой, вот второй слой, а потом — хоп, магия! — сразу готовая схема. Хотя бы подпишите, где на кристалле какой элемент…
      +30
      Сходство определенно существует:
      image
        +3
        Наиболее информативный скрин (поликремний) обновил, обозначив на нём типы транзисторов. Или обозначить на топологии номер каждого транзистора? В том и магия :)))
          +5
          Будьте так добры, объясните эту магию.

          Иначе выходит, что людям «в теме» ваша статья ни к чему, потому что всё и так очевидно (по вашим собственным словам), а людям «не в теме» она ни к чему, потому что ничего не объясняет.

          Хотя бы транзисторы подпишите — сейчас «карманов», как вы их называете, обозначено 18, а транзисторов на схеме 16, и вообще непонятно, что к чему.
        +3
        Какие реактивы применяются для стравливания различных видов слоев? Как обеспечивается равномерность стравливания слоя?
          0
          К сожалению, уже не помню, чем травили конкретно и в каких условиях. Я только наблюдал. Могу попытаться поднять записи на этот счёт.

          Как вы можете увидеть на фотографии без алюминия — равномерность там — это понятие достаточно растяжимое. Локально стравливание достаточно равномерное (для куска схемы площадью в 1/1000 от размера кристалла). В целом же по кристаллу стравливание выходит не совсем равномерно. Бывает, что аллюминий в некоторых местах не дотравливается до конца. С чем это связано конкретно сейчас уже не скажу.
            0
            Не хочу зря вас напрягать. Просто было любопытно.
            +1
            1) Изоляция между слоями соединений травится в плавиковой кислоте или буферном травителе ( en.wikipedia.org/wiki/Buffered_oxide_etch )
            2) Алюминий — травится щелочами, и некоторыми разбавленными кислотами.

            Главное точно знать скорость травления, и контролировать концентрацию раствора и температуру чтобы получать ожидаемые результаты.

            А равномерность — никак, там же изначально все ровно, и травится также достаточно равномерно. Тем более если травить нужно всего пару слоев.
            +6
            Я бы хотел:
            1) Фото каждого элемента, по отдельности, резистор, диод, варикап, еще чего-нить.
            2) Фото очень похожих но разных элементов с описанием какой и чем отличается от другого и как не спутать, т.е. на что обратить внимание?
            3) Как узнавать номинал рассматриваемой единицы, хотя бы примерно?
              0
              1. В принципе, если работал с топологиями похожих норм и технологий, большинство элементов узнаёшь просто на глаз, а так у нас в НТЦ этим занимались технологи, им это по образованию положено знать. Ну, я ни разу не специалист, просто отрабатывал распределение на крупном предприятии радиоэлектронного прома и по приведённым фото, могу назвать почти все элементы.
              2. Ну вот так на глаз и определяются, иногда нужно посмотреть на несколько слоёв, у нас делали ещё так называемый декоративный слой, т.е. обрабатывали какой-то из слоёв химикатами, чтобы разные материалы имели чётко отличный окрас. Ну, а внимание, на что: затворы, контакты, карманы, на форму элементов…
              3. Рассчитывается исходя из размеров и материалов.
                +7
                Ваш ответ расчитан на специалиста. Сужу на основе Ваших:
                >>если работал с топологиями похожих норм и технологий

                Специалисту этой статьи читать не нужно! Статья была написана чтобы дать понимание более широкому кругу лиц, кто с этим никогда не сталкивался. Им это «на глаз» не осилить. А на хабре за «ни осилил» иногда еще и минусуют! :) Я прошу как человек, который от этой тематики далек, но хочет лучше это понять.

                Также мне непонятно: могу ли я этим дома занимать? Если да, то какой минимум для новичка? Чтото купить или что-то можно самому смастерить?

                В детстве травил платы, то усилитель на лампах, то трель соловья. Поэтому представляю о чем речь, но нет никакого понимания как это можно сделать дома!
                  0
                  Дома, я думаю, этим можно заниматься. Но для этого понадобится сильный микроскоп и возможность делать с него фотографии (обычно в таких микроскопах предусмотрена установка зеркальной камеры после линзы микроскопа). Так же понадобится «хим лаборатория» для травления корпусов микросхем (вся иностранная гражданка делается в пластике, военные микросхемы делаются в металло-керамике, но там уже можно столкнуться с достаточно интересными субстанциями диэлектрического наполнителя) и стравливания слоёв с кристалла (намного более тонкая процедура, чем травление корпуса).
                    0
                    Уточните пожалуйста: а что это за субстанции?
                      +1
                      Это могут быть субстанции двух типов — твёрдый (застывший) лак типа KF 1280 и других марок или же это может быть двух-компонентый силиконовый гель (более предпочтительный диэлектрик, применяемый в микросхемах с рабочим напряжением > 1000 В. Но у таких гелей плохое поведение в около-военных температурах (125 С).
                    0
                    Я думаю частично, да, можете и дома заняться. Я не совсем в курсе, у нас фотографии топологий были как входные данные для начала разработки, но для фото высокого разрешения и стравливания слоёв кристалла вроде нужно очень не слабое оборудование, которое, конечно, и стоит соответственно. Но, думаю, можно договориться на производстве за разумные деньги, если таковое, конечно имеется поблизости. А, если, фото уже у вас на руках, остальное вообщем это ваши знания. Не стану советовать литературу, так как учился в университете давно и работаю не по специальности, но что-то типо университетского курса «Проектирование и производство ИМС» должно очень помочь в этом вопросе.
                  0
                  Не очень понял, для чего необходимо фото каждого элемента в отдельности? Все вместе они очень гармонично смотрятся.

                  Для понимания «какой элемент есть что» (в частности транзистор) необходимо определиться с типом подложки, которая используется, а так же с типом основного кормана. Таким образом мы понимаем, какой транзистор находится прямо в этом кармане, а какой получается в дополнительном кармане (n-канальные транзисторы находится в дополнительном p-кармане (Si p-типа)). Аналогично и для биполярных транзисторов. Так же на p-канальный транзистор может указывать наличие охраны вокруг него.

                  Номанал какой единицы вас интересует? Размер транзистора или значение сопротивления резистора?
                    0
                    Фотки отдельных элементов нужны для того же, для чего и саму статью читают — для удовлетворения любопытства. Очень ведь любопытно, правда!
                      0
                      Я просто не понял, откуда взять вам отдельные фотки транзисторов, резисторов и прочее… Я работаю с микросхемой. С фотографией топологии микросхемы. Откуда там взяться отдельно стоящим транзисторам и резисторам? (нет, конечно и такие схемы есть, но это уже от кривости рук разработчика) Можно мне конечно их взять и нагуглить. Но это уже будет не своё… А тут из фотографии вырезать маленький квадратик и помещать его отдельным ресунком… всё равно размер будет такой же — картинка здесь в 100% масштабе. Увеличение её приведёт к потере качества.

                      А так на второй картинке сейчас наглядно показано где n-канальные и p-канальные транзисторы, резисторы и стабилитрон. Всё, вроде бы, видно отчётливо… Вот я и не понял, зачем нужны фотографии отдельных элементов.
                        +1
                        видимо, недостаточно наглядно… там лишь буквы n поверх нескольких пересекающихся прямоугольничков,
                        А какие из этих прямоугольничков — транзистор — и где его границы?

                        Но это, видимо, вопросы к отдельной статье по азам микроэлектроники, и более того — таких статей уже наверняка при желании нагуглить можно over 9000…
                          0
                          Вот, например, видео про основы n-p переходов:
                            0
                            Советские образовательные фильмы — это чудо! Смотришь как сказку))
                            «Плох тот учёный, который не может объяснить суть своей теории пятилетнему ребёнку доступными для него словами(К.Воннегут)» — это может служить слоганом многих подобных фильмов того времени)))
                              0
                              Не так всё радужно в тех роликах, я про это уже недавно писал ( habrahabr.ru/post/158161/#comment_5433535 )
                                0
                                Это та самая лекция из-за которой я вставил слово «многих»))))) Кроме шуток.
                                Но не думаю, что ее можно было бы рассказать без математики — того самого матана, который почти все позабыли уже к выпуску/по окончанию курса физики просто по причине его редкого применения…
                  +1
                  Как восстанавливаются параметры элементов?
                    +2
                    Могу предположить, что тупо «по линеечке», в случае наличия PDK (FDK) фабрики, на которой изготовлен оригинал микросхемы, потому что в КМОП схемах параметры транзисторов определяются двумя основными параметрами — длиной и шириной канала. Площадь стока и истока — вещь уже вторичная. Аналогично и для резисторов, зная его геометрические параметры, можно по формуле посчитать его сопротивление (формулу можно выдрать из правил PEX для Calibre/Assura или что они там используют).
                    Всё гораздо сложнее в случае отсутствия доступа к документации к тех. процессу, тогда начинаются всякие извращения с измериловкой, дабы получить параметры.
                      +1
                      Ну, так в основном и извращаются, по крайней мере у нас на «Интеграле» технологи так и извращались.
                        0
                        В основном для иностранных микросхем таких фирм как IR, Texas и прочие никаких PDK, а уж тем более их параметров (по крайней мере в открытом доступе) не существует. Эти фирмы не осуществляют изготавление сторонних разработок на своих мощностях, следовательно и PDK на технологии они никому не раздают.
                        Если случайно напасть на микросхему, изготовленную на мощностях какого-нибудь XFAB, то, конечно, параметры понять сразу достаточно просто.
                        +4
                        Параметры элементов восстанавливаются «на глазок». Конкретно параметры какого-либо транзистора не восстановить. Единственная возможность это сделать — если разработчик позаботился напихать в свою микросхему тестовые контактные площадки. Тогда, в принципе, можно попытаться что-то выудить на ПНХТ.

                        В основном же параметры оцениваются по логике работы схемы. Смотришь цепь, видишь на что она нагружена, оцениваешь какой ток какого порядка выдаёт транзистор на перезарядку ёмкости дальнейшей цепи. Когда в технологии используются маломощные транзисторы, разработчики применяют всевозможные схемы для увеличения тока в цепи (например, последовательно включенные инверторы, состоящие из многих параллельно включенных транзисторов. Количество параллельно включенных транзисторов от инвертора к инвертору увеличивается. на выходе этой системы получаем необходимый ток).

                        Номиналы резисторов и конденсаторов оцениваются исходя из типовых значений ёмкости или сопротивления для материалов, из которых они изготовлены, на квадрат их площади.
                          0
                          В резистор наверное можно просто чувствительным омметром ткнуть?
                            +3
                            Ткнуть-то можно, но сопротивление чего будет измеряться? Не факт, что резистора. Значительные искажения может внести цепь, в которую этот резистор подключен.
                            На моей памяти только одна схема, при воссоздании которой значение сопротивлений было досконально важно — ультрапрецизионный операционный усилитель.
                            А так обычно достаточно оценки резистора с прогрешностью в 100 Ом — 1 КОм (разброс в Омах на квадрат площади). Конечно бывают специфические устройства (например, как тут — делитель напряжения). Но опять же, для него главное соотношение резисторов, а не их номинал.
                          0
                          А как обстоят дела с «передиранием» тонких тех. процессов? Просто судя по тендерам, сейчас что-то толще 180нм вояк почти не интересует, за редким исключением, конечно.
                          Радиоэлектронное направление покрывается двумя федеральными целевыми программами — это гражданская ФЦП «Развитие электронной компонентной базы и радиоэлектроники» на 2008 — 2015 годы и «военная» (развитие ОПК) подпрограмма федеральной целевой программы № 1. Мне довелось просматривать выигранные тендеры за 2011 год по этим двум ФЦП (я даже распарсил резуьтаты и собрал кое-какую статистику). Могу сказать что в 2011 году по этим двум ФЦП было разыграно тендеров на общую сумму до 40 млрд. рублей. Что касается именно микроэлектроники — 75% заказов приходится на «военку», 25% — на гражданку. Естественно, что кто-то со стороны выиграть данные тендеры не может, нужно иметь очень хорошие связи.
                            0
                            Тонкий тех процесс передрать можно так же, как и не тонкий. Микроскоп посильнее, терпения побольше. Другой вопрос как его в России изготовить? Разве что только Минский Интегралл. Ангстрем и Микрон это не сделают (на сколько я помню, по информации 3х летней давности — денег хватило только на оборудование). В комнаты его поставили, но не подключили. Как сейчас дела обстоят — не знаю.
                              +1
                              Насколько мне известно, у Интеграла год назад был только 0.35 мкм, да и то PDK был в стадии активного пиления. Сейчас у Микрона есть 0,25 мкм КНИ в активной разработке, и вроде как есть коммерческий 0.18 мкм. У НИИСИ РАН есть КНИ-шный тех процесс 0.35 мкм. В прошлом году вообще был разыгран тендер (НИР) на разработку тех. процесса 65 нм =)
                                0
                                Да, вы правы — у Интеграла сейчас всё так и осталось (0.35 для КМОП). Но у Интеграла есть другая прелесть — 40 В биполяр :)
                                Т.е. Микрон по запросу может этот коммерчиский 0.18 предоставить?
                                А в тендере на НИР не было указано, время предоставления результатов? И кто его выиграл, если эта информация доступна?
                                  0
                                  На Микроне 0.18 вполне себе коммерческий.
                              +2
                              вояк как раз тонкий процесс меньше интересует — меньше техпроцесс, меньше надежность — меньше ёмкости, больше полоса частот, больше помех, меньше логические уровни, меньшее напряжение питания, меньшее напряжение нужно для пробоя транзистора — попадет такая ракета под луч радара и транзисторы просто сгоряют и ракета уже не летит куда надо
                                0
                                Действительно, воякам тех процесс вообще не интересен. Это уже вопрос разработчика. Но для большинства военных схем мелкие тех процессы не нужны. Ведь, действительно, существует такая вещь как «уровень питания». И всё это обычно прописывается в ТЗ. Кстати, для защиты от лучей радара и прочих наводчиков успешно применяются цельно-металлические корпуса с ЭМ защитой.
                                  +1
                                  В случае ракет, скорей всего вы абсолютно правы. Но вояки чуть ли не основной потребитель:
                                  1) встраиваемых процессоров и микроконтроллеров (например, пресловутый Комдив и Миландровский ARM);
                                  2) DSP (ключевое слово для поиска Neuromatrix, это всего лишь один маленький пример из многих);
                                  3) быстрых высокоразрядных ЦАП/АЦП с низкими уровнями дифференциальной и интегральной нелинейности (ибо без SDR сейчас никуда).
                                  4) блоков статической памяти больших объёмов (динамическая вояками практически не используется);
                                  Причём многое из этого они хотят в радиационно-стойком исполнении, так что это всё завязано на КНИ тех. процессы, применяются специальные правила разработки топологии (смотреть в сторону топологии транзисторов типа «dog bone»), специальные ячейки памяти состоящие не из 6 транзисторов, а из гораздо большего числа, специальные схемы триггеров с мажоритарной системой (по сути три триггера в одном). Для блоков памяти применяются специальные блоки фонового авто-восстановления данных с использованием кодов Хсяо/Хемминга, которые работают постоянно, если в данный момент нет обращения к памяти, дабы избежать накопления ошибок.

                                  Вот вы знаете на чём строятся военные отечественные радиостанции? Смех смехом, а там Texas Instruments OMAP3 500 MHz с Linux на борту. И наши аппаратурщики постоянно пишут бумажки, с обоснованием невозможности использования отечественных компонентов, т.к. аналогов просто нет. А те параметры что они просят, на толстых процессах получить почти нереально.
                                +11
                                по сабжу: есть такой проект www.visual6502.org/ они делают тоже самое, только потом переводят слои в свой эмулятор и делают рабочую JS модель процессора. Пример: www.visual6502.org/JSSim/index.html

                                Так же на сайте и вики есть очень много фотографий старых процессоров.
                                  +3
                                  Неужели подобное передирание до сих пор эффективно? Разве что «подсмотреть» как сделаны какие-нибудь хитрые специализированные решения (ну типа аналоговой части ЦАПа какого-нибудь гигагерцового). А копировать процессор общего назначения и т.п. — это ведь адова работа. Трассируются они автоматически и содержат миллионы и более транзисторов, а восстанавливать все это — вручную, как я понимаю…
                                    +1
                                    Китайцы только этим и занимаются. Боюсь, что каждая зарубежная топология, заказ на изготовление которой приходит на китайскую Фаундри досконально изучается на предмет уникальности.

                                    Вот для «подсмотреть» в основном и применяется. Тот же IR на своих драйверах навешивал интересные решения борьбы с токами утечки в схеме в полуоткрытом состоянии. Причем место не очевидное. Если не посмотреть и не изучить заранее, то 2 года на разработку, запуск партии могут уйти коту под хвост. Анализируешь полученные результаты измерений и бац… высокий ток потребления в динамическом состоянии (момент переключения схемы). Иди ищи, что не так. Исправляй. Запускай новую партию.
                                    А тут уже готовое решение когда-то возникнувшей у них проблемы.
                                      0
                                      Нет, есть и автоматическое восстановление. Chipworks имеет такой софт, но они его естественно никому не дадут ;-)
                                      –2
                                      Как же офигенно — хочется уже заиметь себе микроскоп такой) Хотелось бы отметить про считывание флеша — существует и такой способ воровства прошивок от считывания — почти всегда в микропроцессорной технике — главное это программа и чипы защищают от считывания. Но если не удаётся считать программу штатными средствами — можно раскурочить микросхему и посмотреть флеш память электронным микроскопом. Был недавно на семинаре Analog Devices, где они представляли процессор BF609 — так вот — у них флеш память сделана таким образом, что даже считывание её под микроскопом не позволит восстановить программный код — перед запуском — программу декодирует специальный аппаратный блок, а хранится она внутри контроллера в закодированном виде.
                                      • UFO just landed and posted this here
                                          +1
                                          … делают «пшик» и нету исследователя :)
                                            0
                                            Бывает хитрая защита на верхнем уровне металлизации — длинная змейка, когда её травишь — данные пропадают, так что нельзя стравить, подключиться напрямую к блоку флеш памяти и слить данные.
                                              0
                                              Пожалуйста, прокомментируйте историю о хаке спектрумовской ULA в 1984 году с целью реверсинжиниринга и воссоздания его на рассыпухе, описанной вот здесь — www.zxpress.ru/article.php?id=636

                                              С помощью одного только осциллографа…

                                              Часть статьи
                                              Кто-то из иностранных студентов привез
                                              фирменный Спектрум сюда, в ОКБ. Этот Женя
                                              контактировал с Натоптой Евгением Евгенье-
                                              вичем, который, увидев этот компьютер,
                                              попросил Женю взять его себе домой поиг-
                                              раться… Мы берем с работы 99-й осциллог-
                                              раф, тащим его туда и буквально проходим
                                              по всем ножкам, зарисовываем осциллограммы
                                              этой ULA'шки. Кроме того, у нас была ин-
                                              формация по структуре программного обеспе-
                                              чения: буквально был исписан один листок.
                                              Еще мы считали информацию из ROM компьюте-
                                              ра. И начали работать. Евгений Евгеньевич
                                              Натопта занимался программным обеспечени-
                                              ем, а я, молодой еще тогда специалист, — конкретно железом. Собственно разработкой.
                                              По осцилограммам восстанавливал схему.

                                              > Как именно? Сколько времени вам потре-
                                              бовалось? Это же сложно!

                                              ЮД> Это было недолго. Месяц максимум.

                                              > Прямо, все возможные варианты на вхо-
                                              дах и соответствующие им варианты на выхо-
                                              дах и всего за месяц!?

                                              ЮД> Да, да, да, месяц! Но мы работали! Мы
                                              работали так: с утра приходишь в девять, и
                                              до одиннадцати, пока не выгонял охранник,
                                              и в субботу, и в воскресенье. Вот это была
                                              работа! Кстати, интересный у нас тогда был
                                              подход к синтезу схемы: мы не рисовали
                                              схему — мы ее паяли. И вся схема всегда
                                              была в голове. Уже, как она заработала,
                                              так ты к ней и не возвращался, главное,
                                              чтобы работала. Тяжело было эту рутину
                                              сделать — нарисовать схему.
                                                0
                                                На мой взгляд, человек либо мегамозг, один на триллион, либо немного фантазер.
                                            0
                                            Вспоминается эпизод когда инженеры VAX оставили нашим послание прямо в чипе:
                                            micro.magnet.fsu.edu/creatures/pages/russians.html
                                              +1
                                              В СССР/России делали такие микросхемы КР1801ВП1 — это базовый матричный кристалл (БМК), и разные вариации последнего слоя. Такие матрицы стояли в бытовых компьютерах БК-0010/0011М, школьных УКНЦ, контроллерах флоппи и ещё много в чём. Эмуляторы конечно этого дела есть, но они не учитывают всех нюансов. А вот если реверс-инжениринг сделать — можно было бы обеспечить почти 100% совместимость.

                                              Ещё одна тема — советские процессоры, такие как 1801ВМ1, ВМ2, ВМ3. Каждая машинная команда в них представлена программой в микрокоде. В принципе, этот микрокод можно было бы тоже считать, и получить 100% совместимый эмулятор.

                                              Конечно, всё это большие, трудоёмкие задачи. Но это стоит того, ради сохранения нашей истории для будущих поколений.
                                                –1
                                                Вот никогда не понимал, зачем реверсинжинирить? Ну, можно посмотреть, как устроено, ну можно посмотреть всякие трюки и принципы построения топологии. Но восстанавливать схему? Зачем? Только для совместимости?

                                                Ведь гораздо прощще и быстрее сделать своё по уму, чем ковыряться с чужим, пытаясь повторить.

                                                Only users with full accounts can post comments. Log in, please.