Проектирование интегральных схем , проектирование полупроводников , проектирование чипов или проектирование ИС — это подраздел электронной инженерии , охватывающий конкретные методы проектирования логики и схем, необходимые для проектирования интегральных схем или ИС. ИС состоят из миниатюрных электронных компонентов , встроенных в электрическую сеть на монолитной полупроводниковой подложке с помощью фотолитографии .
Проектирование ИС можно разделить на широкие категории проектирования цифровых и аналоговых ИС. Проектирование цифровых ИС предназначено для производства таких компонентов, как микропроцессоры , ПЛИС , памяти ( ОЗУ , ПЗУ и флэш-память ) и цифровых ASIC . Цифровое проектирование фокусируется на логической корректности, максимизации плотности схем и размещении схем таким образом, чтобы сигналы синхронизации и синхронизации маршрутизировались эффективно. Проектирование аналоговых ИС также имеет специализацию на проектировании силовых ИС и проектировании радиочастотных ИС. Проектирование аналоговых ИС используется при проектировании операционных усилителей , линейных регуляторов , фазовых автоподстроечных схем , генераторов и активных фильтров . Аналоговое проектирование больше касается физики полупроводниковых приборов, такой как усиление, согласование, рассеивание мощности и сопротивление . Точность усиления и фильтрации аналогового сигнала обычно имеет решающее значение, и в результате аналоговые ИС используют активные устройства большей площади, чем цифровые конструкции, и обычно имеют меньшую плотность схем. [1]
Современные ИС чрезвычайно сложны. Средний чип настольного компьютера по состоянию на 2015 год имел более 1 миллиарда транзисторов. Правила относительно того, что можно и что нельзя производить, также чрезвычайно сложны. Обычные процессы ИС 2015 года имеют более 500 правил. Кроме того, поскольку сам процесс производства не полностью предсказуем, проектировщики должны учитывать его статистическую природу. Сложность современного проектирования ИС, а также давление рынка на быстрое производство проектов привели к широкому использованию автоматизированных инструментов проектирования в процессе проектирования ИС. Проектирование некоторых процессоров стало достаточно сложным, чтобы его было трудно полностью протестировать, и это вызвало проблемы у крупных поставщиков облачных услуг. [2] Короче говоря, проектирование ИС с использованием программного обеспечения EDA — это проектирование, тестирование и проверка инструкций, которые должна выполнять ИС. Искусственный интеллект был продемонстрирован в проектировании микросхем для создания макетов микросхем, которые являются местами расположения стандартных ячеек и макроблоков в микросхеме. [3]
Проектирование интегральных схем включает создание электронных компонентов, таких как транзисторы , резисторы , конденсаторы и соединение этих компонентов на куске полупроводника, как правило, кремния . Метод изоляции отдельных компонентов, сформированных в подложке, необходим, поскольку кремний подложки является проводящим и часто образует активную область отдельных компонентов. Двумя распространенными методами являются изоляция pn-перехода и диэлектрическая изоляция. Необходимо уделять внимание рассеиванию мощности транзисторов и сопротивлений межсоединений и плотности тока межсоединений, контактов и переходных отверстий, поскольку ИС содержат очень маленькие устройства по сравнению с дискретными компонентами, где такие проблемы менее существенны. Электромиграция в металлических межсоединениях и повреждение крошечных компонентов электростатическим разрядом также вызывают беспокойство. Наконец, физическая компоновка определенных подблоков схемы обычно имеет решающее значение для достижения желаемой скорости работы, для отделения шумных частей ИС от тихих частей, для балансировки эффектов выделения тепла через ИС или для облегчения размещения соединений со схемой за пределами ИС.
Типичный цикл проектирования ИС включает несколько этапов:
Сфокусированные ионные пучки могут использоваться во время разработки чипов для создания новых соединений в чипе. [4] [5]
Грубо говоря, проектирование цифровой ИС можно разделить на три части.
Обратите внимание, что второй шаг, проектирование RTL, отвечает за то, чтобы чип делал все правильно. Третий шаг, физическое проектирование, вообще не влияет на функциональность (если сделано правильно), но определяет, насколько быстро работает чип и сколько он стоит.
Стандартная ячейка обычно представляет собой один логический вентиль , диод или простые логические компоненты, такие как триггеры или логические вентили с несколькими входами. [6] Использование стандартных ячеек позволяет разделить конструкцию чипа на логические и физические уровни. Компания без собственных производственных мощностей обычно работает только над логическим проектированием чипа, определяя, как соединены ячейки, и функциональность чипа, следуя правилам проектирования литейного завода, на котором будет изготовлен чип, в то время как физическое проектирование чипа, сами ячейки, обычно выполняются литейным заводом и включают в себя физику транзисторных устройств и то, как они соединены для формирования логического вентиля. Стандартные ячейки позволяют разрабатывать и модифицировать чипы быстрее, чтобы реагировать на требования рынка, но это достигается за счет более низкой плотности транзисторов в чипе и, следовательно, больших размеров кристалла. [6]
Литейные заводы поставляют библиотеки стандартных ячеек компаниям без собственных производственных мощностей для проектирования и для производства их конструкций с использованием мощностей литейного завода. Литейный завод может предоставить комплект для проектирования процессов (PDK), который может включать в себя библиотеку стандартных ячеек, а также спецификации ячеек и инструменты для проверки конструкции компании без собственных производственных мощностей на соответствие правилам проектирования, указанным литейным заводом, а также для ее моделирования с использованием ячеек литейного завода. PDK могут предоставляться в соответствии с соглашениями о неразглашении. Макросы/Макроячейки/Макроблоки, [7] Массивы макроячеек и IP-блоки обладают большей функциональностью, чем стандартные ячейки, и используются аналогично. Существуют программные макросы и аппаратные макросы. Стандартные ячейки обычно размещаются после стандартных рядов ячеек.
Процесс разработки интегральной схемы (ИС) начинается с определения требований к продукту, проходит через определение архитектуры, реализацию, запуск и, наконец, производство. Ниже описаны различные фазы процесса разработки интегральной схемы. Хотя фазы представлены здесь в прямом виде, в действительности существует итерация , и эти шаги могут повторяться несколько раз.
Прежде чем определить архитектуру , необходимо определить некоторые цели продукта высокого уровня. Требования обычно формируются кросс-функциональной командой, которая учитывает рыночные возможности , потребности клиентов, осуществимость и многое другое. Результатом этого этапа должен стать документ с требованиями к продукту .
Архитектура определяет фундаментальную структуру, цели и принципы продукта. Она определяет высокоуровневые концепции и внутреннюю ценность продукта. Архитектурные команды учитывают множество переменных и взаимодействуют со многими группами. Люди, создающие архитектуру, обычно имеют значительный опыт работы с системами в области , для которой создается архитектура. Рабочим продуктом этапа архитектуры является архитектурная спецификация .
Микроархитектура — это шаг ближе к аппаратному обеспечению. Она реализует архитектуру и определяет конкретные механизмы и структуры для достижения этой реализации. Результатом фазы микроархитектуры является спецификация микроархитектуры, которая описывает методы, используемые для реализации архитектуры.
На этапе реализации создается сам дизайн с использованием спецификации микроархитектуры в качестве отправной точки. Это включает в себя определение и разбиение на низком уровне, написание кода , ввод схем и проверку. Эта фаза заканчивается проектом , достигающим tapeout .
После того, как дизайн создан, размечен и изготовлен, поступает фактическое оборудование, «первый кремний», который отправляется в лабораторию, где проходит этап подготовки . Подготовка — это процесс включения, тестирования и характеризации дизайна в лаборатории. Проводятся многочисленные тесты , начиная с очень простых тестов, таких как проверка того, что устройство включится, и заканчивая гораздо более сложными тестами, которые пытаются нагрузить деталь различными способами. Результатом этапа подготовки является документирование данных характеризации (насколько хорошо деталь работает в соответствии со спецификацией) и ошибок (неожиданное поведение).
Продуктивизация — это задача перевода проекта из стадии проектирования в стадию массового производства. Хотя проект может успешно соответствовать спецификациям продукта в лаборатории на этапе подготовки, существует множество проблем, с которыми сталкиваются инженеры по продуктам при попытке массового производства этих проектов. ИС должна быть наращиваема до объемов производства с приемлемым выходом. Целью этапа продуктивизации является достижение объемов массового производства по приемлемой стоимости.
После того, как дизайн становится зрелым и достигает массового производства, его необходимо поддерживать. Процесс должен постоянно контролироваться, а проблемы должны решаться быстро, чтобы избежать значительного влияния на объемы производства. Целью поддержания является поддержание объемов производства и постоянное снижение затрат до тех пор, пока продукт не достигнет конца жизненного цикла .
Первоначальный процесс проектирования микросхем начинается с проектирования на уровне системы и планирования микроархитектуры. В компаниях по проектированию ИС руководство и часто аналитики составляют предложение для проектной группы, чтобы начать проектирование нового чипа, который будет соответствовать сегменту отрасли. На этом этапе встречаются проектировщики верхнего уровня, чтобы решить, как чип будет работать функционально. На этом этапе определяются функциональность и дизайн ИС. Проектировщики ИС составляют план функциональных требований, испытательных стендов проверки и методик тестирования для всего проекта, а затем превращают предварительный проект в спецификацию системного уровня, которую можно моделировать с помощью простых моделей, используя такие языки, как C++ и MATLAB, и инструменты эмуляции. Для чистых и новых проектов этап проектирования системы — это то, где планируется набор инструкций и работа, и в большинстве микросхем существующие наборы инструкций модифицируются для более новой функциональности. Проектирование на этом этапе часто представляет собой такие утверждения, как кодирует в формате MP3 или реализует арифметику с плавающей точкой IEEE . На более поздних этапах процесса проектирования каждое из этих невинно выглядящих утверждений расширяется до сотен страниц текстовой документации.
После согласования проекта системы проектировщики RTL затем реализуют функциональные модели на языке описания оборудования, таком как Verilog , SystemVerilog или VHDL . Используя компоненты цифрового проектирования, такие как сумматоры, сдвигатели и конечные автоматы, а также концепции архитектуры компьютера, такие как конвейеризация, суперскалярное выполнение и предсказание ветвлений , проектировщики RTL разбивают функциональное описание на аппаратные модели компонентов на чипе, работающих вместе. Каждое из простых утверждений, описанных в проекте системы, может легко превратиться в тысячи строк кода RTL , поэтому крайне сложно проверить, что RTL будет делать правильно во всех возможных случаях, которые может предложить пользователь.
Чтобы сократить количество ошибок функциональности, отдельная группа проверки оборудования возьмет RTL и разработает испытательные стенды и системы для проверки того, что RTL на самом деле выполняет те же шаги при многих различных условиях, классифицируемых как область функциональной проверки . Используется множество методов, ни один из которых не идеален, но все они полезны — обширное логическое моделирование , формальные методы , аппаратная эмуляция , проверка кода, подобная lint , покрытие кода и т. д. Проверка, подобная той, что выполняется эмуляторами, может выполняться в ПЛИС или специальных процессорах, [8] [9] и эмуляция заменила моделирование. Первоначально моделирование выполнялось путем моделирования логических вентилей в микросхемах, но позже вместо этого стали моделироваться RTL в микросхемах. [10] Моделирование по-прежнему используется при создании аналоговых проектов микросхем. [11] Платформы прототипирования используются для запуска программного обеспечения на прототипах проекта микросхемы, пока он находится в стадии разработки с использованием ПЛИС, но они медленнее в итерациях или модификации и не могут использоваться для визуализации аппаратных сигналов, как они будут отображаться в готовом проекте. [12]
Маленькая ошибка здесь может сделать весь чип бесполезным или даже хуже. Знаменитая ошибка Pentium FDIV приводила к тому, что результаты деления были неверны максимум на 61 часть на миллион, в случаях, которые происходили очень редко. Никто даже не замечал этого, пока чип не находился в производстве несколько месяцев. Тем не менее, Intel была вынуждена предложить бесплатную замену каждого проданного чипа, пока они не исправят ошибку, за 475 миллионов долларов (США). [ необходима цитата ]
RTL — это всего лишь поведенческая модель фактической функциональности того, в рамках чего чип должен работать. Она не имеет связи с физическим аспектом того, как чип будет работать в реальной жизни с точки зрения материалов, физики и электротехники. По этой причине следующим шагом в процессе проектирования ИС, этапом физического проектирования , является отображение RTL в фактические геометрические представления всех электронных устройств, таких как конденсаторы, резисторы, логические вентили и транзисторы, которые будут установлены на чипе.
Ниже перечислены основные этапы физического проектирования. На практике нет прямой прогрессии — требуется значительная итерация, чтобы гарантировать, что все цели достигнуты одновременно. Это сложная проблема сама по себе, называемая закрытием проектирования .
До появления микропроцессоров и программных средств проектирования аналоговые ИС проектировались с использованием ручных расчетов и деталей технологических наборов. Эти ИС представляли собой схемы низкой сложности, например, операционные усилители , обычно включающие не более десяти транзисторов и несколько соединений. Для получения технологичной ИС часто требовался итеративный процесс проб и ошибок и «избыточное проектирование» размера устройства. Повторное использование проверенных конструкций позволяло строить все более сложные ИС на основе имеющихся знаний. Когда в 1970-х годах стала доступна недорогая компьютерная обработка, были написаны компьютерные программы для моделирования схем с большей точностью, чем при ручном расчете. Первый симулятор схем для аналоговых ИС назывался SPICE (Simulation Program with Integrated Circuits Emphasis). Компьютеризированные инструменты моделирования схем обеспечивают большую сложность проектирования ИС, чем ручные расчеты, что делает проектирование аналоговых ASIC практичным.
Поскольку в аналоговом проектировании необходимо учитывать множество функциональных ограничений, ручное проектирование по-прежнему широко распространено сегодня, в отличие от цифрового проектирования, которое в высокой степени автоматизировано, включая автоматизированную маршрутизацию и синтез. [14] В результате современные потоки проектирования аналоговых схем характеризуются двумя различными стилями проектирования — сверху вниз и снизу вверх. [15] Стиль проектирования сверху вниз использует основанные на оптимизации инструменты, аналогичные обычным цифровым потокам. Процедуры снизу вверх повторно используют «знания экспертов» с результатом решений, ранее задуманных и зафиксированных в процедурном описании, имитируя решение эксперта. [15] Примером являются генераторы ячеек, такие как PCells .
Наиболее критичная проблема для аналоговой разработки ИС заключается в изменчивости отдельных устройств, построенных на полупроводниковом кристалле. В отличие от проектирования схем на уровне платы, которое позволяет проектировщику выбирать устройства, каждое из которых было протестировано и отсортировано по значению, значения устройств на ИС могут значительно различаться, что не поддается контролю проектировщика. Например, некоторые резисторы ИС могут различаться на ±20%, а β интегрированного BJT может варьироваться от 20 до 100. В последних процессах КМОП β вертикальных PNP-транзисторов может даже опускаться ниже 1. Чтобы усугубить проблему проектирования, свойства устройств часто различаются между каждой обработанной полупроводниковой пластиной. Свойства устройств могут даже значительно различаться между каждой отдельной ИС из-за градиентов легирования . Основная причина этой изменчивости заключается в том, что многие полупроводниковые устройства очень чувствительны к неконтролируемым случайным отклонениям в процессе. Незначительные изменения в величине времени диффузии, неравномерные уровни легирования и т. д. могут иметь большое влияние на свойства устройства.
Некоторые методы проектирования, используемые для уменьшения влияния вариации устройства: [16]
Три крупнейшие компании, продающие средства автоматизации электронного проектирования, — это Synopsys , Cadence и Mentor Graphics . [17]