Найти тему

Понятие кремниевой компиляции в проектировании цифровых интегральных схем

Оглавление
Каждый кристалл, каждая микросхема начинается с топологии
Каждый кристалл, каждая микросхема начинается с топологии

Данная статья посвящена разъяснению понятия «кремниевая компиляция», которое уже более десятилетия широко используется в зарубежной литературе по проектированию интегральных схем. В статье рассматривается полный цикл проектирования цифровой интегральной схемы с использованием автоматизированных средств.

Бурное развитие электронных средств и технологии их производства, которые мы сейчас наблюдаем, приводит к всё большему обострению технико-экономических противоречий. С одной стороны, срок службы устройств, в т.ч. и интегральных схем (ИС), сокращается вследствие их морального старения. С другой стороны, конкурентные требования рынка приводят к необходимости сокращения длительности цикла проектирования при сохранении высокого качества ИС. Это в особенности касается специализированных ИС, предназначенных для выполнения одной специфической задачи [1].

В целях разрешения этого противоречия многие коммерческие и государственные организации США и других государств пришли к выводу о необходимости ведения интенсивных исследований, направленных на ускорение процесса проектирования электронных устройств в целом и ИС в частности. Это вело к постепенному переходу от ручного проектирования к автоматизированному. Такому переходу способствовали и другие факторы.

В конце семидесятых, Джохансен [2] выдвинул идею кремниевой компиляции, или кремниевой сборки. Он впервые использовал этот термин, под которым понимается автоматическое формирование параметризованных частей топологии. С того времени термин «кремниевая компиляция» использовался многими специалистами в области проектирования ИС, но использовался для описания почти каждой отдельной стадии в процессе автоматического проектирования. В настоящее время стараются свести понятие кремниевой компиляции к первоначальному определению Джохансена. Полный процесс автоматической генерации топологии электросхем (в т.ч. и ИС), начинающийся с высокого уровня поведенческого описания, называется синтезом проекта.

В процессе автоматизированного проектирования ИС можно выделить следующие основные этапы:

1. Разработка алгоритма функционирования устройства, который требуется реализовать в виде ИС. Этот этап выполняется человеком и заключается в выборе из имеющихся вариантов или создании нового алгоритма. При этом данный алгоритм должен полностью соответствовать требованиям ТЗ.
Данный этап проектирования является итерационным и занимает достаточно много времени. Он включает в себя отработку алгоритма, приближённую оценку результата его выполнения по выбранному критерию и анализ выполнения алгоритма с использованием полного моделирования. В зависимости от информации, полученной в результате этого процесса, алгоритм принимается, отклоняется или модифицируется, что бывает наиболее часто.

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

3. Последний шаг в процессе синтеза, который называют структурным синтезом, соответствует первоначальному определению Джохансена для кремниевой компиляции. На основании этого структурного представления, полученного на шаге поведенческого синтеза, производят изготовление фотошаблонов, отражающих расположение элементов (также называемое физическим представлением). Данный этап в настоящее время хорошо алгоритмизирован и наиболее проработан с точки зрения автоматизации.

Следует отметить, что вышеупомянутый ход проектирования упрощен. Большую часть времени проектирования занимают итерационные процессы. В зависимости от результатов шага синтеза проектировщик может принимать решение об окончании итерационного процесса или изменять уровень представления спецификации (например, структурный на поведенческий или наоборот).

Рассмотрим более подробно процесс кремниевой компиляции.

Процесс кремниевой компиляции

Как было указано ранее, процесс кремниевой компиляции переводит структурное описание проекта в физическое размещение трасс и компонентов ЦИС. Структурное описание определяет состав схемы в виде совокупности блоков и описания их соединений. Каждый блок (или модуль) ЦИС описывается множеством параметров, которыми могут быть алгоритмы функционирования, выраженные в виде булевских уравнений, длины машинных слов, операторы и др. Для больших проектов это описание чаще всего строится иерархическим способом.

Языки, называемые языками описания аппаратных средств, или HDL, вполне применимы для описания схемы на структурном уровне. Самые известные из них — VHDL [3] (наиболее применяемый в России) и Ella [4]. В системе LAGER, созданной в институте Беркли, для описания архитектуры ИС используется язык, называемый SDL (Structural Description Language или структурный язык описания).

Все инструменты структурного синтеза могут быть разделены на три основных класса: генераторы ячеек, генераторы модулей, средства размещения и инструменты формирования, которые будут подробнее рассмотрены ниже. Компилятор ячеек производит физическое расположение элементов (например, сумматоров, регистров и логических элементов) внутри ячейки. В этом случае исходными данными являются готовые схемотехнические решения или булевские уравнения, на основании которых и ведётся синтез. Они могут быть объединены в большие структуры для описания элементов со сложной структурой, таких как запоминающие устройства, программируемые логические матрицы, шины данных, с которыми оперируют генераторы модулей.

Системы проектирования позволяют объединять многократно повторяющиеся модули в подсхемы при помощи специальных планировщиков топологической структуры и инструментов формирования и размещения. Чаще всего при разработке конкретного проекта предполагается использование нескольких структурных компиляторов.

Средства кремниевой компиляции

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

Символическое расположение. Этот способ расположения — самый близкий к ручному проектированию. Проектировщик все еще принимает участие в размещении и формировании элементов, но определяет только их относительные положения и межсоединения и задаёт параметры элементов. Обозначения могут использоваться для указания структуры и типа транзисторов, проводников и других составных частей ИС. Компилятор переводит относительное размещение элементов в абсолютное (используется несколько координатных пространств) с учётом правил проектирования и ограничений, накладываемые проектировщиком (минимально допустимые расстояния между элементами и др.). В результате такого перевода ячейка должна обладать теми параметрами, которые задал проектировщик. После формирования ячейки могут корректироваться по геометрическим размерам и расположению элементов в них для обеспечения наиболее рациональной прокладки межсоединений. Для этого существуют специальные автоматизированные средства.

Данные, вводимые в систему, должны быть представлены либо в графическом, либо в текстовом виде. В случае текстового ввода символический инструмент формирования часто называется процедурным компилятором, так как при этом ячейка описывается процедурным кодом. Пример такой системы — GDT система [4] (Глобальная таблица структурированной системы соединений). В GDT применяется процедурный язык, называемый L-языком. Он используется для описания состава ячеек, функций элементов и проектных ограничений.

Символическое размещение достаточно близко к ручному проектированию, поскольку удельный вес расположенных проектировщиком элементов сопоставим со значением, характерным для ручного проектирования.

Метод компилируемых ячеек. Этот метод эквивалентен предыдущему, но в данном случае относительное (локальное) размещение элементов ИС выполняется автоматически. Типичный пример такого компилятора — Topologizer [5], который использует какие-либо правила для получения расположения элементов на подложке и для формирования разделительных слоёв полупроводника между ними. Этот метод все еще слабо проработан и редко используется в проектировании.

Применение матриц логических элементов. В некоторых случаях плотность расположения элементов не имеет чрезвычайной важности, а более важным является обеспечение минимизации площади поверхности подложки, занятой межэлементными соединениями. Матрица логических элементов (LopSO) с технической точки зрения удовлетворяет этому условию.

Разработаны и широко распространены пакеты программ, позволяющие свести к минимуму число рядов на подложке, необходимых для расположения транзисторов в ячейке.

С точки зрения технологии матрица логических элементов не является наиболее эффективной (коэффициент заполнения меньше, чем в заказных ИС), но позволяет проводить быстрое проектирование логики или ячеек с учётом оптимизации их взаимного расположения.

2. Генераторы модулей. Модуль может быть определен как основной конструкционный блок устройства (в нашем случае это ЦИС), который предназначен для выполнения одной специфической функции. Они создаются путём объединения ячеек в регулярные или нерегулярные множества. Типичными примерами модулей являются ОЗУ и ПЗУ, программируемые логические матрицы, перемножители, шины и тракты данных. Чтобы спроектированные модули имели широкое применение, они должны быть параметрическими (т.е. выполнять различные функции в зависимости от присваиваемых значений параметров).

Типичный генератор модулей использует часть процедурного кода, которая описывает топологию модуля, функции ячеек и их параметров. В зависимости от внутренней структуры модулей, получаемых в результате компиляции, можно рассматривать три типа генераторов модулей: это генераторы стандартных ячеек, плиточных модулей и компиляторы трактов данных.

Стандартные ячейки. Технология и проектирование стандартных ячеек может рассматриваться как один из первых типов кремниевой компиляции [6]. Они используются для реализации произвольной логической функции практически любой сложности. В случае использования стандартных ячеек вся площадь расположения элементов разделена на ряды ячеек. Описание таких ячеек заносится в библиотеку, а ряды их отделены друг от друга каналами, необходимыми для трассировки. Каждая библиотечная ячейка выполняет стандартную функцию, например, логические операции типа ИЛИ, И, НЕ или выполняет функции триггеров. Все ячейки должны иметь одну и ту же ширину, но могут быть различной длины, что обеспечивает возможность составления ячеек в ряды.

Как правило, ввод данных для компилирования ячеек производится перечислением необходимых ячеек библиотеки и их соединений, которые часто задаются списком. Задача компилятора состоит в формировании рядов ячеек и размещении ячеек в пределах ряда, а также в трассировке соединений между ячейками. Основная цель состоит в минимизации полной площади, занятой под соединения, и их длины. Применение стандартных ячеек является в настоящее время наиболее популярным в проектировании топологии, и широко используется для разработки ряда устройств микроэлектроники, в т.ч. сигнальных процессоров или микропроцессоров.

Плиточные модули. Плиточный модуль состоит из совокупности библиотечных ячеек, расположенных в виде черепицы таким способом, чтобы соединения, обеспечивающие внутренние связи между ячейками модуля, располагались на его границе. Такое расположение используется для построения модулей по единому образцу. Типичные плиточные модули — различные блоки памяти, программируемые логические матрицы, счётчики и сумматоры. Первые популярные генераторы плиточных модулей — это генераторы матриц Вайнберга и программируемых логических матриц [7]. Они используются для реализации произвольных логических функций.

Топология модуля задаётся процедурой, которая описывает расположение ячеек внутри модуля, их функции и параметры. Процедуры генератора могут быть вводиться в текстовом формате (как, например, в системе GDT с применением L - языка) или с использованием графических шаблонов (система SDA [8]). Компилятор обрабатывает введённые данные и с учётом набора параметров производит полную расстановку элементов. Генератор может также выдавать и другую информацию о модуле (описание средств, используемых для расстановки, оценки быстродействия и потребляемой мощности и др.).

Тракты данных. Это специальный класс модулей, которые производят преобразование данных тем или иным образом, т.е. посредством некоторых операторов. Такие устройства могут быть построенными разными способами. Компиляторы трактов данных обеспечивают автоматическое формирование и размещение элементов ИС с учётом минимизации длины соединений, в т.ч. и проходных, которые не имеют контактов с элементами ячеек, через которые проходят. Исходными данными для компиляции является список операторов и описание взаимосвязей элементов. Типичные примеры компиляторов трактов данных использованы в системах GENESIL [9] и LAGER.

3. Средства формирования и размещения. Последние шаги в проектировании ИС заключается в соединении сформированных и размещённых модулей с внешними контактными площадками. Используемые здесь средства называются средствами планировки общей топологической структуры. Главные задачи программы-планировщика — расстановка модулей и каналов для трассировки взаимосвязей. Таких планировщиков существует достаточно много; в большинстве своём они работают в интерактивном режиме.

На рис.1 приведён пример простой цифровой ИС, состоящей из тракта данных, основанного на программируемой логической матрице, контроллера и логики, которая проектируется на основе стандартных ячеек. Вся ИС спроектирована автоматически с применением набора генераторов модулей, в то время как планирование общей топологической структуры выполнено путём использования инструментов формирования и размещения элементов при участии проектировщика [10]. На рис.1 изображён итог кремниевой компиляции для сравнительно простого проекта; в общем случае проект может быть очень сложным.

Рис.1. Пример физического размещения модулей  цифровой ИС, полученного в результате кремниевой компиляции
Рис.1. Пример физического размещения модулей цифровой ИС, полученного в результате кремниевой компиляции

Об управлении базами данных при кремниевой компиляции

Кремниевая компиляция, как видно из приведённого описания, является достаточно сложным процессом. Количество данных, которые необходимы для полноценного проектирования (библиотеки ячеек, модели элементов, промежуточные физические и символические представления схемы) чрезмерно растёт с увеличением сложности проектируемого устройства. Кроме того, и число инструментов программного обеспечения (компиляторы, средства размещения и формирования ячеек, программы интерфейса, графические редакторы) очень быстро и практически неуправляемо возрастает. Поэтому упрощение, интеграция проектов и система управлением данных играют не последнюю роль для обеспечения успешной кремниевой компиляции. Средства управления данными должна обеспечивать хранение, обновление, защиту и вывод данных по проекту, в то время как управление проектом регулирует потоки данных процесса проектирования, согласует требуемые инструменты компиляции и формирует в случае необходимости модели для обеспечения адекватного моделирования.

Наиболее важно здесь использование объектов, ориентированных на базу данных стандарта ОСТ и её графическим средством вывода [11]. Все инструменты компилятора непосредственно связаны с основными данными. Базы данных OCT в настоящее время могут работать более чем с двадцатью различными компиляторами, применяемыми для реализации разнообразных типов расположения. Менеджер проекта (называемый DMoct) использует иерархические sdl-файлы, создаваемые пользователем для описания проекта, и формирует соответствующую базу данных. На каждом уровне иерархии, начиная с самого низкого, применяются свои разновидности компиляторов. Далее уровень иерархии возрастает до тех пор, пока ИС не будет полностью сформирована с точки зрения топологии. Таким образом, проект связан с системой проектирования только через информацию, указанную в sdl-файлах, и через менеджера проекта. Использование такого подхода позволяет существенно ускорить процесс автоматизированного проектирования и процесс обучения инженеров работе с САПР.

Другие этапы процесса проектирования ИС

Поведенческий синтез. При решении задач поведенческого синтеза за исходные данные берут спецификацию желаемого «поведения» устройства, а так же все необходимые ограничения, в т.ч. и ограничения по времени. Системы поведенческого синтеза производит автоматический синтез структуры, соответствующей поведенческой спецификации. Чаще всего поведенческий синтез применяется для модулей, входящих в состав ИС.

Функция системы описывается набором входных воздействий и выходными сигналами в виде функций времени. Например, поведенческое описание микропроцессора может состоять из определения функций процессора, т.е. того, что он должен исполнять.

Логический синтез. Логический синтез переводит булевское описание комбинаторной функции в цепь логических элементов таким способом, что или площадь, занятая под схему, или запаздывание прохождения сигнала в цепи минимальны (возможно сочетание того и другого).

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

Кроме того, в процессе логического синтеза производится и оптимизация рассматриваемой логической функции, что позволяет иногда существенно упростить физически реализуемую на подложке структуру.

Архитектурный синтез. Многие системы могут рассматриваться как совокупность последовательно соединённых подсхем, которыми являются память и элементы комбинаторной логики. Если использовать обычные методы логического синтеза, то временные затраты на этот этап проектирования возрастут до неприемлемого объёма. Поэтому применяются специальные методы синтеза, ориентированные на конкретную (предполагаемую) архитектуру ИС, и обладающие во много раз меньшими затратами. Данный вид синтеза называется архитектурным.

Как видно из изложенного, процесс кремниевой компиляции (структурного синтеза) оказывается наиболее проработанным с теоретической и практической точки зрения, чем любой другой этап в процессе автоматизированного проектирования. Это объясняется, прежде всего, большой значимостью процесса кремниевой компиляции, его общей трудоёмкостью и значительными вычислительными затратами в процессе его проведения.

Значение процесса кремниевой компиляции заключается в том, что именно эта стадия процесса проектирования во многом определяет общую длительность проектирования и качество, надёжность изделий, которые будут произведены на основе готового проекта, их стоимость, что особенно важно при массовом производстве. В настоящее время можно прогнозировать как дальнейшее развитие области логического синтеза ИС, так и совершенствование процесса и средств кремниевой компиляции.

Литература

1. Rabaey J. Silicon compilation and design synthesis for digital system // EECS Department, University of California, Berkeley, USA.

2. Johannsen D. Bristle Blocks: A Silicon Compiler // Proc. 16th Design Automation Conference, pp. 310-313. 1979.

3. Библо П.Н. Основы языка VHDL // «Солон-Р», М., 2000.

4. Bunch M. Design of Module Generators and Silicon Compilers // in Silicon Compilation, pp. 49-94, Addison Wesley, 1988.

5. Kollaritsch P., Weste N. TOPOLOGIZER: An Expert System Translator of Transistor Connectivity to Symbolic Cell Layout // IEEE Journal of Solid State Circuits, Vol. SC-20 No3. pp. 799-804, June 1985.

6. Mattison R. Design Automation of MOS Artwork // Computer, vol. 7, pp. 21-28, Jan. 1974.

7. De Man H. et all. PLASCO: A Silicon 'Compiler for Nmos and Cmos PLA's // Proc. VLSI-83, Trondheim, pp. 171-181. 1983.

8. Law H., Wood G. and Lam M. An Intelligent Composition Tool for Regular and Semiregular VLSI structures // in Silicon Compilation, pp.113-121, Addison Wcs-ley, 1988.

9. Cheng E., Mazar S. The GENESIL Silicon Compiler // in Silicon Compilation, pp. 361-405, Addison Wesley. 1988.

10. Rabaey J., Pope S., Brodcrscn R., An Integrated Automated Layout Generation System for DSP Circuits // IEEE Trans. on CAD, vol. CAD-4, pp285-296, July 1985.

11. D. Hamson, P. Moore, R. Spickelmier and R. Newton, "Data Management and Graphics Editing in the Berkeley Design Environment", Proceedings IEEE ICCAD Conference 1986, Santa Clara, Nov. 1986.

Искренне Ваш, Главный научный сотрудник

P.S. Прошу подписываться на мой канал! Считаю, что мой опыт и научные достижения должны стать общедоступными. Только оригинальные статьи, собственные наработки!