При этом каждый раз моделирование осуществляется с новым набором параметров, задаваемых случайным образом. Например, если предусмотрен графический вывод испытаний с помощью программы Probe, максимальное количество испытаний n = 400. На одну диаграмму Probe могут быть выведены результаты 399 испытаний. Отклонения значений элементов от номинальных задаются с помощью генератора случайных чисел. Случайное значение параметра x рассчитывается по формуле
где xном – номинальное значение параметра, указанное пользователем;
D – относительный разброс параметра x ;
– центрированная случайная величина, принимающая значения на
отрезке (-1, + 1).
В программе Pspice имеются генераторы случайных чисел с двумя законами распределения:
UNIFORM – равномерное распределение на отрезке (– 1, + 1);
GAUSS – гауссовское распределение на отрезке (– 1, + 1) с нулевым средним и среднеквадратическим отклонением = 0.25.
По умолчанию выбирается равномерное распределение.
Статистические испытания по методу Монте-Карло могут проводиться при расчете режима по постоянному току, анализе переходных процессов или расчете частотных характеристик. Проведение статистического анализа по методу Монте-Карло позволяет определить многие важные характеристики электронных цепей. Например, по величине отклонения частотных характеристик можно судить о чувствительности цепи.
При статистическом анализе предусматривается разнообразная статистическая обработка результатов моделирования. Возможны следующие виды обработки:
расчет максимального отклонения текущей реализации от номинальной;
расчет максимального значения в каждой реализации;
расчет минимального значения в каждой реализации;
В САПР статистический анализ осуществляется численным методом — методом Монте Карло (статистических испытаний). В соответствии с этим методом выполняются N статистических испытаний, каждое статистическое испытание представляет собой одновариантный анализ, выполняемый при случайных значениях параметров-аргументов. Эти случайные значения выбирают в соответствии с заданными законами распределения аргументов xi. Полученные в каждом испытании значения выходных параметров накапливают, после N испытаний обрабатывают, что дает следующие результаты:
а) гистограммы выходных параметров;
б) оценки математических ожиданий и дисперсий выходных параметров;
в) оценки коэффициентов корреляции и регрессии между избранными выходными и внутренними параметрами, которые, в частности, можно использовать для оценки коэффициентов чувствительности.
Статистический анализ, выполняемый в соответствии с методом Монте-Карло, — трудоемкая процедура, поскольку число испытаний N приходится выбирать довольно большим, чтобы достичь приемлемой точности анализа. Другая причина, затрудняющая применение метода Монте-Карло, — трудности в получении достоверной исходной информации о законах распределения параметров-аргументов xi.
Методологию моделирования Монте Карло в Cadence (например, в среде «Spectre») можно объяснить на примере проектирования схем, в составе которых есть резисторы, параметры которых имеют отклонения от номинального в случайной последовательности.
Рис. 5.1. Структура PDK
Каждая библиотека состоит из ячеек, которые в свою очередь содержат виды (рис. 5.2).
Рис. 5.2. Виды ячеек
Таким образом, создавая сложные структуры, используя инстанции, получается иерархический проект. В Cadence можно работать во всех уровнях иерархии. Когда открываем проект, мы попадаем на самый верхний уровень иерархии.
Так как существует много различных технологий (тех. процессов), с различными правилами проектирования и свойствами элементов, Cadence должен знать информацию о технологии, с которой работает. Эта информация хранится в технологическом файле или в технологической библиотеке. Каждая библиотека, в свою очередь, подключается к своей технологической библиотеке.
Технологические библиотеки содержат информацию о:
а) Проводниках, контактах, транзисторах;
б) Design Rules (правила проектирования) – минимальные размеры объектов и расстояния между ними;
в) Display – цвета и шаблоны отображаемые на экране;
г) Электрические свойства: сопротивление, емкость.
В Cadence используется язык программирования skill. C помощью этого языка можно автоматизировать многие операции. Подробнее об этом языке можно прочитать в документации Cadence.
Для создания вида schematic используется инструмент Virtuoso Schematic Composer. Это интерактивный редактор для построения вида schematic посредствам добавления основных компонент (транзисторы, резисторы, емкости и т.д.) и соединения их друг с другом. Значения (свойства) компонент можно выставить в соответствии со спецификацией. Можно также добавить текст и комментарии.
В схемотехническом редакторе также можно создать вид symbol. Вид symbol можно использовать в других частях конструкции.
Инструмент моделирования – «Spectre», «UltraSim» запускается из схемотехнического редактора и все необходимые файлы для моделирования формируются автоматически. Моделирование проводят на так называемом тестовом «стенде» - это отдельный вид, который тоже является видом редактора Composer-Schematic, в котором проект присутствует как инстанция. Стенд так же содержит источники сигналов и питания.
Для создания топологии используется Virtuoso Layout Editor. Топология состоит из геометрических фигур разных цветов. В зависимости от формы, размера и цвета слоя в дальнейшем формируется литографическая маска.
В топологическом редакторе можно использовать инстанции, т. е. топология тоже может иметь иерархическую структуру.
Для проверки топологии на соответствие электрическим и геометрическим правилам существуют инструменты проверки DRC (Design Rules Checks).
Rule-файл – это текстовый файл, содержащий в себе исходный код всех используемых при верификации правил и информацию об экстрактируемых приборах для процесса экстракции из топологии.
Для написания rule-файлов используется специально разработанный интерфейс. Он имеет ряд особенностей, отличающих его от всех остальных языков высокого уровня.
Обобщённая структура rule – файла включает следующие виды записей:
- Назначение слоёв.
- Глобальная генерация слоёв
- Комментарии
- Ссылки на другие файлы
- Описание правила
- Описание глобальных переменных
- Описание операций экстракции соединений
- Описание операций экстракции паразитных элементов
Применительно к проверке правил проектирования, правило описывается следующим образом:
[имя проверки ] {@[комментарий]
[слой1]
[слой2]
},
где [имя проверки] – уникальное имя проверки, которое не должно повторяться и под которым результат проверки(при его наличии) будет внесён в отчёт о проверке;
[слой1], [слой1] – имена слоёв или операции над слоями, результат которых будет являться результатом проверки нарушения этого правила.
[комментарий] – текстовый комментарий, который будет включён в отчёт вместе с сообщением о результате проверки.
Пример:
A1151 {@Minimum DIFF width ... 0.8
INT DIFF < 0.8 ABUT>0<90 SINGULAR
}
При обнаружении полигонов, удовлетворяющих вышеуказанному условию, они будут включены в отчёт о проверке как результат правила, то есть ошибка. Комментарием к результату будет являться выражение «Minimum DIFF width ... 0.8», в переводе означающее «минимальная ширина диффузии 0.8». Это позволяет непосредственно указать на ошибку в проверяемой топологии. Рекомендуется в каждом правиле использовать чёткий комментарий, точно указывающий на ошибку и возможные пути её устранения.
Для описания экстракции соединений используются 6 основных записи: ATTACH, CONNECT, DISCONNECT, LABEL ORDER, SCONNECT, STAMP.
Экстракция приборов производится с помощью операции экстракции:
«DEVICE [element name] ([model name]) [device layer] [pin layer] ([pin name]) … <[auxiliary layer]> … ([swap list]) NETLIST MODEL [netlist model name] NETLIST ELEMENT [netlist element name] TEXT MODEL LAYER [text layer] TEXT PROPERTY LAYER [text layer] [ [property specification] ] » - Эта операция экстрактирует прибор с именем [element name] и соответствующей ему моделью [model name]. При этом к имени элемента добавляется его номер с целью избежать повторения. Нумерация начинается с 0.
Здесь: [device layer] – слой-признак для данного типа элемента(он должен соответствовать только этому элементу и никакому другому), [pin layer] ([pin name]) – задание терминалов элемента: в слое [pin layer] располагается терминал с именем [pin name].
Если при вычислении параметров используются какие-либо слои, кроме слоя-признака и слоёв терминалов, то они должны быть перечислены как вспомогательные слои ( <[auxiliary layer]> ). «[swap list]» - список взаимозаменяемых терминалов (терминалы конденсатора, сток и исток КМОП транзистора), его элементами могут быть как названия терминалов, так и названия слоёв этих терминалов. Терминалы в одинаковых слоях автоматически считаются взаимозаменяемыми.
Пример использования списка значений: «DEVICE R resistor_layer metal1 metal2 » - эта операция экстрактирует резистор с именем «R», слоем-признаком является «resistor_layer», два терминала резистора располагаются в слоях «metal1», поверхностное сопротивление резистора равно 0.047 Ом/мкм2 (рис.5.3). В данном случае используется стандартный элемент R. Результатом этой экстракции будет элемент схемы вида: «R3 CLK VDD 0.5» - резистор с автоматически сгенерированным именем R3, автоматически вычисленным сопротивлением 0,5 Ом, подключённый к узлам «CLK» и «VDD». Этот способ вычисления параметров не позволяет корректно вычислять параметры резисторов сложной формы.
Рис. 5.3. Топология резистора RSN сложной формы
Рассмотрим генерацию слоев при разработке правил для слоя POLY1. Правила для слоя POLY описаны в табл. 5.1.
Таблица 5.1
Описание правил для слоев POLY
Рис.5.4. Иллюстрация правил для слоев POLY
Другие правила проектирования (DRC) для слоев и приборов приведены в табл. 5.2. Каждое правило пояснено соответствующими иллюстрациями, изображенными на рис. 5.4, рис. 5.5.
Таблица 5.2
Описание правил для слоев N+ IMPLANT
Рис. 5.5. Иллюстрация правил для слоя N+ IMPLANT
Все компоненты (аналоговые и цифровые), из которых составляется электрическая принципиальная схема, имеют математические модели двух типов:
а) Встроенные математические модели стандартных компонентов, таких, как резисторы, конденсаторы, диоды, транзисторы, независимые и зависимые источники сигналов, логические вентили и др., которые не могут быть изменены пользователями; можно только изменять значения их параметров. В свою очередь, встроенные модели подразделяются на две категории:
простые модели, характеризуемые малым количеством параметров, которые можно указать непосредственно на схеме в виде атрибутов (например, модель резистора описывается одним - тремя параметрами, причем часть из них можно сделать на схеме невидимыми, чтобы не загромождать чертеж);
сложные модели, характеризуемые большим количеством параметров, которые заносятся в библиотеки моделей (например, модель биполярного транзистора характеризуется 52 параметрами).
б) Макромодели произвольных компонентов, составляемые пользователями по своему усмотрению из стандартных компонентов.
В spice-программе моделируемое устройство может быть описано двумя способами:
- в виде чертежа его принципиальной электрической или функциональной схемы;
- в виде текстового описания в формате SPICE.
Кроме того, при составлении принципиальной схемы часть параметров моделей компонентов задается в виде их атрибутов и указывается непосредственно на схеме. Такие модели будем называть моделями в формате схем. Остальные модели задаются в текстовом окне с помощью директив .MODEL и .SUBCKT по правилам SPICE. Их так и будем называть - моделями в формате SPICE.
В Spice-проограммах используется две модели резисторов: идеальная и реальная. В идеальной модели резистор - это идеальный элемент, обладающий только заданным сопротивлением. В реальной модели учитываются температурные коэффициенты резистора.
Сопротивление рассчитывается по формуле:
<сопротивление>* R[1+TC1(T-T0) + TC2(T-T0)2];
где R - масштабный множитель сопротивления;
ТС1,ТС2 - линейный и квадратичный ТКС;
Т0 - номинальная температура окружающей среды (по умолчанию 270С); Т - текущая температура.
Если же указан экспоненциальный температурный коэффициент сопротивления ТСЕ, то сопротивление резистора рассчитывается по формуле:
<сопротивление>* R*1,01ТСЕ(Т-Т0),
где ТСЕ - экспоненциальный температурный коэффициент.
Для использования реальной модели параметры резисторов задаются с помощью директивы .Model:
Рххх<+узел> <-узел> <имя модели> <сопротивление>
.Model <имя модели> <имя типа > [<имя параметра>= <значение>]
где ххх - произвольная алфавитно-цифровая последовательность (не более 7 cимволов).
Пример:
R12 3 0 RTEMP 5k
.Model RTEMP RES (R=1 TC1=0.2 TC2=0.005)
Здесь: R12 – имя компонента, 3 и 0 – узлы, RTEMP – имя модели, 5к – сопротивление, RTEMP – имя модели, RES – имя типа.
Если требуется учесть частотные свойства резистора, то в схеме резистор надо заменить его эквивалентной схемой, состоящей из параллельного соединения резистора и конденсатора.