САПР в области радиоэлектроники имеют более чем сорокалетнюю историю. Первые программы анализа электронных схем и проектирования печатных плат появились в начале 60-х годах прошлого века. Значительным стимулом для прогресса автоматизации проектирования в электронике (ECAD — Electronics Computer Aided Design) стали разработка и развитие технологии, схемотехники и системотехники интегральных схем. В настоящее время на рынке интеллектуальных технологий имеется большое число программ ECAD, причем процесс обновления состава программного обеспечения в САПР ведущих фирм происходит весьма динамично.
Системы ECAD создавались и совершенствовались параллельно с прогрессом микроэлектроники. Разработчикам систем ECAD приходилось решать разнообразные проблемы по развитию методологии проектирования сверхбольших интегральных схем (СБИС), являющихся одними из наиболее наукоемких создаваемых людьми объектов. В этой методологии заметное место отводится языкам проектирования СБИС и радиоэлектронной аппаратуры (РЭА). Среди этих языков особое место принадлежит языку VHDL, получившему статус международного стандарта. Выполняя роль интегрирующего элемента в маршрутах проектирования электронных устройств, язык VHDL стал входным языком для многих программ моделирования и синтеза проектных решений, связывающим различные этапы проектирования в единый процесс.
Современные интегрированные САПР СБИС состоят из большого числа программ, различающихся ориентацией на различные проектные процедуры и разные типы схем. Наиболее известными разработчиками интегрированных САПР являются фирмы Synopsys, Cadence Design Systems, Mentor Graphics. Наряду с ними отдельные программы или группы программ предлагают многие фирмы, работающие в области ECAD.
Типовая последовательность процедур при проектировании СБИС на стандартных ячейках представлена на рис. 1.
Рис. 1.  Типовая последовательность процедур при проектировании СБИС
При разработке СБИС преобладает нисходящий стиль, при котором последовательно выполняются процедуры системного, функционально-логического и конструкторского проектирования. При синтезе проектных решений на маршрутах проектирования СБИС широко используются библиотеки функциональных ячеек и IP-блоков, предварительно разработанных с помощью процедур схемотехнического и приборно-технологического проектирования.
На системном (архитектурном) этапе проектирования СБИС формулируются требования к функциональным и схемным характеристикам, создается системная спецификация проекта, разрабатываются алгоритмы, реализуемые в системе, и на их основе - высокоуровневая поведенческая модель. Алгоритмы разделяются на части, реализуемые аппаратно и программно, в результате получаются задания на разработку аппартной и программной частей.
При реализации аппаратной части выполняется блочный синтез, при котором составляется общая архитектура построения СБИС, выделяются операционные (datapath) и управляющие (FSM — Finite State Machine) блоки. В соответствии с заданным алгоритмом строится граф операций (микроопераций), на основе которого принимаются решения по распараллеливанию и/или конвейеризации вычислений. Алгоритмы обычно представляются на языках проектирования аппаратуры (HDL – Hardware Description Language) и выражают поведенческий аспект проектируемого изделия.
Иногда архитектуный уровень назвают уровнем системы команд, на котором в качестве проектируемой системы рассматривается отдельная ЭВМ, а в качестве элементов фигурируют программно-доступные функциональные узлы ЭВМ, такие как регистр команд, регистры общего назначения, арифметико-логическое устройство, оперативная память и т. п. С помощью моделей этого уровня проверяется правильность выбранных принципов построения ЭВМ, выполнимость заданной системы команд.
На рис. 2 показан пример преобразований описаний СБИС: исходное задание трансформируется в алгоритм на языках типа С/С++, которое для дальнейшего проектирования переводится в описание на языках Verilog или VHDL. Полученное поведенческое описание представляет собой исходное задание на функциональное и логическое проектирование, результатом которых являются функциональные и логические схемы.
Рис. 2.  Преобразование моделей на системном уровне проектирования
Между проектированием СБИС и программного обеспечения на системном уровне много общего и потому неудивительно, что в обоих случаях может с успехом использоваться язык UML. В случае СБИС перед разработкой модели на языках C или C++ иногда применяют описание в виде диаграммы классов UML.
Моделирование на уровне транзакций позволяет выполнить оценку правильности функционирования устройства в целом путем моделирования взаимодействия крупных блоков. Формируется тестовое окружение, что позволяет выполнить верификацию поведенческой модели. Тестовые воздействия описываются на уровне транзакций между тестовым окружением и верифицируемым проектом. Тестовое окружение должно поддерживать генерацию и проверку как случайных транзакций, так и транзакций, соответствующих определенному протоколу обмена, а также генерацию набора транзакций в рамках заданных ограничений. Моделирование на высоком уровне абстракции позволяет выявить архитектурные ошибки заблаговременно с малыми затратами времени.
Представления функционально-логического уровня при проектировании цифровых устройств принято делить на описания уровня RTL (Register Transfer Level) и вентильного уровня (Gate Level).
На уровне RTL, называемом также регистровым уровнем или уровнем регистровых передач (РП), описываются функциональные схемы, элементами которых являются регистры и цепи межрегистровых передач. С помощью моделей уровня RTL проверяется соответствие полученных укрупненных функциональных схем выбранным ранее принципам действия и структурным схемам с учетом временных параметров. Используемые модели могут описывать как элементы схем, так и алгоритмы функционирования без конкретизации их аппаратной реализации. Поэтому с помощью моделей уровня RTL возможна также верификация принятых алгоритмов функционирования.
На логическом (вентильном) уровне детализация описаний схем доходит до отдельных логических элементов, таких как элементы И, ИЛИ, ИЛИ—НЕ,-триггеры, а описаний микропрограмм — до отдельных кодов. С помощью моделей логического уровня проверяется корректность разрабатываемых схем, т. е. их соответствие как по функциям, так и по временам выполнения микрокоманд описаниям цифрового устройства, полученным на предыдущих иерархический уровнях. Моделям логического уровня отводится важная роль в процедурах синтеза тестов, где с их помощью моделируются неисправности аппаратуры.
В последнее время все заметнее проявляется тенденция учета физических характеристик (в основном это задержки) на возможно более ранних этапах нисходящего проектирования. В частности, эта тенденция выражается в планировании кристалла (floorplanning) уже на системном уровне. При этом определяется взаимное расположение блоков структурной схемы на кристалле (при многокристальном исполнении блоки предварительно распределяются между кристаллами) и намечается ориентировочное расположение внешних выводов блоков. Это позволяет приблизительно оценить длины связей и, следовательно, задержки в передаче данных уже в самом начале разработки, что способствует сокращению числа итераций и, следовательно, времени проектирования.
Основными HDL языками, используемыми в современных ECAD при функционально-логическом проектировании, начиная с описания алгоритмов и кончая представлениями логических схем, являются VHDL и Verilog. Поэтому эти языки можно назвать языками сквозного функционально-логического проектирования.
При конструкторском проектировании для описания топологии СБИС широкую известность получили форматы EDIF (стандарт EIA 548 — Electronic Design Interchange Format) и CIF (Caltech Intermediate Format). EDIF удобен для описания передачи данных, включающих списки соединений, параметры СБИС или печатных плат, спецификации тестовых наборов, результаты моделирования и т.п. CIF применяют при передаче проекта, представленного на уровне геометрических примитивов и управляющих данных, в производство.
Формализация процедур структурного синтеза в общем случае затруднительна, поэтому для их эффективного выполнения обычно используют специализированные программы, ориентированные на ограниченный класс проектируемых схем. Характерные особенности технологии изготовления и проектирования имеются у микропроцессоров и схем памяти, у заказных и полузаказных СБИС (ASIC — Application-Specific Integrated Circuits), у программируемых логических интегральных схем (ПЛИС). Эти особенности обусловливают различия в методах проектирования схем и требуют их отражения в применяемом математическом и программном обеспечении ECAD.
В современных системах структурного синтеза на функционально-логическом уровне стремятся получить не просто работоспособное решение, но решение с оптимальным компромиссным удовлетворением требований к площади кристалла, быстродействию, рассеиваемой мощности, а в ряде случаев и к тестируемости схемы.
Важное значение для сокращения сроков проектирования СБИС имеет наличие библиотеки функциональных компонентов. Это могут быть библиотеки производителя (т.е. фабрики, изготовляющей спроектированные схемы), IP-блоки ((Intellectual Property) разных организаций, библиотеки стандартных ячеек. IP-блоки могут быть двух типов: "мягкие" (soft) описанные на RTL-уровне и "жесткие" (hard) – на топологическом уровне. Библиотечные компоненты называют компонентами DW (DesignWare). В число DW входят заранее разработанные, оттестированные и представленные на HDL схемы сумматоров, мультиплексоров, счетчиков и т.п.
Корректность результатов синтеза проверяется с помощью программ верификации функциональных и логических схем. Верификация требуется после основных проектных операций синтеза и реализуется программами, ориентированными соответственно на уровни системный (архитектурный), регистровых передач или вентильный. В большинстве случаев верификация выполняется путем моделирования. Поскольку в итерационном цикле проектирования моделирование должно выполняться многократно, требования к быстродействию программ моделирования предъявляются весьма жесткие.
После этапа топологического проектирования моделирование повторяется уже с учетом уточненных задержек, обусловленных паразитными параметрами межсоединений. Следует отметить, что в СБИС проводники имеют малые площади поперечных сечений и, следовательно, увеличенное сопротивление, это приводит к тому, что по мере уменьшения проектных норм начинают доминировать задержки в межсоединениях (до 80-90%, начиная с технологии 0.25 мкм). Эти задержки имеют заметный разброс и существенно влияют на быстродействие схемы. Поэтому во многих программах логического моделирования имеются модели проводников, с их помощью рассчитываются задержки в зависимости от результатов трассировки.
Для определения значений параметров схемы, получившихся после топологического проектирования, используют специальные программы уточнения задержек (экстракция параметров). Для этих целей возможно применение и программ схемотехнического моделирования.
Результаты логического синтеза в виде VHDL или Verilog описания используются далее для синтеза тестов и поступают на этап конструкторского проектирования СБИС.
Очевидно, что при нисходящем проектировании в большинстве предшествующих процедур приходится задаваться ориентировочными значениями данных, истинные значения которых становятся известными только после выполнения последующих процедур. Это обстоятельство обусловливает итерационный характер процесса проектирования с возвратами от последующих этапов к предыдущим, что, естественно, существенно увеличивает затраты на проектирование.
Поэтому усилия разработчиков системных вопросов ECAD направлены на поиск методов сокращения числа итераций в цикле проектирования СБИС. Такой поиск привел к положительным результатам, по крайней мере, в следующих двух направлениях.
Во-первых, это технологии так называемого "физического" проектирования, в которых стараются уже на ранних архитектурном и регистровом этапах проектирования учесть физические параметры (задержки, рассеиваемые мощности). Осуществляется такой учет, благодаря разработке методов совместного решения задач, ранее выполнявшихся раздельно, например, задач синтеза RTL-схем и схем граничного сканирования, или благодаря планировке кристалла (floorplanning) на системном уровне. При этом определяется взаимное расположение блоков структурной схемы на кристалле (при многокристальном исполнении блоки предварительно распределяются между кристаллами) и намечается ориентировочное расположение внешних выводов блоков, т.е. выполняется так называемая глобальная трассировка. Это позволяет приблизительно оценить длины связей и, следовательно, задержки в передаче данных в самом начале разработки, что способствует сокращению числа итераций и, соответственно, времени проектирования.
Во-вторых, это разумное сочетание элементов нисходящего и восходящего проектирования, при котором на ранних этапах проектирования ориентировочно распределяются задержки и мощности между блоками, что позволяет далее проектировать эти блоки независимо друг от друга. И если принятые ранее значения параметров блоков оказываются выполнимыми, то дополнительные итерации не требуются.
Уменьшение проектных норм приводит к пересмотру сложившихся представлений о методах моделирования СБИС. Так, при нормах ниже 0,18 мкм задержки в межсоединениях превалируют над задержками в вентилях, на логическом уровне уже нельзя пренебрегать влиянием на процессы паразитных емкостей и индуктивностей, что заставляет искать пути комбинирования методов логического и схемотехнического уровней проектирования. Но применение таких методов весьма проблематично при размерах задач моделирования современных СБИС.