Введение
Инженерный процесс для электронного оборудования
Дизайн интегральных схем, дизайн полупроводников, дизайн чипов или ИС-дизайн — это подраздел электронной инженерии, охватывающий специфические методы проектирования логики и схем, необходимые для разработки интегральных схем (ИС). ИС состоят из миниатюрных электронных компонентов, встроенных в электрическую сеть на монолитной полупроводниковой подложке с помощью фотолитографии. Проектирование ИС можно разделить на широкие категории: цифровое и аналоговое. Цифровой ИС-дизайн предназначен для создания компонентов, таких как микропроцессоры, ПЛИС (FPGA), память (RAM, ROM и флэш-память) и цифровые ASIC. Цифровой дизайн фокусируется на логической корректности, максимизации плотности схемы и размещении элементов схемы таким образом, чтобы сигналы тактирования и синхронизации маршрутизировались эффективно. Аналоговый ИС-дизайн также имеет специализации в области разработки силовых ИС и RF ИС. Аналоговый ИС-дизайн используется при разработке операционных усилителей, линейных стабилизаторов напряжения, фазовых автогенераторов, генераторов и активных фильтров. Аналоговый дизайн больше ориентирован на физику полупроводниковых приборов, таких как усиление, согласование, рассеивание мощности и сопротивление. Точность усиления и фильтрации аналогового сигнала обычно критична, поэтому аналоговые ИС используют активные устройства большей площади, чем цифровые схемы, и обычно имеют меньшую плотность компоновки. Современные ИС чрезвычайно сложны. Средний процессор настольного компьютера, по состоянию на 2015 год, содержит более 1 миллиарда транзисторов. Правила, определяющие возможности и ограничения производства, также чрезвычайно сложны. Распространенные технологические процессы ИС 2015 года включают более 500 правил. Кроме того, поскольку сам производственный процесс не является полностью предсказуемым, разработчики должны учитывать его статистическую природу. Сложность современного ИС-дизайна, а также рыночное давление, требующее быстрой разработки, привели к широкому использованию автоматизированных средств проектирования (EDA) в процессе ИС-дизайна. Проектирование некоторых процессоров стало настолько сложным, что их полноценное тестирование затруднено, что вызвало проблемы у крупных облачных провайдеров. Вкратце, проектирование ИС с использованием EDA-программного обеспечения — это разработка, тестирование и верификация инструкций, которые должна выполнять ИС. Искусственный интеллект был успешно применен в дизайне чипов для создания компоновочных схем, определяющих расположение стандартных ячеек и макроблоков на чипе.
Основные
Конструирование интегральных схем включает в себя создание электронных компонентов, таких как транзисторы, резисторы, конденсаторы и соединение этих компонентов на основе полупроводника, обычно кремния. Необходим метод изоляции отдельных компонентов, формируемых в подложке, поскольку кремний подложки является проводящим и часто формирует активную область отдельных компонентов. Два распространенных метода – изоляция p-n переходом и диэлектрическая изоляция. Следует уделять внимание рассеиванию мощности транзисторами, сопротивлению соединений и плотности тока в соединениях, контактах и переходных отверстиях, поскольку интегральные схемы содержат очень миниатюрные устройства по сравнению с дискретными компонентами, где подобные вопросы не столь актуальны. Электромиграция в металлических соединениях и повреждение от электростатического разряда (ЭСР) миниатюрных компонентов также вызывают опасения. Наконец, физическая компоновка определенных подблоков схемы обычно критически важна для достижения требуемой скорости работы, для отделения шумных участков интегральной схемы от тихих, для балансировки эффектов тепловыделения по всей интегральной схеме или для упрощения размещения соединений с внешними схемами.
Резюме
Грубо говоря, проектирование цифровых интегральных схем можно разделить на три части. Проектирование электронной системы: на этом этапе создается функциональная спецификация заказчика. Заказчик может использовать различные языки и инструменты для создания этого описания, например, модели на C/C++, VHDL, SystemC, модели транзакционного уровня SystemVerilog, Simulink и MATLAB. RTL-проектирование: этот этап преобразует спецификацию заказчика (что заказчик хочет, чтобы чип делал) в описание на уровне передачи регистров (RTL). RTL описывает точное поведение цифровых схем на чипе, а также соединения с входами и выходами. Физическое проектирование схемы: этот этап принимает RTL и библиотеку доступных логических элементов (стандартную библиотеку ячеек) и создает макет чипа. Этот этап включает использование редактора макетов ИС, планировку и размещение элементов, выбор логических элементов, определение их расположения и соединение их между собой (синтез тактирования, трассировка). Важно отметить, что второй этап, RTL-проектирование, отвечает за то, чтобы чип выполнял правильные функции. Третий этап, физическое проектирование, не влияет на функциональность (при правильном выполнении), но определяет скорость работы чипа и его стоимость. Стандартная ячейка обычно представляет собой один логический элемент, диод или простые логические компоненты, такие как триггеры, или логические элементы с несколькими входами. Использование стандартных ячеек позволяет разделить проектирование чипа на логический и физический уровни. Компания, не имеющая собственного производства (fabless), обычно работает только над логическим проектированием чипа, определяя соединения между ячейками и функциональность чипа, соблюдая при этом правила проектирования, установленные литографическим производством, на котором будет изготовлен чип. Физическое проектирование чипа, сами ячейки, обычно выполняется литографическим производством и включает физику транзисторных устройств и их соединения для формирования логического элемента. Стандартные ячейки позволяют быстрее проектировать и модифицировать чипы для удовлетворения рыночного спроса, но это достигается за счет снижения плотности транзисторов в чипе и, следовательно, увеличения площади кристалла. Литографические производства предоставляют библиотеки стандартных ячеек компаниям, не имеющим собственного производства, для целей проектирования и производства их проектов с использованием оборудования литографического производства. Литографическое производство может предоставить комплект для проектирования технологического процесса (PDK), который может включать стандартную библиотеку ячеек, спецификации ячеек, а также инструменты для проверки проекта компании, не имеющей собственного производства, на соответствие правилам проектирования, установленным литографическим производством, а также для моделирования его работы с использованием ячеек литографического производства. PDK могут предоставляться на основании соглашений о неразглашении. Макросы/Макроячейки/Макроблоки, массивы макроячеек и IP-блоки обладают большей функциональностью, чем стандартные ячейки, и используются аналогичным образом. Существуют программно-определяемые и аппаратно-определяемые макросы. Стандартные ячейки обычно размещаются в стандартных рядах ячеек.
Жизненный цикл проектирования
Процесс разработки интегральной схемы (ИС) начинается с определения требований к продукту, затем переходит к разработке архитектуры, реализации, отладке и, наконец, к серийному производству. Различные фазы процесса разработки интегральной схемы описаны ниже. Хотя эти фазы представлены здесь последовательно, на практике происходит итерация, и эти этапы могут повторяться несколько раз.
Требования
Прежде чем определить архитектуру, необходимо сформулировать высокоуровневые цели продукта. Требования обычно разрабатываются кросс-функциональной командой, которая учитывает рыночные возможности, потребности клиентов, техническую осуществимость и многое другое. Результатом этого этапа должен стать документ с требованиями к продукту.
Архитектура
Архитектура определяет фундаментальную структуру, цели и принципы продукта. Она определяет концепции высокого уровня и основное ценностное предложение продукта. Архитектурные команды учитывают множество факторов и взаимодействуют с различными группами. Специалисты, разрабатывающие архитектуру, как правило, обладают значительным опытом работы с системами в той области, для которой создается архитектура. Результатом работы на этапе архитектурного проектирования является архитектурная спецификация.
Микроархитектура
Микроархитектура приближает нас к аппаратному обеспечению. Она реализует архитектуру и определяет конкретные механизмы и структуры для её реализации. Результатом этапа разработки микроархитектуры является спецификация микроархитектуры, описывающая методы, используемые для реализации архитектуры.
Реализация
На этапе реализации сам проект разрабатывается на основе микроархитектурной спецификации. Это включает в себя низкоуровневое определение и разбиение на блоки, написание кода, создание схем и верификацию. Эта фаза завершается подготовкой проекта к передаче на производство (tapeout).
Приведи его .
После создания, разводки и производства дизайна, поступает реальное оборудование, "первый кремний", которое доставляется в лабораторию для проведения этапа первичной отладки. Первичная отладка – это процесс включения, тестирования и характеризации дизайна в лабораторных условиях. Выполняется множество тестов, начиная с самых простых, таких как проверка включения устройства, и заканчивая более сложными, направленными на проверку устойчивости компонента к различным нагрузкам. Результатом этапа первичной отладки является документация, содержащая данные характеризации (насколько хорошо компонент соответствует спецификациям) и информацию об ошибках (неожиданное поведение).
Производственная
Продукционизация — это задача переноса разработки из инженерной стадии в массовое производство. Несмотря на то, что дизайн может успешно соответствовать спецификациям продукта в лабораторных условиях на этапе запуска, инженеры по продуктам сталкиваются с множеством проблем при попытке организовать его массовое производство. Необходимо нарастить выпуск интегральных схем до производственных объемов с приемлемым выходом годных. Цель этапа продукционизации — достижение массовых объемов производства по приемлемой стоимости.
Поддержка
Когда конструкция доведена до совершенства и запущена в массовое производство, её необходимо поддерживать в рабочем состоянии. Процесс должен постоянно отслеживаться, а возникающие проблемы – оперативно устраняться, чтобы избежать существенного влияния на объемы выпуска. Задача поддержания заключается в сохранении объемов производства и непрерывном снижении затрат до окончания жизненного цикла продукта.
Микроархитектура и проектирование на системном уровне
Первоначальный процесс проектирования чипа начинается с проектирования на системном уровне и планирования микроархитектуры. В компаниях, занимающихся проектированием ИС, руководство и часто аналитики разрабатывают предложение для команды разработчиков, чтобы начать проектирование нового чипа, предназначенного для определенного сегмента рынка. На этом этапе ведущие разработчики встречаются, чтобы определить функциональность чипа. Именно на этом этапе принимаются решения относительно функциональности и архитектуры ИС. Разработчики ИС определяют функциональные требования, тестовые среды для верификации и методологии тестирования для всего проекта, а затем преобразуют предварительный проект в спецификацию системного уровня, которую можно моделировать с помощью простых моделей, используя языки, такие как C++ и MATLAB, и инструменты эмуляции. Для принципиально новых проектов на этапе системного проектирования планируется набор инструкций и операции, а в большинстве чипов существующие наборы инструкций модифицируются для реализации новой функциональности. Проектирование на этом этапе часто формулируется в виде утверждений, например, "реализация кодирования в формате MP3" или "реализация арифметики IEEE с плавающей точкой". На более поздних этапах процесса проектирования каждое из этих, казалось бы, простых утверждений разрастается до сотен страниц текстовой документации.
Конструкция RTL
После согласования системного проекта, разработчики RTL реализуют функциональные модели на языке описания аппаратуры, таком как Verilog, SystemVerilog или VHDL. Используя компоненты цифрового проектирования, такие как сумматоры, сдвигающие регистры и конечные автоматы, а также концепции компьютерной архитектуры, такие как конвейеризация, суперскалярное исполнение и предсказание переходов, разработчики RTL разбивают функциональное описание на аппаратные модели компонентов на кристалле, работающих совместно. Каждое простое утверждение, описанное в системном проекте, может легко превратиться в тысячи строк RTL-кода, поэтому чрезвычайно сложно проверить, что RTL будет работать правильно во всех возможных сценариях, которые может предоставить пользователь. Чтобы уменьшить количество функциональных ошибок, отдельная группа верификации аппаратуры берет RTL и разрабатывает тестовые стенды и системы для проверки того, что RTL действительно выполняет одни и те же шаги в различных условиях, что относится к области функциональной верификации. Используется множество методов, ни один из которых не идеален, но все они полезны: всестороннее логическое моделирование, формальные методы, аппаратная эмуляция, статический анализ кода, анализ покрытия кода и так далее. Верификация, выполняемая эмуляторами, может проводиться на FPGA или специализированных процессорах, и эмуляция постепенно заменяет моделирование. Изначально моделирование выполнялось путем симуляции логических элементов на кристалле, но позже вместо этого стали моделировать RTL-коды на кристалле. Моделирование по-прежнему используется при разработке аналоговых микросхем. Прототипирующие платформы используются для запуска программного обеспечения на прототипах дизайна микросхемы в процессе разработки с использованием FPGA, но они медленнее в итерациях или модификациях и не позволяют визуализировать аппаратные сигналы так, как они будут выглядеть в готовом изделии. Даже небольшая ошибка здесь может сделать всю микросхему бесполезной или даже хуже. Знаменитая ошибка Pentium FDIV приводила к тому, что результаты деления были неверными максимум на 61 часть на миллион, в крайне редких случаях. Никто даже не заметил этого, пока микросхема не была в производстве несколько месяцев. Тем не менее, Intel была вынуждена предложить бесплатную замену каждой проданной микросхемы до исправления ошибки, что обошлось компании в 475 миллионов долларов США.
Физический дизайн
RTL — это лишь поведенческая модель фактической функциональности, которую должен обеспечивать чип. Она не связана с физическими аспектами работы чипа в реальных условиях, такими как материалы, физика и электротехника. Поэтому следующим этапом в процессе проектирования ИС, на этапе физического проектирования, является преобразование RTL в фактические геометрические представления всех электронных компонентов, таких как конденсаторы, резисторы, логические элементы и транзисторы, которые будут размещены на чипе. Основные этапы физического проектирования перечислены ниже. На практике процесс не является последовательным – требуется значительная итерация для одновременного достижения всех целей. Это сложная задача сама по себе, называемая завершением проектирования (design closure). Логический синтез: RTL преобразуется в сетевой список на уровне элементов в целевой технологии чипа. Планирование размещения (Floorplanning): RTL чипа распределяется по основным областям кристалла, назначаются выводы ввода/вывода (I/O), и размещаются крупные блоки (массивы, ядра и т.д.). Размещение (Placement): Элементы сетевого списка размещаются в неперекрывающихся областях на поверхности кристалла. Логическая оптимизация и оптимизация размещения: Итеративные логические и пространственные преобразования для достижения требуемых характеристик производительности и энергопотребления. Вставка тактового сигнала: В схему вводятся цепи тактового сигнала (обычно, тактовые деревья). Трассировка (Routing): Добавляются соединения, связывающие элементы сетевого списка. Посттрассировочная оптимизация: Устраняются нарушения требований к производительности (закрытие временных интервалов), помехоустойчивости (целостность сигнала) и выходу годных (Design for Manufacturability). Проектирование для производства: Конструкция модифицируется, где это возможно, для упрощения и повышения эффективности производства. Это достигается путем добавления дополнительных переходных отверстий (виасов) или фиктивных слоев металла/диффузии/поликремния, соблюдая при этом правила проектирования, установленные производителем. Окончательная проверка: Поскольку ошибки дорогостоящи, трудоемки и трудно обнаружимы, проводится тщательная проверка ошибок, чтобы убедиться в правильности преобразования в логическую схему и соблюдении правил производства. Завершение разработки чипа с Tapeout и генерацией масок: данные проектирования преобразуются в фотошаблоны на этапе подготовки данных для изготовления масок.
Аналоговая конструкция
До появления микропроцессоров и программных средств проектирования, аналоговые интегральные схемы проектировались с использованием ручных расчетов и компонентов из технологического комплекта. Эти схемы были несложными, например, операционные усилители, обычно содержащие не более десяти транзисторов и небольшое количество соединений. Для получения работоспособной интегральной схемы часто требовался итеративный процесс проб и ошибок и нарочитое увеличение размеров элементов. Повторное использование проверенных схемных решений позволяло постепенно создавать более сложные интегральные схемы, опираясь на накопленные знания. Когда в 1970-х годах стали доступны недорогие вычислительные мощности, были разработаны компьютерные программы для моделирования схем с большей точностью, чем это было возможно при ручных расчетах. Первый симулятор схем для аналоговых интегральных схем назывался SPICE (Simulation Program with Integrated Circuits Emphasis). Компьютерные средства моделирования схем обеспечивают возможность проектирования более сложных интегральных схем, чем при ручных расчетах, что делает практичным проектирование аналоговых ASIC. Поскольку при аналоговом проектировании необходимо учитывать множество функциональных ограничений, ручное проектирование по-прежнему широко распространено, в отличие от цифрового проектирования, которое в значительной степени автоматизировано, включая автоматическую трассировку и синтез. В результате современные процессы проектирования аналоговых схем характеризуются двумя различными подходами – проектированием сверху вниз и снизу вверх. Подход проектирования сверху вниз использует инструменты оптимизации, аналогичные традиционным цифровым процессам. Процедуры проектирования снизу вверх используют “экспертные знания”, основанные на ранее разработанных и формализованных решениях, имитируя процесс принятия решений экспертом. При этом используются соотношения сопротивлений, которые хорошо согласованы, а не абсолютные значения сопротивлений. Используются элементы с согласованной геометрией, чтобы обеспечить согласованные отклонения. Размеры элементов увеличиваются, чтобы статистические отклонения стали незначительной частью общих характеристик элемента. Большие элементы, такие как резисторы, сегментируются на части и переплетаются для компенсации отклонений. Используется общая центроидная разводка элементов для компенсации отклонений в элементах, которые должны быть хорошо согласованы (например, дифференциальная пара транзисторов операционного усилителя).
Продавцы
Три крупнейшие компании, продающие средства автоматизированного проектирования электроники, — это Synopsys, Cadence и Mentor Graphics.