Разработка методики проектирования параметризованных аналоговых ячеек

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 16.05.2014
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

Для этого мы пользуемся операторами if, when, for. Используем циклы и конструкции вида:

if ([условие] then [действие]

else [действие]

)

for (i 1 5

[действие, зависящее от значения переменной цикла (i)]

)

when ([условие]

[действие, которое производится, когда выполняется условие]

)

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

if (sd == «Source» then - условие: если первым идет исток

numbSources = floor (Nfing /2) + 1 - высчитываем количество истоков

numbDrains = ceiling (Nfing /2) - высчитываем количество истоков

originS_X = width - 2*drmMetal1Space - высчитываем координаты первого истока

originD_X = length - 2*drmMetal1EncCont - высчитываем координаты первого стока

)

Для построения фигур используются функции rodCreateRect() и rodCreatePath(). В качестве аргументов используются параметры и координаты, которые были высчитаны ранее.

figure = rodCreateRect (

? layer list («poly» «drawing») - описание слоя

? width Width - описание ширины

? length Length - описание длины

? origin (x1: y1) - описание координат расположения слоя

Описание электрических терминалов:

? termName «G» - определение названия терминала

? termIOType «inputOutput» - описание назначения

? pin t - подтверждение использования пина

? pinAccessDir list («top» «bottom» «left» «right») - расположение пина относительно центральной точки основного металла

)))

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

С помощью данной функции создаются терминалы транзистора: G (затвор), S (исток), D (сток), B (подложка).

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

atof() - переводит строку в число с плавающей точкой.

evalstring() - читает и вычисляет выражение, хранящееся в строке.

floor() - возвращает наибольшее целое число, не больше, чем данное.

ceiling() - возвращает наименьшее целое число, не меньше, чем данное.

oddp() - проверяет является ли число нечетным. В результате выполнения данной функции, будет выведено либо nil (если число четное), либо t (если число нечетное).

evenp() - проверяет является ли число четным. В результате выполнения данной функции, будет выведено либо nil (если число нечетное), либо t (если число четное).

sprintf() - присваивает результат введенной строки переменной, которая задана в качестве первого аргумента.

round() - переводит число с плавающей точкой в ближайшее целое.

Прокомпилировав код, мы получили ячейку транзистора. Проверка правил проектирования (DRC-проверка), не выявила ошибок. Спроектированная нами топологическая конструкция полностью соответствует поставленной задаче (Рис. 2.9).

Рисунок 2.9. Ячейка транзистора, написанная на языке SKILL

Таким же способом были созданы n-канальный МОП транзистор, поликремневый конденсатор (Рис. 2.10.) и несалицидированный n+ поликремневый резистор (Рис. 2.11.). Для проектирования были выбраны данные ячейки как наиболее часто употребляемые.

В качестве изменяемых параметров для конденсатора были выбраны ширина и длина. Для построении использовались слои: polyfg, hvwell, poly, nplus, matrix, mcapa, metal1, contac.

Рисунок 2.10. Ячейка конденсатора, написанная на языке SKILL

В качестве изменяемых параметров для резистора были выбраны ширина и длина. Для построении использовались слои: poly2, siprot, poly, nplus, metal1, contac.

Рисунок 2. 11. Ячейка резистора, написанная на языке SKILL

Рекомендации для написания кода.

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

Для удобства редактирования кода рекомендуем вставлять комментарии к выполняемым действиям и задавать понятные, соответствующие назначению, параметры. Это поможет быстро вспомнить код, если потребуется к нему вернуться через какое-то время.

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

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

Оптимизация программного кода.

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

После создания первой версии ячейки нами была проведена оптимизация кода. Были сделаны следующие изменения:

1) использованы зависимые слои;

2) улучшен способ создания контактов;

3) применен подход для быстрого перехода на новую технологию.

Применение зависимых слоев и использование «распределенных контактов».

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

1) Загромождение кода - много внутренних параметров.

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

2) Не распределенные контакты в области стока / истока, что плохо, так как подаваемое в эти области напряжение распределяется неравномерно.

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

Для минимизации кода было предложено создавать зависимые слои. За основу берется один слой, а все остальные строятся относительно него. Для этого была использована функция rodAlign(), которая позволяет выравнивать объекты относительно друг друга. Это сократило код, так как не нужно было высчитывать координаты каждого слоя, но не решила проблему расположения контактов. Их можно было уже расположить либо с определенного края, либо по центру. Но расстояние между ними было так же фиксировано (Рис. 2.13, 2.14).

Рисунок 2.12. Пример создания контактов путем простого перебора условий

Рисунок 2.13. Примеры создания контактов с помощью функция rodAlign() выравнивание по нижнему краю

Рисунок 2.14. Примеры создания контактов с помощью функция rodAlign() выравнивание по центру

В качестве решения обоих проблем мы использовали функции rodCreateRect() и rodCreatePath(), с дополнительными свойствами:

? encSubPath - позволяет создавать один слой перекрывающий другой

? offsetSubPath - позволяет создавать слои, ориентированные относительно главного слоя

? subRect или? subRectArray - позволяют создавать слои или массивы слоев. Это свойство можно использовать для создания «распределенных контактов»:

? subRectArray

list (list(

? layer list («contact» «drawing») - описание слоя

? width drmContWidth - описание ширины

? length drmContWidth - описание длины

? gap «distribute»

? spaceY drmContSpace - расстояние между контактами

? lowerLeftOffsetX drmMetal1EncCont - описание выступа нижней левой точки слоя относительно главного слоя (по оси Х)

? lowerLeftOffsetY drmMetal1EncCont - описание выступа нижней левой точки слоя относительно главного слоя (по оси Y)

? upperRightOffsetX - drmMetal1EncCont - описание выступа верхней правой точки слоя относительно главного слоя (по оси Х)

? upperRightOffsetY - drmMetal1EncCont - описание выступа верхней правой точки слоя относительно главного слоя (по оси Y)

))

Указываются смещения нижней и верхней точки относительно главного слоя, минимальное расстояние между контактами и их размеры (Рис. 2.15). По всей длине создаются контакты. Их количество зависит от заданной длины.

Рисунок 2.15. Распределенный контакт

Это значительно сократило код и решило проблемы с контактами.

Переход на новую версию технологии.

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

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

drmPolyExtActive = 0.20; определяет минимальное расстояние, на которое слой «Poly» должен выступать за слой «Active» (Правило 13-3).

drmMetal1MinWidth = 0.32; определяет минимально-допустимую ширину слоя «Metal1» (Правило 23-1).

drmPplusSpace = 0.48 ; определяет минимально-допустимое расстояние между одинаковыми слоями «Pplus» (Правило 17-2).

drmMetal1EncCont = 0.04; определяет минимальное расстояние, на которое слой «Metal1» должен перекрывать слой «Cont» (Правило23-3).

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

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

tfId = techGetTechFile (ddGetObj («Lib2013»))

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

pplusActiveEnclose = techGetOrderedSpacingRule (tfId «minEnclosure» «pplus» «active») - определяет минимальное расстояние, на которое слой «pplus» должен перекрывать слой «active»

polyWidth = techGetSpacingRule (tfId «minWidth» «poly») - определяет минимально допустимую ширину слоя «poly»

nwellActiveSep = techGetSpacingRule (tfId «minSpacing» «nwell» «active») - определяет минимальное расстояние между слоями «nwell» «active»

Значение шага сетки, указанное в технологическом файле:

grid = techGetMfgGridResolution (tfId)

Данное решение позволяет существенно сократить время при переходе на новую версию технологии.

3. Применение спроектированных параметризованных аналоговых ячеек второго уровня в составе базовых блоков

Аналоговые ячейки второго уровня, такие как матрицы согласованных конденсаторов, аналоговые ключи, токовые зеркала, дифференциальные пары и др., широко используются при проектировании интегральных микросхем, работающих в широком диапазоне питающих напряжений. Они входят в состав базовых блоков, таких как источники тока, компараторы, операционные усилители, интеграторы, дифференциаторы, схемы выборки-хранения, пиковые детекторы, УВХ, разные фильтры и другие.

На основе созданных на языке SKILL аналоговых ячеек второго уровня нами были построены компаратор, операционный усилитель и УВХ, как наиболее распространенные и широко используемые в современных устройствах базовые блоки.

В дальнейшем спроектированные с использованием созданных аналоговых ячеек второго уровня базовые блоки могут применяться в составе СФ - блоков, СБИС, системах на кристалле и т.д.

3.1 Компаратор

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

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

Рис. 3.1. Схема компаратора

На создание топологического эскиза согласованных ячеек уходит большая часть времени. На рисунке 3.2 представлена топология компаратора, созданная вручную.

Рис. 3.2. Топология компаратора, созданная вручную с нуля

Рис. 3.3. Топология компаратора на основе параметризованных аналоговых ячеек второго уровня

Как видно из рисунков 3.2 и 3.3 компаратор, созданный вручную, занимает меньшую площадь. Проведем численный расчет площадей и найдем их разницу.

S1 = 60*38 = 2280 мкм2 - площадь компаратора, созданного вручную.

S2 = 47*40 = 1880 мкм2 - площадь компаратора, созданного на основе параметризованных аналоговых ячеек второго уровня.

Мы получили, что площадь компаратора, созданного на основе параметризованных ячеек второго уровня, на 17% больше. При этом зафиксировано уменьшение времени проектирования данного устройства примерно в 3 раза.

3.2 Операционный усилитель

На рисунке 3.4 приведена схема операционного усилителя. В его состав сходят 3 токовых зеркала и 2 дифференциальные пары.

Рис. 3.4. Схема операционного усилителя

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

Рис. 3.5. Топология операционного усилителя на основе параметризованных аналоговых ячеек второго уровня

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

3.3 Устройство выборки и хранения (УВХ)

УВХ является компонентом большинства аналого-цифровых преобразователей. Оно имеет аналоговый вход, аналоговый выход и цифровой управляющий вход. Запоминающим элементом в устройстве выборки и хранения является конденсатор. Для его включения и отключения от входной цепи используется аналоговый ключ. Для обеспечения высокого входного и низкого выходного сопротивления используются усилители. На рисунке 3.6 приведена схема рассматриваемого устройства.

Рис. 3.6. Схема УВХ

При построении топологии мы использовали созданные нами матрицы согласованных конденсаторов, токовые зеркала, дифференциальные пары и аналоговые ключи. Это значительно сократило время проектирования, так как необходимо было лишь соединить готовые ячейки. На рисунке 3.7 показана полученная топология УВХ.

Рис. 3.7. Топология УВХ на основе параметризованных аналоговых ячеек второго уровня

Рассмотренные нами блоки войдут в библиотеку базовых блоков, которые будут применять при построении топологии СФ - блоков, СБИС, систем на кристалле и т.д.

3.4 Преимущества и недостатки использования спроектированных параметризованных аналоговых ячеек второго уровня

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

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

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

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

При этом почти в 2 раза сокращено время проектирования, а значит и затраты, необходимые на создание проекта. Таким образом, мы добились необходимого результата.

1) На основе созданных параметризованных аналоговых ячеек второго уровня были построены некоторые наиболее используемые базовые блоки.

2) Выявлены достоинства и недостатки использования созданных аналоговых ячеек в базовых блоках.

Заключение

В данной магистерской диссертации рассмотрен маршрут создания параметризованных элементарных ячеек на языке SKILL, необходимых для создания параметризованных аналоговых ячеек второго уровня.

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

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

На основе созданных параметризованных ячеек второго уровня были построены базовые блоки, такие как компаратор, операционный усилитель и УВХ. Применение готовых параметризованных ячеек в составе данных блоков подтвердило значительное сокращение времени проектирования. Таким образом, мы выполнили заданные требования. Созданные ячейки выполняют свою задачу и удовлетворяют условиям поставленной задачи.

В дальнейшем на основе разработанной методики проектирования будут создаваться аналоговые ячейки второго уровня. Также будут улучшаться уже спроектированные ячейки. На основе созданных ячеек будут создаваться базовые блоки, СФ - блоки, СБИС и т.д.

Результаты работы будут использованы при выполнении ОКР «Преобразователь-16» в рамках ФЦП №1.

Список литературы

микросхема топологический проектирование ячейка

1) Virtuoso® Parameterized Cell Reference. Cadence. Product Version 5.0. 2002

2) Библиотека функциональных ячеек - инструмент для проектирования заказных БиКМОП - микросхем. В. Гришков, Е. Коннов, С. Шведов - 2014. / http://www.russianelectronics.ru/developer-r/review/doc/6788/

3) Автоматизация проектирования библиотек стандартных элементов на основе параметризованных ячеек в САПР Cadence. Крупкина Т.Ю., Лосев В.В., Муханюк Н.Н., Путря М.Г. 2008

4) Особенности проектирования топологии дифференциальных пар и токовых зеркал базовых сложнофункциональных блоков субмикронных интегральных микросхем типа «система-на-кристалле». М.С. Карпович, Ю.П. Лебедев. 2012

5) Проектирование аналоговых КМОП-микросхем. В.И. Эннс, Ю.М. Кобзев. 2005

6) Построение топологии токовых зеркал. Е. Кириллова. 2008

7) Физическое проектирование прецизионных аналоговых блоков в цифро-аналоговых ИМС. Е. Кириллова. 2007

8) Defining Parameterized Cell using Cadence SKILL. V. Grozdanov, M. Hristov. 2008

9) SKILL Language Reference. Cadence. Product Version 06.30. 2008

10) Virtuoso® Relative Object Design User Guide. Cadence. Product Version 5.0. 2002

11) П. Хоровиц, У. Хилл. Искусство схемотехники. - М, «Мир». 1989

Размещено на Allbest.ru


Подобные документы

  • Производства аналоговых и цифро-аналоговых интегральных микросхем. Факторы, требующие учета при проектировании. Маршрут проектирования аналоговых интегральных систем. Средства проектирования пакета Cadence. Влияние цифрового шума на аналоговые блоки.

    реферат [147,6 K], добавлен 13.02.2014

  • Ландшафт, ландшафтные объекты и способы их описания. Основные этапы проектирования. Особенности проектирования ландшафтных объектов. Обоснование необходимости автоматизации процесса проектирования ландшафтных объектов. Разработка АРМ.

    дипломная работа [2,9 M], добавлен 06.12.2006

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

    курсовая работа [3,3 M], добавлен 12.01.2015

  • Виды и структура художественного проектирования. Феномен и специфика графического дизайна. Закономерности и принципы формообразования объектов художественного проектирования. Основные средства композиции. Этапы процесса художественного проектирования.

    курсовая работа [8,1 M], добавлен 13.03.2014

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

    реферат [513,0 K], добавлен 19.01.2011

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

    курсовая работа [1,9 M], добавлен 11.12.2012

  • Основные типы шаблонов проектирования. Типы связей, которые могут применяться при объектно-ориентированном программировании. Обзор и реализация порождающих, структурных и поведенческих шаблонов проектирования. Шаблоны "Command", "Front Controller".

    курсовая работа [3,1 M], добавлен 01.06.2014

  • Состав, содержание и документирование работ на стадиях создания систем автоматизированного проектирования. Стандарты создания технологического оборудования, тактико-техническое задание и технико-экономическое обоснование комплекса средств автоматизации.

    курсовая работа [26,9 K], добавлен 22.11.2009

  • AutoCAD как одна из самых популярных графических систем автоматизированного проектирования, круг выполняемых ею задач и функций. Технология автоматизированного проектирования и методика создания чертежей в системе AutoCAD. Создание и работа с шаблонами.

    лекция [58,9 K], добавлен 21.07.2009

  • Концепция автоматизированного проектирования. Внедрение в практику инженерных расчетов методов машинной математики. Создание автоматизированных рабочих мест. Принцип декомпозиции при проектировании сложных конструкций, использование имитационных систем.

    реферат [57,1 K], добавлен 30.08.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.