
- •Исследование, разработка и применение параметризованных аналоговых элементов в составе библиотеки аналоговых базовых и сложно-функциональных блоков.
- •210100 «Электроника и наноэлектроника»
- •Глава 1. Литературный обзор. 7
- •Глава 2. Исследование и разработка оптимальных параметризованных элементов второго уровня под выбранный класс задач. 30
- •Глава 3. Применение спроектированных параметризованных аналоговых ячеек второго уровня в составе базовых блоков. 81
- •Введение.
- •Положения, выносимые на защиту.
- •Основная часть. Глава 1. Литературный обзор.
- •Автоматизация проектирования аналоговых микросхем. Обзор существующих решений.
- •Pcell – определение, способы реализации и применение.
- •Аналоговые ячейки второго уровня. Их применение.
- •Специфика физического проектирования.
- •Причины рассогласования элементов и способы их устранения.
- •Построение согласованных элементов.
- •Размещение согласуемых элементов с общим центром.
- •Уменьшение технологического влияния соседних структур для лучшего согласования элементов.
- •Рекомендации по согласованию моп-транзисторов.
- •Рекомендации по согласованию конденсаторов.
- •Методы защиты от включения тиристорной защелки.
- •Язык skill. Краткие сведения.
- •Выводы.
- •Глава 2. Исследование и разработка оптимальных параметризованных элементов второго уровня под выбранный класс задач.
- •Введение.
- •Построение элементарных параметризованных ячеек.
- •Определение изменяемых параметров.
- •Создание топологических эскизов.
- •Построение ячейки транзистора на языке skill.
- •Оптимизация программного кода.
- •Построение параметризованных аналоговых ячеек второго уровня.
- •Способы применения элементарных ячеек в составе проектируемых аналоговых ячеек второго уровня.
- •Согласование элементов на примере построения матрицы согласованных конденсаторов с соотношением элементов 1:1.
- •Построение разводки.
- •Использование элементов защиты.
- •Способы задания изменяемых параметров и их ограничений.
- •Оптимизация ячеек.
- •Методика проектирования высокоточных параметризованных аналоговых ячеек второго уровня на языке skill.
- •Глава 3. Применение спроектированных параметризованных аналоговых ячеек второго уровня в составе базовых блоков.
- •Компаратор.
- •Операционный усилитель.
- •Устройство выборки и хранения (увх).
- •Преимущества и недостатки использования спроектированных параметризованных аналоговых ячеек второго уровня.
- •Заключение.
- •Список литературы.
- •Приложение.
Способы задания изменяемых параметров и их ограничений.
В разработанных нами ячейках необходимо определить изменяемые параметры. Для этого в среде Cadence предусмотрена специальная структура, название которой в переводе с английского означает формат описания компонентов (CDF).
Существует 2 способа определения изменяемых параметров с помощью данной структуры:
использую функцию в окне командного интерпретатора
Tools -> CDF -> Edit
В появившемся окне задаются названия параметров и их значения по умолчанию.
Использую SKILL код
Для каждой ячейки пишется своя программа, в которой с помощью специальных функций указываются изменяемые параметры.
Предпочтительнее использовать второй вариант, так как при переносе библиотеки, в которой хранятся параметризованные ячейки, в другое место, все заданные настройки собьются. В новой библиотеке необходимо будет заново прописывать все параметры.
Рассмотрим структуру кода.
В начале программы указывается название библиотеки и ячейки, для которой описываются параметры:
LIBRARY = "Lib2013"
CELL = "eAK01"
Определения изменяемых параметров:
cdfCreateParam(
?name "l" - название параметра, должно совпадать с названием в коде для прорисовки топологии
?prompt "length" - название параметра, которое будет видеть пользователь
?defValue "180n" - значение параметра по умолчанию
?type "string" - тип параметра
)
Таким образом указываются все изменяемые параметры. При использовании ячейки все эти параметры будет видеть пользователь.
Проверка параметров.
В спроектированных нами ячейках параметры имеют свои ограничения, обусловленные технологическими нормами. Например, ширина транзистора не может быть меньше 280 n, а его длина – меньше 180n. Для того, чтобы пользователь видел неправильно введенные значение предусмотрена проверка параметров. Для этого пишется код, в котором для каждого параметра прописываются свои ограничения.
Рассмотрим структуру кода проверки.
procedure( eAK01_geometry_verify( ) – название процедуры
prog(()
Проверка параметра l. Максимальное значение равно 20 мкм.
val = evalstring(cdfgData->l->value)*1e6 – с помощью данного выражения компилятор проверяет параметр l, каждый раз когда пользователь меняет его значение.
l_max = 20
if(val > l_max then
artError("An error occured while evaluating Length.")
hiDisplayAppDBox( ?name 'geometryError
?dboxBanner "*Error*"
?dialogType hicErrorDialog
?dialogStyle 'modeless
?buttonLayout 'Close
?dboxText "Значение параметра больше, чем l_max (20u) \n"
)
cdfgData->l->value = sprintf(nil "%s" l_max)
return(nil)
))
Когда значение параметра больше установленного ограничения, компилятор выдаст сообщение об ошибке и присвоит параметру значение по умолчанию.
Каждый параметр имеет свое название процедуры, которое прописывается при описании изменяемых параметров.
cdfCreateParam(
?name "l"
?callback eAK01_geometry_verify( ) – название процедуры для проверки ограничений
….
)
При написании проверок мы столкнулись с проблемой неправильной записи числа, при вычислении выражений. Например, результатом выражения (3+3)/2 будет число 3, но система записывает это число, как 3.00000000012 и поэтому может выдавать неправильные результаты. Для решения данной проблемы мы придумали следующую последовательность действий:
w_1 = a*b - вычисляемое выражение, результатом которого является число
sprintf(w_2 "%6.3f" w_1) - перевод полученного значения в число с тремя знаками после запятой, результатом данной функции является строка
w = evalstring(w_2) - перевод строки в число