Введение

Программное обеспечение для проектирования электронных систем

Электронная автоматизация проектирования (EDA), также известная как автоматизированное компьютерное проектирование электроники (ECAD), — это категория программных инструментов для проектирования электронных систем, таких как интегральные схемы и печатные платы. Эти инструменты взаимодействуют в процессе проектирования, который используется разработчиками микросхем для проектирования и анализа целых полупроводниковых чипов. Поскольку современные полупроводниковые чипы могут содержать миллиарды компонентов, инструменты EDA необходимы для их разработки; в данной статье рассматривается EDA, в частности, применительно к интегральным схемам (ИС).

Ранние годы

Самая ранняя автоматизация электронного проектирования (EDA) связывается с компанией IBM и документацией к компьютерам серии 700 в 1950-х годах. До появления EDA интегральные схемы проектировались вручную и компоновались вручную. Некоторые передовые предприятия использовали геометрическое программное обеспечение для создания перфолент для фотоплоттера Гербера, который отвечал за создание монохромного изображения для экспонирования, но даже в этом случае копировались цифровые записи механически нарисованных компонентов. Процесс был принципиально графическим, перевод с электрических схем на графическое представление выполнялся вручную; наиболее известной компанией той эпохи была Calma, формат GDSII которой используется до сих пор. К середине 1970-х годов разработчики начали автоматизировать проектирование схем, помимо черчения, и были разработаны первые инструменты для размещения и трассировки. По мере развития, материалы конференции по автоматизации проектирования (Design Automation Conference) содержали каталог большинства разработок того времени и считались стандартным учебником по проектированию микросхем. Результатом стало увеличение сложности проектируемых микросхем и улучшение доступа к инструментам верификации проекта, использующим логическое моделирование. Микросхемы стало проще компоновать, и вероятность их корректной работы возросла, поскольку их проекты можно было более тщательно моделировать до изготовления. Хотя языки и инструменты эволюционировали, этот общий подход – определение желаемого поведения на текстовом языке программирования и передача инструментам задачи получения детальной физической компоновки – остаётся основой цифрового проектирования интегральных схем и сегодня. Первые инструменты EDA были разработаны в академической среде. Одним из самых известных был “Berkeley VLSI Tools Tarball” – набор утилит UNIX, использовавшихся для проектирования ранних систем VLSI. Широко применялись эвристический логический минимизатор Espresso, предназначенный для уменьшения сложности схем, и платформа Magic, система автоматизированного проектирования. Важным событием стало также создание MOSIS – консорциума университетов и производителей, разработавшего недорогой способ обучения студентов-проектировщиков микросхем путём производства реальных интегральных схем. Основная идея заключалась в использовании надёжных, недорогих, относительно простых технологических процессов производства ИС и размещении большого количества проектов на одной пластине, при этом сохранялось несколько копий чипов из каждого проекта. Компании-производители либо жертвовали обработанные пластины, либо продавали их по себестоимости, поскольку считали, что эта программа способствует их долгосрочному развитию.

Коммерческие роды

1981 год ознаменовал начало развития EDA как самостоятельной отрасли. На протяжении многих лет крупные электронные компании, такие как Hewlett Packard, Tektronix и Intel, занимались разработкой EDA внутри своих организаций, однако менеджеры и разработчики стали покидать эти компании, чтобы сосредоточиться на EDA как на бизнесе. Daisy Systems, Mentor Graphics и Valid Logic Systems были основаны примерно в этот период и в совокупности стали известны как DMV. В 1981 году Министерство обороны США также начало финансировать разработку VHDL как языка описания аппаратуры. В течение нескольких лет появилось множество компаний, специализирующихся на EDA, каждая из которых делала акцент на несколько различных аспектах. Первая отраслевая выставка EDA была проведена на Design Automation Conference в 1984 году, а в 1986 году компания Gateway Design Automation представила Verilog – еще один популярный язык описания аппаратуры высокого уровня. Вскоре после этого появились симуляторы, позволявшие напрямую моделировать схемы чипов и исполняемые спецификации. В течение нескольких лет были разработаны бэк-энды для выполнения логического синтеза.

Современный день

Текущие цифровые потоки чрезвычайно модульны, при этом фронтенды генерируют стандартизированные описания проектов, которые компилируются в вызовы элементов, подобных ячейкам, независимо от их конкретной технологии. Ячейки реализуют логические или другие электронные функции посредством использования определенной технологии интегральных схем. Производители, как правило, предоставляют библиотеки компонентов для своих производственных процессов, а также модели для симуляции, совместимые со стандартными инструментами моделирования. Большинство аналоговых схем по-прежнему проектируются вручную, что требует специализированных знаний, уникальных для аналогового проектирования (например, принципов согласования параметров). Следовательно, инструменты автоматизированного проектирования электроники (EDA) для аналоговых схем гораздо менее модульны, поскольку требуется больше функций, они более тесно взаимодействуют, а компоненты, как правило, менее идеальны. Автоматизированное проектирование электроники (EDA) быстро приобретает все большее значение по мере непрерывного уменьшения размеров полупроводниковых технологий. Среди пользователей – операторы фабрик по производству полупроводников ("fabs"), а также специалисты, использующие услуги компаний по разработке технологий, которые применяют программное обеспечение EDA для оценки готовности проекта к производству. Инструменты EDA также используются для программирования функциональности проекта в ПЛИС (FPGA) или поля́ программируемые вентильные матрицы – настраиваемые интегральные схемы.

Симуляция

Транзисторное моделирование – моделирование поведения схемы или макета на уровне отдельных транзисторов, обеспечивающее высокую точность на уровне компонентов. Логическое моделирование – цифровое моделирование цифрового (булевого 0/1) поведения RTL-схемы или сетевого списка логических элементов, обеспечивающее точность на булевом уровне. Поведенческое моделирование – высокоуровневое моделирование архитектурной работы проекта, обеспечивающее точность на уровне циклов или интерфейсов. Аппаратная эмуляция – использование специализированного оборудования для эмуляции логики разрабатываемого проекта. Иногда может быть подключена к системе вместо еще не изготовленного чипа; это называется внутрисхемной эмуляцией. CAD-системы для технологического проектирования моделируют и анализируют базовую технологию производства. Электрические свойства компонентов выводятся непосредственно из физических свойств материалов и структуры.

Анализ и проверка

Функциональная проверка: обеспечивает соответствие логического проекта спецификациям и корректное выполнение задач. Включает динамическую функциональную верификацию посредством моделирования, эмуляции и прототипирования. RTL Linting для соблюдения правил кодирования, таких как синтаксис, семантика и стиль. Проверка пересечения доменов тактирования (CDC check): аналогична линтингу, но эти проверки/инструменты специализируются на обнаружении и сообщении о потенциальных проблемах, таких как потеря данных и метастабильность, возникающих при использовании нескольких доменов тактирования в проекте. Формальная верификация, также известная как проверка моделей: попытки доказать математическими методами, что система обладает определенными желаемыми свойствами и что некоторые нежелательные эффекты (например, взаимная блокировка) не могут возникнуть. Проверка эквивалентности: алгоритмическое сравнение между RTL-описанием чипа и синтезированным списком логических элементов для обеспечения функциональной эквивалентности на логическом уровне. Статический анализ времени: анализ временных характеристик схемы независимо от входных данных, что позволяет определить наихудший случай для всех возможных входных сигналов. Извлечение параметров трассировки: на основе предложенной трассировки вычисляются (приблизительные) электрические характеристики каждого проводника и элемента. Часто используется совместно со статическим анализом времени для оценки производительности готового чипа. Решатели электромагнитного поля, или просто решатели полей, напрямую решают уравнения Максвелла для случаев, представляющих интерес при проектировании ИС и печатных плат. Они известны своей более высокой точностью, но меньшей скоростью по сравнению с извлечением параметров трассировки. Физическая верификация (Physical verification, PV): проверка возможности физического изготовления проекта, а также гарантия того, что полученные чипы не будут содержать физических дефектов, препятствующих их функционированию, и будут соответствовать исходным спецификациям.

Функциональная безопасность

Анализ функциональной безопасности – систематический расчет показателей частоты отказов во времени (FIT) и метрик диагностического охвата для проектов с целью соответствия требованиям для заданных уровней целостности безопасности. Синтез функциональной безопасности – добавление улучшений надежности к структурированным элементам (модулям, оперативным запоминающим устройствам, ПЗУ, регистровым файлам, FIFO) для повышения обнаружения и устойчивости к ошибкам. Это включает в себя (но не ограничивается) добавление кодов обнаружения и/или исправления ошибок (например, код Хэмминга), избыточную логику для обнаружения и допуска ошибок (двойное/тройное резервирование) и проверки протокола (паритет интерфейса, выравнивание адресов, подсчет тактов). Проверка функциональной безопасности – проведение кампании по внедрению ошибок, включающей в себя внесение ошибок в проект и проверку корректности реакции механизмов безопасности на ошибки, которые должны быть обнаружены.

Приобретения

Многие компании, занимающиеся ЭСАД, приобретают небольшие компании с программным обеспечением или другими технологиями, которые можно адаптировать к их основному бизнесу. Большинство лидеров рынка представляют собой объединения множества небольших компаний, и этой тенденции способствует то, что программные компании часто разрабатывают инструменты как дополнения, которые естественно интегрируются в комплекс программных продуктов крупного поставщика для проектирования цифровых схем. Многие новые инструменты включают в себя возможности для аналогового проектирования и смешанных систем. Это происходит из-за тенденции к размещению целых электронных систем на одном кристалле.