Проектирование СБИС является многоуровневым, каждый уровень характеризуется своим математическим обеспечением, используемым для моделирования и анализа схем. Выделяют следующие уровни: системный, регистровый (RTL — Register Transfer Level), называемый также уровнем регистровых передач, логический, схемотехнический, приборно-технологический (компонентный). Общее название для регистрового и логического уровней — уровень функционально-логический. Преобладает нисходящий стиль функционально-логического проектирования, при котором последовательно выполняются процедуры уровней системного, RTL и логического. В этих процедурах широко используются ранее принятые унифицированные решения, закрепленные в библиотеках функциональных компонентов, например сумматоров, мультиплексоров, регистров и т. п. Эти библиотеки разрабатываются с помощью процедур схемотехнического и компонентного проектирования внемаршрутов проектирования конкретных СБИС.
После получения результатов схемного проектирования приступают к конструкторско-технологическому проектированию, синтезу тестов и окончательной верификации принятых проектных решений. Укрупненная типичная последовательность проектных процедур на маршруте проектирования СБИС показана на рис. 14.1.
Верхний иерархический уровень называют системным, архитектурным или поведенческим. Последнее название связано с тем, что на этом уровне оперируют алгоритмами, подлежащими реализации в СБИС, которые выражают поведенческий аспект проектируемого изделия. Алгоритмы, как правило, представляются на языках проектирования аппаратуры (HDL). Далее на системном уровне формулируют требования к функциональным и схемным характеристикам, определяют общую архитектуру построения СБИС, выделяют операционные (data path) и управляющие ( FSM — Finite State Machine) блоки.
Составляют расписание операций заданного алгоритма, т.е. распределяют операции по временным тактам (scheduling) и функциональным блокам (allocating). Тем самым принимают решения по распараллеливанию и/или конвейеризации операций.
На уровне регистровых передач выполняют синтез и верификацию схем операционных и управляющих блоков, получают функциональные схемы СБИС.
Рис. 14.1. Последовательность проектных процедур на маршруте проектирования СБИС
На логическом уровне, иначе называемом вентильным (gate level), преобразуют RTL-спецификации в схемы вентильного уровня с помощью программ — компиляторов логики; здесь используются библиотеки логических элементов И, ИЛИ, И-НЕ и т. д.
Типичный маршрут проектирования СБИС включает в себя следующие процедуры [80].
2. Формирование абстрактного описания проекта для перехода к составлению расписания операций.
3. Выбор базовой технологии и типов функциональных блоков из имеющейся библиотеки функциональных компонентов, которыми могут быть регистры, сумматоры, мультиплексоры и т. п.
4. Составление расписания операций, т. е. распределение операций по временным тактам и функциональным блокам. При этом определяются типы операционных блоков (комбинационные или последовательностные) и исходные данные для синтеза управляющих блоков.
5. Разработка модели устройства на уровне RTL, т. е. синтез схем операционных и управляющих блоков.
6. Верификации выбранного решения, представленного на уровне RTL.
7. Разработка логических схем путем перевода RTL-модели в модель вентильного уровня с помощью компиляторов логики и библиотек логических элементов.
11. Верификация динамических параметров схемы с учетом задержек в проведенных межсоединениях.
12. Синтез файлов с управляющей информацией для генераторов изображений.
К процедурам конструкторского проектирования относят планирование кристалла, размещение компонентов и трассировку межсоединений. Расчет задержек в межсоединениях и их использование в процедуре верификации позволяют уточнить параметры быстродействия схемы. Результаты конструкторского проектирования передаются на этапе синтеза файлов с управляющей информацией для генераторов изображений.
В современных системах структурного синтеза на функционально-логическом уровне стремятся найти не просто работоспособное решение, но решение с оптимальным компромиссным удовлетворением требований к площади кристалла, быстродействию, рассеиваемой мощности, а в ряде случаев и к тестируемости схемы.
Формализация процедур структурного синтеза в общем случае затруднительна, поэтому для их эффективного выполнения обычно используют специализированные программы, ориентированные на ограниченный класс проектируемых схем. Характерные особенности технологии изготовления и проектирования имеются у микропроцессоров и схем памяти, у заказных и полузаказных СБИС (ASIC — Application-Specific Integrated GircuitsX), в том числе у программируемых логических интегральных схем (ПЛИС). Эти особенности обусловливают различия в методах проектирования схем и требуют их отражения в применяемом математическом и программном обеспечении ECAD.
В качестве ПЛИС широко применяют программируемые логические схемы CPLD (Complex Programmable Logic Device) и программируемые вентильные матрицы FPGA (Field Programmable Gate Array).
В случае СРLD для отражения структуры конкретной схемы в инвариантном по отношению к приложению множестве функциональных ячеек требуется выполнить заключительные технологические операции металлизации. В случае FPGA программатор по заданной программе просто расплавляет имеющиеся перемычки (fuse) или, наоборот, создает их, локально ликвидируя тонкий изолирующий слой (antifusе). Следовательно, при использовании СРLD и FPGA необходимо с помощью САПР выбрать систему связей между ячейками программируемого прибора в соответствии с реализуемыми в схеме алгоритмами и синтезировать программы управления программатором или заключительной операцией металлизации. Ячейки могут быть достаточно сложными логическими схемами, вентилями или даже отдельными транзисторами. На производстве кристаллов ПЛИС специализируется ряд фирм, например Xilinx, Altera, Actel и другие. Зачастую эти же фирмы поставляют программное обеспечение для синтеза схем на производимых ими ПЛИС.
В последнее время значительное внимание уделяется процедурам совмещенного проектирования программной и аппаратной частей СБИС (SW/HW — Software/Hardware codesing). Если в традиционных маршрутах проектирования разделение алгоритмов на части, реализуемые программно и аппаратно, происходит на самых ранних шагах, то в технологии совмещенного проектирования эта процедура фактически переносится на уровень RTL, тем самым входит в итерационный проектный цикл и может привести к более обоснованным проектным решениям. Примером подхода к совмещенному проектированию может служить методика моделирования на уровне исполнения системы команд, в соответствии с которой моделируются события, происходящие на внешних выводах таких устройств, как арифметико-логическое, встроенная и внешняя память, системная шина и т.п. Благодаря совмещенному проектированию удается не только на ранних стадиях проектирования найти и исправить возможные ошибки в аппаратной и программной частях проекта, но и отладить контролирующие тесты.