Директивы моделиpования
Программа PSpice рассчитывает следующие характеристики электронных цепей:
– режим цепи по постоянному току в “рабочей точке”;
– режим по постоянному току при вариации источников постоянного напряжения или тока, температуры и других параметров цепи;
– чувствительность характеристик цепи к вариации параметров компонентов в режиме по постоянному току;
– малосигнальные передаточные функции в режиме по постоянному току;
– характеристики линеаризованной цепи в частотной области при воздействии одного или нескольких сигналов;
– спектральная плотность внутреннего шума;
– переходные процессы при воздействии сигналов различной формы;
– спектральный анализ;
– статистические испытания по методу Монте-Карло в любых режимах.
Кроме того, производится многовариантный анализ любых характеристик при вариации температуры или любого параметра схемы. С помощью модуля Optimizer выполняется параметрическая оптимизация (см. разд. 7.4).
Каждому виду расчета соответствует определенная директива. Большинство директив задается с помощью панели меню команды Analysis/Setup программы Schematics (рис. 2.16). Для таких директив в скобках после их названия (см. ниже) указываются имена кнопок на этой панели. Остальные директивы вводят в задание на моделирование, размещая на схеме специальные символы из библиотеки special.slb (см. Приложение 1). Приведем описание всех директив, систематизируя их по разделам. С математической реализацией алгоритмов моделирования можно познакомиться в [1, 26].
Функциональное описание цифровых устройств
При составлении моделей сложных цифровых компонентов удобно применять следующие примитивы:
Logic Expression – составление логических выражений (примитив LOGICEXP);
Pin-to-Pin Delay – задание задержек распространения сигналов (примитив PINDLY);
Constraint Cheker – правила проверки временных соотношений, таких, как минимальное время установки/сброса, минимальная длительность импульсов и т. п. (примитив CONSTRAINT). При нарушении этих ограничений в процессе моделирования выдаются предупреждающие соотношения (в PSpice 4 в этих целях использовались два отдельных примитива WDTHCK и SUHDCK).
6.5.1. Логические выражения
Примитив LOGICEXP задается по формату
Uxxx LOGICEXP (<количество входов>,<количество выходов>)
+ <+узел источника питания> <–узел источника питания>
+ <входной узел 1> . . . <входной узел n>
+ <выходной узел 1> . . . <выходной узел n>
+ <имя модели динамики> <имя модели вход/выход>
+ [IO_LEVEL=<уровень модели интерфейса>]
+ [MNTYMXDLY=<выбор значения задержки>]
+ LOGIC:
+ <логическое назначение>*
Логическое назначение записывается двояко:
<номер выходного узла> = {<логическое выражение >}
<промежуточная переменная> = {<логическое выражение >}
Каждый упомянутый в спецификации выходной узел должен иметь одно логическое выражение. Назначенные один раз промежуточные переменные могут использоваться в последующих логических выражениях. Промежуточным переменным присваиваются имена по тем же правилам, что именам узлов.
Логические выражения заключаются в фигурные скобки { }. Они записываются на одной или более строках, строки продолжения имеют символ “+” в первой позиции. Приведем перечень логических операторов в порядке их старшинства:
~ – логическое отрицание;
& – логическое И;
^ – логическое исключающее ИЛИ;
| – логическое ИЛИ.
В качестве операндов могут быть:
– входные узлы;
– предварительно определенные временные переменные;
– предварительно определенные выходные узлы;
– логические константы “0”, “1”, “X”, “R”, “F”.
При записи выражений можно применять круглые скобки для группирования операндов. Все эти логические выражения могут использоваться также и в программе Probe.
Модель динамики примитива LOGICEXP имеет такой же формат, как стандартные вентили:
.MODEL <имя модели> UGATE [(параметры)]
Логические выражения вычисляются в процессе моделирования в порядке их следования. Задержка появления сигналов на выходных узлах определяется в модели динамики. Внутренние обратные связи в логических выражениях не допускаются, однако внешние обратные связи по-прежнему возможны.
Приведем пример описания логики функционирования арифметико-логического устройства 74181. Временные задержки будут заданы ниже с помощью примитивов PINDLY и CONSTRAINT:
U74181 LOGICEXP( 14, 8) DPWR DGND
+ A0BAR A1BAR A2BAR A3BAR B0BAR B1BAR B2BAR
+ B3BAR S0 S1 S2 S3 M CN LF0BAR LF1BAR LF3BAR
+ LAEQUALB LBAR LGBAR LCN+4
+ D0_GATE IO_STD
+
+ LOGIC:
*
*Промежуточные переменные
*
+ I31 = { ~((B3BAR & S3 & A3BAR) | (A3BAR & S2 & ~B3BAR)) }
+ I32 = { ~((~B3BAR & S1) | (S0 & B3BAR) | A3BAR) }
+
+ I21 = { ~((B2BAR & S3 & A2BAR) | (A2BAR & S2 & ~B2BAR)) }
+ I22 = { ~((~B2BAR & S1) | (S0 & B2BAR) | A2BAR) }
+
+ I11 = { ~((B1BAR & S3 & A1BAR) | (A1BAR & S2 & ~B1BAR)) }
+ I12 = { ~((~B1BAR & S1) | (S0 & B1BAR) | A1BAR) }
+
+ I01 = { ~((B0BAR & S3 & A0BAR) | (A0BAR & S2 & ~B0BAR)) }
+ I02 = { ~((~B0BAR & S1) | (S0 & B0BAR) | A0BAR) }
+
+ MBAR = {~M}
+ P = { I31 & I21 & I11 & I01 }
*
* Выходные переменные
*
+ LF3BAR = { (I31 & ~I32) ^
+ ~( (I21 & I11 & I01 & Cn & MBAR) | (I21 & I11 & I02 & MBAR ) |
+ ( I21 & I12 & MBAR) | (I22 & MBAR) ) }
+
+ LF2BAR = { (I21 & ~I22) ^
+ ~( (I11 & I01 & Cn & MBAR) | (I11 & I02 & MBAR ) | ( I12 & MBAR) | )}
+
+ LF1BAR = { (I11 & ~I12) ^~( (Cn & I01 & MBAR) | (I02 & MBAR) ) }
+
+ LF0BAR = { I01 & ~I02) ^~(MBAR & Cn) }
+
+ LGBAR = { ~( I32 | (I31 & I22) | (I31 & I21 & I12) | (I31 & I22 & I11 & I02) ) }
+
+ LCN+4 = { ~LGBAR | (P & Cn) }
+ LPBAR = { ~P }
+ LAEQUALB = { LF3BAR & LF2BAR & LF1BAR & LF0BAR }
6.5.2. Задание задержек распространения
Примитив PINDLY позволяет назначить задержки распространения сигналов сложным устройствам. Один единственный примитив PINDLY позволяет моделировать временные соотношения и выходные характеристики целой интегральной схемы, имеющей в своем составе, в частности, тристабильные вентили. Кроме того, в описание примитива PINDLY допускается включить спецификации контроля длительностей импульсов SETUP, HOLD, WIDTH, FREQ и GENERAL, которые используются в примитиве CONSTRAINT (см. ниже).
Примитив PINDLY задается по формату
Uxxx PINDLY (<количество путей>,
+ <количество входов разрешения> <количество дополнит. узлов>)
+ <+узел источника питания> <–узел источника питания>
+ <входной узел 1> . . . <входной узел n>
+ [<узел разрешения 1> . . . < узел разрешения n>]
+ [<внутренний узел 1> . . . < внутренний узел n>]
+ <выходной узел 1> . . . <выходной узел n>
+ <имя модели вход/выход>
+ [ IO_LEVEL=<уровень модели интерфейса>]
+ [ MNTYMXDLY=<выбор значения задержки>]
+ [ BOOLEAN:
+ <булевское назначение>*]
+ PINDLY:
+ <назначение задержек>*
+ [TRISTATE:
+ ENABLE LO | HI <узел разрешения>
+ <назначение задержек>*]
+ [ SETUP_HOLD: <спецификация времен установки/удержания>]
+ [ WIDTH: <спецификация ширины импульса>]
+ [ FREQ: <спецификация частоты повторения>]
+ [ GENERAL: <общая спецификация>]
Здесь приняты следующие обозначения:
<количество путей> – количество путей распространения сигналов от входных к выходным узлам; при этом количество входов путей должно быть равно количеству выходов. С каждым путем вход–выход ассоциируется задержка, вычисляемая по определенным правилам;
<количество входов разрешения> – спецификация тристабильных узлов, имеющихся в примитиве (может быть равным нулю). Тристабильные узлы используются в секциях TRISTATE;
<количество внутренних узлов> – внутренние узлы используются в выражениях, определяющих задержки, но они не входят в пути вход–выход (может быть равным нулю).
Проиллюстрируем взаимосвязь различных узлов на примере следующего примитива (рис. 6.17):
U1 PINDLY(4, 0, 3) $G_DPWR $G_DGND
+ IN1 IN2 IN3 IN4
+ REF1 REF2 REF3
+ OUT1 OUT2 OUT3 OUT4
+ IO_MODEL D0_GATE
+ PINDLY:
+ . . . .
Рис. 6.17. Правила назначения задержек |
Секция BOOLEAN. С помощью <булевского назначения> определяются промежуточные переменные, которые могут быть использованы в <определении задержки>. Секция BOOLEAN может быть включена на любой строке в описании примитива PINDLY. Выражение <булевское назначение> имеет вид
<булевская переменная> = { <булевское выражение> }
Имя <булевская переменная> составляется по тем же правилам, что имя узла.
Выражение <булевское выражение> принимает значение TRUE (логическая “1”) или FALSE (логический “0”). Подобно всем остальным выражением оно должно быть заключено в фигурные скобки { }. Перечислим булевские операторы в порядке убывания их старшинства:
Оператор |
Название |
~ |
Логическое отрицание |
== |
Равно |
!= |
Не равно |
& |
Логическое И |
^ |
Логическое исключающее ИЛИ |
| |
Логическое ИЛИ |
– предварительно определенные <булевские переменные>;
– функции дополнительных узлов (см. ниже);
– функции изменений (см. ниже);
– <булевские константы> TRUE и FALSE.
Дополнительно операторы “==“ и “!=“ могут быть применены к логическим значениям <входные узлы> и <логические константы>. Это позволяет проанализировать логические состояния узлов, например, выражение CLEAR==1 принимает значение TRUE, если узел CLEAR имеет значение логической “1”, и FALSE – в противоположном случае.
Управляющие функции используются для определения изменений состояний <внутренних узлов> или <выходных узлов>. Все управляющие функции принимают логические значения и поэтому могут входить в состав <булевских выражений>. Приведем список этих функций и их аргументов:
CHANGED (<узел>,<интервал времени>)
CHANGED_LH (<узел>,<интервал времени>)
CHANGED_HL (<узел>,<интервал времени>)
Функция CHANGED принимает значение TRUE, если указанный <узел> изменял свое состояние из 0 в 1 на указанном <интервале времени>, предшествующем текущему моменту времени, в противном случае – FALSE.
Аналогично функция CHANGED_LH принимает значение TRUE, если указанный <узел> изменял свое состояние на указанном <интервале времени>, предшествующем текущему моменту времени, в противном случае – FALSE. Отметим, что CHANGED_LH контролирует только самое последнее изменение.
Наконец, функция CHANGED_HL принимает аналогичные значения, контролируя переходы из “1” в “0”.
Если <интервал времени> задать равным нулю, то рассматриваемые функции примут значение TRUE, если в данный момент времени состояние узла изменяется. Это дает возможность разбивать модель цифровых компонентов на две части: первая моделирует логику функционирования с нулевыми задержками, а вторая учитывает реальные задержки.
Функции изменений предназначены для контроля за изменением состояний <выходных узлов>, для которых вычисляются <выражения для задержек>. Подобно дополнительным функциям они принимают значения логического “0” или “1”. Однако в отличие от них они не имеют аргументов и просто фиксируют изменение состояний выходных узлов в текущий момент времени. Они имеют вид
TRN_pn
Здесь p – значение предыдущего состояния, а n – нового состояния. Логические значения состояний обозначаются символами L (низкий уровень), H (высокий уровень) Z (большое выходное сопротивление) и $ (любой уровень). Так, например, функция TRN_H$ контролирует переход из состояния логическая “1” в любое другое состояние.
Замечание. Функции TRN_pZ и TRN_Zn
принимают значение TRUE, только если они используются в секции TRISTATE, описываемой ниже. Хотя выходные узлы устройств с открытым коллектором переходят в состояние высокого импеданса Z (вместо H), в справочниках обычно приводятся значения задержек TPLH и TPHL. Поэтому в математических моделях устройств с открытым коллектором необходимо использовать функции TRN_LH и TRNHL, а в тристабильных устройствах – TRN_LZ, TRN_HZ, TRN_ZL и TRN_ZH.
Секция PINDLY. Ключевое слово PINDLY отмечает начало секции, содержащей одно или несколько <назначений задержек>, которые имеют формат
<выходной узел>* = { <выражение для задержек> }
Каждый <выходной узел>, перечисленный в спецификации примитива, должен иметь одно выражение для определения задержек. Причем несколько выходных узлов могут иметь общее <выражение для задержек> (на рис. 6.17 <выражение для задержек> обозначено как “Правило”), тогда в левой части назначения задержек помещается список их имен, разделяемых пробелами или запятыми.
<Выражение для задержек> заключается в фигурные скобки и может располагаться на нескольких строках. Это выражение имеет три значения задержек: минимальное, типичное и максимальное. В простейшем случае <выражение для задержек> представляет собой <значение задержек> вида
DELAY(<min>, <typ>, <max>),
где <min>, <typ>, <max> – константы с плавающей запятой или выражения (в том числе и параметры), в секундах.
Для спецификации неизвестной величины используется –1. Например, DELAY(20ns, –1,35ns) задает минимальную задержку 20 нс, устанавливаемую программой по умолчанию типичную задержку и максимальную задержку 35 нс.
В более сложных <выражениях для задержек> используются функции CASE вида
CASE
(
<булевское выражение>,< выражение для задержек>, ;Правило 1
<булевское выражение>,< выражение для задержек>, ;Правило 2
. . .
<выражение для задержек> ;Задержки по умолчанию
)
Аргументами функции CASE являются пары <булевское выражение>, <выражение для задержек>, замыкаемые финальным <выражением для задержек>, определяющим значение задержки по умолчанию. При вычислении функции CASE вычисляются <булевские выражения> в порядке их следования до тех пор, пока не будет получен результат TRUE. После этого задержкам присваиваются значения из соответствующего выражения. Если ни одно из выражений не имеет значения TRUE, задержкам присваиваются значения из последнего выражения.
Приведем пример:
. . .
+ BOLEAN:
+ CLOCK = { CHANGED_LH( CLK, 0 ) }
+ PINDLY:
+ QA QB QC QD = {
+ CASE (
+ CLOCK & TRN_LH, DELAY(–1, 13ns, 24ns),
+ CLOCK & TRN_HL, DELAY(–1, 18ns, 27ns),
+ CHANGED_HL(CLBAR,0), DELAY(–1,20ns,28ns),
+ DELAY(–1, 20ns, 28ns) ; По умолчанию
+ )
+ }
В этом примере рассматривается четырехразрядный счетчик. Вводится булевская переменная CLOCK, которая принимает значение TRUE, когда дополнительный узел CLK изменяет свое состояние из “0” в “1” в текущий момент времени. Четыре выхода QA, ..., QD имеют одно и то же правило определения задержек. Функция CASE позволяет назначить разные задержки в процессе счета или обнуления. Первые два правила определяют задержки в процессе счета (CLK изменяется из состояния “0” в “1”). Первое правило применяется при изменении состояний выходов из “0” в “1”, второе – из “1” в “0”. Третье правило непосредственно определяет задержки, когда изменяется состояние узла CLRBAR.
Секция TRISTATE содержит одно или более <назначений задержек>. В отличие от секции PINDLY здесь состояния выходных узлов контролируются с помощью специальных узлов разрешения (enable). Непосредствено после ключевого слова TRISTATE указываются имена узлов разрешения и их полярность с помощью ключевого слова ENABLE по формату
ENABLE HI <узел разрешения> ; Разрешение в состоянии “1”
ENABLE LO <узел разрешения> ; Разрешение в состоянии “0”
Указанный <узел разрешения> управляет назначениям всех выходных узлов текущей секции. Отметим, что <выражения для задержек> в секции TRISTATE может содержать функции изменений, связанных с состоянием высокого импеданса, например TRN_ZL и TRN_HZ.
Приведем пример, демонстрирующий применение узлов разрешения для контролирования более чем одного выхода. Здесь также показано, что некоторые выходы могут быть обычными (PINDLY), а другие тристабильными (значения задержек опущены):
U1 PINDLY(3, 1, 2) $G_DPWR $G_DGND
+ IN1 IN2 IN3
+ ENA
+ REF1 REF2
+ OUT1 OUT2 OUT3
+ IO_MODEL
+ TRISTATE:
+ ENABLE LO = ENA
+ OUT1 = {
+ CASE (
+ CHANGED (REF1, 0) & TRN_LH, DELAY(. . .),
+ CHANGED (REF2, 0) DELAY(. . .),
+ TRN_ZL, DELAY(. . .),
+ . . .
+ )
+ }
+ OUT3 = {
+ CASE (
+ TRN_LZ, DELAY(. . .),
+ TRN_HZ, DELAY(. . .),
+ . . .
+ )
+ }
+ PINDLY:
+ OUT2 = {
+ CASE (
+ CHANGED (REF1, 0), DELAY(. . .),
+ . . .
+ )
+ }
Рис. 6.18. Управление задержками с помощью узлов разрешения |
Функционирование примитива PINDLY. Состояния выходных узлов примитива PINDLY изменяются при изменении состояний любого входного узла или узла разрешения. Каждому входному узлу соответствует выходной узел. Сначала определяются состояния внутренних переменных в секции BOOLEAN, затем вычисляются <выражения для задержек> в секциях PINDLY или TRISTATE. После этого изменившееся состояние входного узла присваивается соответствующему ему выходному узлу с задержкой.
Приведем пример реального счетчика 74LS160A:
ULS160ADLY PINDLY (5,0,10) DPWR DGND
+ RCO QA QB QC QD ; Входы
+ CLK LOADBAR ENT CLRBAR ; Внутренние узлы
+ RCO_O QA_O QB_O QC_O QD_O ; Выходы
+ IO_LS MNTYMXDLY = {MNTYMXDLY} IO_LEVEL = {IO_LEVEL}
+
+ BOOLEAN:
+ CLOCK = { CHANGED_LH (CLK, 0) }
+ CNTENT = { CHANGED (ENT, 0) }
+
+ PINDLY:
+ QA_O QB_O QC_O QD_O = {
+ CASE (
+ CLOCK & TRN_LH, DELAY( -1, 13NS, 24NS),
+ CLOCK & TRN_HL, DELAY( -1, 18NS, 27NS),
+ CHANGED_HL ( CLRBAR, 0), DELAY( -1, 20NS, 28NS),
+ DELAY( -1, 20NS, 28NS) ; По умолчанию
+ )
+ }
+ RCO_O = {
+ CASE (
+ CNTENT, DELAY( -1, 9NS, 14NS),
+ CLOCK & TRN_LH, DELAY( -1, 20NS, 35NS),
+ CLOCK & TRN_HL, DELAY( -1, 18NS, 35NS),
+ DELAY( -1, 20NS, 35NS) ; По умолчанию
+ )
+ }
6.5.3. Контроль временных соотношений
Примитив CONSTRAINT выполняет проверку соблюдения временных соотношений в процессе моделирования. Контролируется минимальное время установки/сброса, минимальная длительность импульсов, частота переключений и предусмотрен общий механизм проверки условий, формулируемых пользователем. Примитив CONSTRAINT только сообщает о нарушении временных сообщений и не изменяет логические состояния узлов и задержки. Он задается по формату
Uxxx CONSTRAINT ( <количество входов> )
+ <+узел источника питания> <–узел источника питания>
+ <входной узел 1> . . . <входной узел n>
+ <имя модели вход/выход>
+ [ IO_LEVEL=<уровень модели интерфейса>]
+ [ BOOLEAN: <булевское назначение> * ] ...
+ [ SETUP_HOLD: <спецификация времен установки/удержания>] ...
+ [ WIDTH: <спецификация ширины импульса> ] ...
+ [ FREQ: <спецификация частоты повторения> ] ...
+ [ GENERAL: <общая спецификация> ] ...
Секция BOOLEAN содержит одно или несколько <булевских назначений> вида
<булевская переменная> = { <булевское выражение> }
Секции BOOLEAN могут включаться в любом порядке при описании примитива CONSTRAINT. Синтаксис <булевских выражений> такой же, что и в примитиве PINDLY, за исключением того, что не могут быть использованы функции изменений.
Секция SETUP_HOLD выполняет проверку времен установки/сброса, она имеет формат
+ SETUP_HOLD:
+ CLOCK <определение типа перехода>=<входной узел>
+ DATA (<кол-во входов данных>)=<входной узел j>...< входной узел k>
+ [ SETUPTIME=<значение интервала времени>]
+ [ HOLDTIME=< значение интервала времени
> ]
+ [ RELEASETIME = < значение интервала времени > ]
+ [ WHEN { <булевское выражение> } ]
+ [ MESSAGE=“<текст дополнительного сообщения>“]
+ [ ERRORLIMIT=<значение> ]
+ [ AFFECTS_ALL | AFFECTS_NONE |
+ AFFECTS (#OUTPUTS)=<список выходных узлов>]
CLOCK задает узел, относительно которого выполняется измерение длительности времен установки/удержания/отпускания. Параметр <определения типа перехода> принимает значения LH или HL, он указывает, от какого фронта импульса (01 или 10) отсчитывается время установки/удержания.
DATA определяет перечень узлов, для которых выполняется измерение времен установки/удержания.
SETUPTIME определяет минимальное время, в течение которого все узлы, перечисленные в разделе DATA, должны находиться в неизменном состоянии до момента начала отсчета времен установки/удержания. <
значение интервала времени > должно быть неотрицательной константой или выражением (в секундах). Некоторые устройства имеют различные требования к времени установки в зависимости от состояния входных данных (“0” или “1”) в момент начала отсчета. В таком случае вместо SETUPTIME применяется одна из форм
SETUPTIME_LO=<значение интервала времени>]
SETUPTIME_HI=<значение интервала времени>]
HOLDTIME определяет минимальное время, в течение которого все узлы, перечисленные в разделе DATA, должны находиться в неизменном состоянии после момента начала отсчета времен установки/удержания. <
значение интервала времени > должно быть неотрицательной константой или выражением (в секундах). Некоторые устройства имеют различные требования к времени установки в зависимости от состояния входных данных (“0” или “1”) в момент начала отсчета. В таком случае вместо HOLDTIME применяется одна из форм
HOLDTIME_LO=<значение интервала времени>]
HOLDTIME_HI=<значение интервала времени>]
RELEASETIME содержит спецификацию времени восстановления – минимального интервала времени стабильного состояния, предшествующего переключению. Если время восстановления зависит от направления переключения входных данных, то вместо RELEASETIME применяется одна из форм
RELEASETIME _LH=<значение интервала времени>]
RELEASETIME _HL=<значение интервала времени>]
Разница между проверкой времени восстановления и установления состоит в том, что при контроле времени восстановления не разрешается одновременное изменение CLOCK/DATA. Поэтому, если даже время удержания HOLDTIME явно не задано, оно считается больше нуля. Это свойство позволяет задать значения времени восстановления непосредственно в тексте описания модели. По этой причине время восстановления обычно задается отдельно, независимо от спецификаций SETUPTIME или HOLDTIME.
Проверка времен установления/удержания/восстановления начинается после того, как наступило заданное изменение состояния узла CLOCK (LH или HL). В этот момент времени вычисляется логическое выражение WHEN. Если оно принимает значение TRUE, то выполняются все проверки, имеющие ненулевые значения интервалов времени.
WIDTH содержит спецификацию минимальной длительности импульса следующего вида:
+ WIDTH
+ NODE=<входной узел>
+ [ MIN_HI=< значение интервала времени
> ]
+ [ MIN_LO=< значение интервала времени
> ]
+ [ WHEN { <булевское выражение> } ]
+ [ MESSAGE=“<текст дополнительного сообщения>“]
+ [ ERRORLIMIT=<значение> ]
+ [ AFFECTS_ALL | AFFECTS_NONE |
+ AFFECTS (#OUTPUTS)=<список выходных узлов>]
Переменная NODE указывает входной узел, для которого проводится контроль длительности импульса. MIN_HI задает минимальное время, в течение которого входной узел должен находиться в состоянии “1”, а MIN_LO – в состоянии “0”. Если значение MIN_HI не указано, то оно считается равным нулю, что означает отсутствие ограничений на минимальную длительность импульсов.
FREQ содержит спецификацию допустимой частоты переключений:
+ FREQ
+ NODE=<входной узел>
+ [ MINFREQ=< значение частоты
> ]
+ [ MAXFREQ=< значение частоты
> ]
+ [ WHEN { <булевское выражение> } ]
+ [ MESSAGE=“<текст дополнительного сообщения>“]
+ [ ERRORLIMIT=<значение> ]
+ [ AFFECTS_ALL | AFFECTS_NONE |
+ AFFECTS (#OUTPUTS)=<список выходных узлов>]
Переменная NODE указывает входной узел, для которого проводится контроль частоты переключений. MINFREQ задает минимальное частоту переключений, а MAXFREQ – максимальную.
При моделировании выводятся предупреждающие сообщения, когда период переключений больше/меньше значений 1/<значение частоты>.
GENERAL содержит спецификацию проверок, формулируемых пользователем
+ GENERAL
+ WHEN { <булевское выражение> }
+ MESSAGE=“<текст дополнительного сообщения>“
+ [ ERRORLIMIT=<значение> ]
+ [ AFFECTS_ALL | AFFECTS_NONE |
+ AFFECTS (#OUTPUTS)=<список выходных узлов>]
Переменная WHEN задает правило контроля в виде булевского выражения. Текст сообщения об ошибки задается с помощью переменной MESSAGE.
Общие замечания. Спецификации контроля SETUP_HOLD, WIDTH, FREQ, GENERAL могут располагаться в тексте примитива CONSTRAINT в любом порядке. Более того, спецификация каждого типа может встречаться несколько раз. Каждая спецификация может содержать предложение WHEN, тогда проверка выполняется, если указанное в нем <булевское выражение> истинно. Проверка GENERAL содержит предложение WHEN всегда. Все проверки содержат встроенные соообщения об ошибках. Дополнительные сообщения можно вывести с помощью спецификации MESSAGE.
Все проверки имеют необязательный параметр ERRORLIMIT, определяющий максимальное количество ошибок. По умолчанию оно принимается равным значению глобальной переменной DIGERRDEFAULT (см. директиву .OPTIONS), обычно 20. Значение этого параметра, равное нулю, интерпретируется как бесконечное значение. В случае, когда количество ошибок данного типа превышает максимальное, сообщения об ошибках больше не выводятся на экран программы PSpice и в выходной файл .out.
Если в процессе моделирования общее количество ошибок превышает значение глобального параметра DIGERRLIMIT (см. директиву .OPTIONS), моделирование прекращается. По умолчанию значение DIGERRLIMIT устанавливается равным бесконечности.
Приведем пример примитива CONSTRAINT из текста модели счетчика 74LS160A, демонстрирующий возможности осуществления всех проверок с помощью одного примитива:
ULS160ACON CONSTRAINT (10) DRR DGND
+ CLK ENP ENT CLBAR LOADBAR A B C D EN
+ IO_LS
+ FREQ:
+ NODE = CLK
+ MAXFREQ = 25MEG
+ WIDTH:
+ NODE = CLK
+ MIN_LO = 25NS
+ MIN_HI = 25NS
+ WIDTH:
+ NODE = CLRBAR
+ MIN_LO = 20NS
+ SETUP_HOLD:
+ DATA(1) = LOADBAR
+ CLOCK LH = CLK
+ SETUPTIME = 20NS
+ HOLDTIME = 3NS
+ WHEN = { CLRBAR!='0 }
+ SETUP_HOLD:
+ DATA(2) = ENP ENT
+ CLOCK LH = CLK
+ SETUPTIME = 20NS
+ HOLDTIME = 3NS
+ WHEN = { CLRBAR!= '0 & (LOADBAR!= '0 ^ CHANGED (LOADBAR,0))
+ & CHANGED(EN,20NS) }
+ SETUP_HOLD:
+ DATA(4) = A B C D
+ CLOCK LH = CLK
+ SETUPTIME = 20NS
+ HOLDTIME = 3NS
+ WHEN = { CLRBAR!= '0 & (LOADBAR!='1 ^ CHANGED(LOADBAR,0)) }
+ SETUP_HOLD:
+ DATA(1) = CLRBAR
+ CLOCK LH = CLK
+ RELEASETIME_LH = 25NS
Генератор Ван-дер-Поля
Рассмотрим методику моделирования динамических систем, заданных дифференциальными уравнениями, на примере генератора Ван-дер-Поля:
Для применения программы PSpice к решению этого уравнения синтезируем электрическую цепь, подчиняющуюся этому же уравнению. Эта задача решается неоднозначно. Проще всего установить аналогию с параллельным колебательным LC-контуром, к которому подключен нелинейный управляемый источник тока G
(рис. 3.22). Выберем в качестве переменной x
ток через индуктивность
. Тогда производная dx/dt определяется напряжением на индуктивности .Уравнение такого контура относительно переменной x
имеет вид
Рис. 3.22. Модель генератора Ван-дер-Поля |
Отсюда вытекают условия эквивалентности этого уравнения уравнению генератора Ван-дер-Поля
Последовательно с индуктивностью L на рис. 3.22 включен источник напряжения VL с нулевой ЭДС, чтобы иметь возможность током через него управлять источником тока G (по правилам PSpice допускается управление только разностью потенциалов любых узлов цепи и токами через независимые источники напряжения). Приведем задание на моделирование уравнения Ван-дер-Поля:
Van-der-Pole Oscillator
.OPTIONS RELTOL=1e–4
.PARAM EPS=1
L 2 0 1 IC=0.2A
C 1 0 1
VL 1 2 DC=0
G 0 1 VALUE={EPS*(1–I(VL)*I(VL))*V(1)}
.TRAN 1ms 100s SKIPBP
.WATCH TRAN I(VL) V(1)
.PROBE
.END
Рис. 3.23. Фазовый портрет генератора |
Обратим внимание, что в директиве .TRAN ключевое слово SKIPBP отменяет расчет режима по постоянному току. Начальное значение тока через индуктивность установлено равным IL(0)=0,2 A. Еще одна особенность задания – директива .WATCH, с помощью которой в процессе расчета переходного процесса на экран программы PSpice выводятся текущие значения переменных I(VL) и V(1), т. е. x и dx/dt. По результатам моделирования с помощью программы Probe построен фазовый портрет генератора – зависимость производной dx/dt
от x (рис. 3.23).
Генераторы цифровых сигналов
Генераторы цифровых сигналов можно задать тремя способами.
1. Определение формы цифрового сигнала в задании на моделирование по формату (устройства STIM)
Uxxx STIM(<количество сигналов>,<формат>)
+ <+узел источника питания> <–узел источника питания>
+ <список узлов>*
+ <имя модели вход/выход>
+ [IO_LEVEL=<номер макромодели интерфейса вход/выход>]
+ [STIMULUS=<имя воздействия>]
+ [TIMESTEP=<шаг по времени>]
+ <команды описания формы сигнала>*
Переменная <количество сигналов> определяет количество выходов генератора, равное количеству генерируемых разных цифровых сигналов.
Переменная <формат> – это спецификация формата переменной <данные>, в котором представлены логические уровни сигналов генератора. Эта переменная представляет собой последовательность цифр, общее число которых равно значению переменной <количество сигналов>. Каждая цифра принимает значения 1, 3 или 4, что означает двоичную, восьмеричную и шестнадцатеричную систему счисления.
Подключение источника питания задается номерами узлов <+узел источника питания>, <–узел источника питания>.
Замечание. В PSpice 4 нельзя было создать несколько источников питания, поэтому номера узлов их подключения не указывались при описании генераторов цифровых сигналов и других цифровых устройств. Начиная с версии Design Center 5.0 появилась такая возможность, в связи с этим был изменен формат описания цифровых компонентов – добавлены номера узлов подключения источников питания <+узел источника питания> <–узел источника питания>. Для преобразования библиотек моделей цифровых компонентов PSpice 4 в новый формат предназначена специальная программа digconv.exe.
Номера подключения выходов генератора к схеме задаются <списком узлов>.
Имя модели вход/выход задается параметром <имя модели вход/выход>, как для любого цифрового устройства.
STIMULUS – необязательный параметр, обозначающий имя сигнала;
IO_LEVEL – необязательный параметр для выбора одной из четырех макромоделей интерфейса вход/выход (по умолчанию 0);
TIMESTEP – необязательный параметр для задания периода квантования (или шага). При задании моментов времени номером шага (имеют суффикс “С”) он умножается на величину шага. По умолчанию устанавливается TIMESTEP=0. Этот параметр не принимается во внимание, если заданы абсолютные значения моментов времени (имеют суффикс “S”).
Параметр <описание формы сигнала> представляет собой произвольную комбинацию одной или нескольких следующих строк:
<t>,<логический уровень>
LABEL=<имя метки>
<t> GOTO <имя метки> <n> TIMES
<t> GOTO < имя метки > UNTIL GT <данные>
<t> GOTO < имя метки > UNTIL GE <данные>
<t> GOTO < имя метки > UNTIL LT <данные>
<t> GOTO < имя метки > UNTIL LE <данные>
<t> INCR BY <данные>
<t> DECR BY <данные>
REPEAT FOREVER
REPEAT <n> TIMES
ENDREPEAT
FILE=<имя файла>
Каждая цифра переменной <данные> представляет собой логический уровень соответствующего выходного сигнала, который представлен в системе счисления 2m, где m – соответствующая цифра переменной <формат>.
Количество узлов в <списке узлов> должно быть равно значению переменной <количество сигналов>.
Переменная <t> определяет моменты времени, в которые задаются логические уровни сигнала. Если перед значением переменной <t> имеется символ “+”, то эта переменная задает приращение относительно предыдущего момента времени; в противном случае она определяет абсолютное значение относительно начала отсчета времени t=0. Суффикс “S” указывает размерность времени в секундах (допускается суффикс “nS” – наносекунды и т. п.). Суффикс “С” означает измерение времени в количестве циклов, размер которых определяется параметром TIMESTEP (переменная <шаг по времени>).
Переменная <данные> состоит из символов “0”, “1”, “X”, “R”, “F” или “Z”, интерпретируемых в заданном формате.
Переменная <n> задает количество повторяющихся циклов GOTO; значение n=–1 задает бесконечное повторение цикла.
Переменная <имя метки> используется при организации цикла с помощью оператора перехода GOTO, который передает управление на строку, следующую за оператором LABEL=<имя метки>.
REPEAT FOREVER – начало бесконечно повторяющегося цикла (эквивалентно конструкции REPEAT –1 TIMES).
REPEAT <n> TIMES – повторение n раз.
ENDREPEAT – конец цикла REPEAT.
FILE – указание имени файла, в котором находится описание одного или нескольких входных сигналов.
Приведем пример:
USIGNAL STIM(2,11) $G_DPWR $G_DGND 1 2 IO_STM
+ TIMESTEP=1ns
+ 0C 00 ; В момент времени t=0 состояния обоих узлов равны "0"
+ LABEL=M
+ 1C 01 ; При t=1 нс состояние узла 1 равно "0, узла 2 - "1"
+ 2C 11 ; При t=2 нс состояние обоих узлов равны "1"
+ 3С GOTO M 3 TIMES; В момент времени t=3 нс переход на
+ ; метку M и выполняется первая инструкция без
+ ; дополнительной задержки. Цикл повторяется 3 раза
2. Считывание временной диаграммы цифрового сигнала из файла (устройства FSTIM). Устройства FSTIM задаются по формату:
Uxxx FSTIM(<количество выходов>)
+ <+узел источника питания> <–узел источника питания>
+ <список узлов>*
+ <имя модели вход/выход>
+ FILE=<имя файла сигналов>
+ [IO_LEVEL=<номер макромодели интерфейса вход/выход>]
+ [STIMULUS=<имя воздействия>]
Параметр <количество выходов> определяет количество узлов, к которым подключаются сигналы. Остальные параметры имеют тот же смысл, что в п. 1. Обратим внимание, что задание с помощью параметра FILE имени файла, в котором описаны сигналы, обязательно.
Файл цифрового сигнала может быть получен путем редактирования файла результатов моделирования или составлен вручную с помощью любого текстового редактора.
Файл цифрового сигнала имеет две секции:
1) заголовок (header), содержащий список имен сигналов;
2) список значений сигнала (transitions), содержащий на одной или более строках моменты времени изменений сигналов и колонки их значений.
Приведем сначала пример файла цифровых сигналов:
* Заголовок: содержит имена сигналов
CLOCK, RESET, IN1, IN2; имена 4-х сигналов
*Начало описания сигналов; отделяется от заголовка пустой строкой
0 0000 ; двоичные коды сигналов
10ns 1100
20ns 0101
30ns 1110
40ns 0111
Заголовок имеет следующий формат:
[TIMESCALE=<значение>]
<имя сигнала 1>...<имя сигнала n>...
OCT(<3-й бит сигнала>...<1-й бит сигнала>)...
HEX(<4-й бит сигнала>...<1-й бит сигнала>)...
Имена сигналов могут разделяться запятыми или пробелами. Они располагаются на одной или нескольких строках, но строки продолжения не имеют в начале знака “+”. Максимальное количество сигналов 255, на одной строке могут размещаться не более 300 символов. Имена сигналов перечисляются в том же порядке, в котором их значения приводятся во временных диаграммах.
Если перед именем сигнала не указывается название системы счисления, он считается двоичным. Имена сигналов, записанных в восьмеричном коде, предваряются кодом OCT и группируются по 3 сигнала (имена групп сигналов заключаются в круглые скобки). Шестнадцатеричные сигналы имеют код HEX и группируются по 4 сигнала.
Приведем еще один пример файла сигналов:
Clock Reset In1 In2
HEX(Addr7 Addr6 Addr5 Addr4) HEX(Addr3 Addr2 Addr1 Addr0)
ReadWrite
0 0000 00 0 ; Для наглядности между группами
10n 1100 4E 0 ; можно включать пробелы
20n 0101 4E 1
30n 1110 4E 1
40n 0111 FF 0
Здесь в начале приведены имена четырех двоичных сигналов, затем две группы сигналов, задаваемых в шестнадцатеричном виде, и затем еще один бинарный сигнал.
В последующем списке значений сигналов даны 7 колонок, соответствующих приведенным в заголовке сигналам.
Список значений имеет формат:
<время> <значение сигнала>*
Список значений отделяется от заголовка пустой строкой. Моменты времени и список значений сигналов должны быть разделены по крайней мере одним пробелом. Для моментов времени изменений сигналов указываются их абсолютные значения (в секундах), например 25ns, 1.2E-9, 5.8, или приращение относительно предыдущего момента времени. Признак приращения – знак “+” перед значением момента времени, например +5ns. Каждое значение сигнала соответствует одиночному бинарному сигналу или группе сигналов, имена которых помещены в группы с указателями системы счисления OCT или HEX. Общее количество значащих цифр в значениях сигналов должно быть равно общему количеству бинарных сигналов и групп сигналов, помеченных символами OCT и HEX. Разряды данных сигнала могут принимать следующие значения:
Двоичные |
Восьмеричные |
Шестнадцатиричные |
|
Логические/цифровые |
0, 1 |
0...7 |
0...F |
Неопределенные |
X |
X |
X |
Высокого импеданса |
Z |
Z |
Z |
Передний фронт |
R |
R |
R |
Задний фронт |
F |
F |
- |
Приведем примеры генераторов цифровых сигналов типа FSTIM.
1. Пусть имеется файл dig1.stm, в котором описана временная диаграмма сигнала IN1. Тогда в задание на моделирование можно включить следующее описание генератора:
U1 FSTIM(1) $G_DPWR $G_DGND
+ IN1 IO_STM FILE=DIG1.STM
2. Пусть имеется файл flipflop.stm следующего содержания:
J K PRESET CLEAR CLOCK
0 0 0 010
10ns 0 0 111
. . . . .
В задание на моделирование включим описание генератора сигнала
U2 FSTIM(4) $G_DPWR $G_DGND
+ CLK PRE J K
+ IO_STM
+ FILE=FLIPFLOP.STM
+ SIGNAMES = CLOCK PRESET
В этом примере первым двум узлам CLK и PRE соответствуют сигналы CLOCK и PRESET из файла сигналов, это соответствие устанавливается с помощью опции SIGNAMES. Последним узлам J и K соответствуют одноименные сигналы из файла сигналов, поэтому их имена нет необходимости включать в опцию SIGNAMES. Сигнал CLEAR в данном примере не используется (но на него можно сослаться в другом генераторе FSTIM).
Графический постпроцессор Probe
Общие сведения о программе Probe.
Результаты моделирования, полученные с помощью программы PSpice, заносятся в файлы данных (имеют расширения имени .dat или .txt). Перечень переменных, данные которых заносятся в этот файл, устанавливается по команде Analysis/Probe Setup программы Schematics. Программа Probe не только отображает графики полученных результатов, но и может выполнять их обработку, включая сложные арифметические и алгебраические вычисления, взятие интегралов, преобразование Фурье, измерение параметров импульсов, частотных характеристик и т. п. При моделировании аналого-цифровых устройств графики переходных процессов в цифровой и аналоговой части схемы выводятся на одном экране с одинаковым масштабом по времени. На графики можно наносить произвольные надписи и графические символы и выводить их на принтер или плоттер.
При вводе переменных в программе Probe соблюдаются следующие правила. Символы в верхнем и нижнем регистрах не различаются, за исключением суффиксов m=10
и М=10, используемых при назначении масштабов по осям координат. Остальные суффиксы в программе Probe имеют те же значения, что и в PSpice. Суффиксы используются только для обозначения масштаба осей переменных, и их нельзя применять в арифметических выражениях.Кроме того, в программе Probe пользуются следующими суффиксами для простановки единиц размерности на осях координат:
V - вольты; d - градусы;
А - амперы; s - секунды;
W - ватты; H - герцы.
В программе Probe также определено, что W=V·A, V=W/A, A=W/V. Так что если построить график выражения V(5)*ID(M13), то ось ординат автоматически будет размечена в ваттах.
Вызов программы. Программа Probe вызывается автоматически после завершения моделирования, одновременно с началом моделирования (см. разд. 2.2) или автономно из оболочки Windows.
В верхней части экрана программы Probe помещается имя файла данных, на следующей строке – горизонтальное меню команд, а ниже – набор пиктограмм для быстрого вызова наиболее употребительных подкоманд (табл. 7.2), пиктограммы впервые появились в версии Design Center 6.2.
После выбора команды из меню команд вниз разворачивается подменю со списком подкоманд, ряд которых имеет опции для ее настройки, устанавливаемые в диалоговых окнах. Выбор пункта меню осуществляется с помощью клавиатуры или манипулятора мышь. При использовании клавиатуры для выбора пункта горизонтального меню нажимается клавиша Alt и одновременно клавиша с буквой, подчеркнутой в имени команды (см. рис. 1.7). Для вызова команды из выпадающего меню просто нажимается клавиша с подчеркнутой буквой.
Таблица 7.2
Пиктограмма |
Эквивалентная команда |
Пиктограмма |
Эквивалентная команда |
|
File/ Open |
|
Trace/Add |
|
File/Append |
|
Trace/Eval Goal Function |
|
Немедленный вывод на принтер |
|
Tools/Label/Text |
|
Edit/Cut |
|
Tools/Cursor/Display |
|
Edit/Copy |
|
Tools/Cursor/Peak |
|
Edit/Past |
|
Tools/Cursor/Trough |
|
View/In |
|
Tools/Cursor/Slope |
|
View/Out |
|
Tools/Cursor/Min |
|
View/Area |
|
Tools/Cursor/Max |
|
View/Fit |
|
Tools/Cursor/Point |
|
Plot/X Axis Settings/Linear (Log) |
|
Tools/Cursor/Search Commands |
|
Plot/X Axis Settings/Fourier |
|
Tools/Cursor/Next Transition |
|
Plot/X Axis Settings/Performance Analysis |
|
Tools/Cursor/Previous Transition |
|
Plot/Y Axis Settings/Linear (Log) |
|
Tools/Options/Mark Data Points |
Таблица 7.3
“Горячие” клавиши |
Эквивалентные команды меню |
Ctrl+F12 |
File/Open |
Ctrl+Shift+F12 |
File/Open |
Alt+F4 |
File/Exit |
Ctrl+X |
Edit/Cut |
Ctrl+C |
Edit/Copy |
Ctrl+V |
Edit/Paste |
Del |
Edit/Delete |
Insert |
Trace/Add |
Ctl+Y |
Plot/Add Y Axis |
Shift+Ctrl+Y |
Plot/Delete Y Axis |
Ctrl+N |
View/Fit |
Ctrl+I |
View/In |
Ctrl+O |
View/Out |
Ctrl+A |
View/Area |
Ctrl+P |
View/Previous |
Ctrl+L |
View/Redraw |
Shift+Ctrl+C |
Toois/Cursor/Toggle |
Shift+Ctrl+P |
Tools/Cursor/Peak |
Shift+Ctrl+T |
Tools/Cursor/Trough |
Shift+Ctrl+M |
Tools/Cursor/Min |
Shift+Ctrl+X |
Tools/Cursor/Max |
Shift+Ctrl+S |
Tools/Cursor/Slope |
Shift+Ctrl+N |
Tools/Cursor/Next Transition |
Shift+Ctrl+R |
Tools/Cursor/Previous Transition |
Краткое описание команд программы Probe приведено в табл. 7.4.
Таблица 7.4
Команда |
Назначение |
||
Меню File |
|||
Open... (Ctrl+F12) |
Открытие нового окна построения графиков и загрузка файла данных с результатами моделирования. Если в файле данных имеется несколько секций, выбор одной из них производится на панели диалога |
||
Append |
Добавление к текущему окну данных из файла (при этом загружаются данные из той же секции, которая открыта в текущем окне: DC, AC или Transient) |
||
Close |
Закрытие текущего окна (если данные из текущего файла используются в других окнах, выводится предупреждающее сообщение) |
||
Print... (Ctrl+Shift+F12) |
Вывод твердой копии одного или нескольких активных окон |
||
Page Setup... |
Настройка параметров страницы: |
||
Margins |
Размеры четырех полей в дюймах |
||
Plots Per Page |
Количество графиков на странице |
||
Orientation |
Горизонтальная (Landscape) или вертикальная (Portrait) ориентация |
||
Cursor Information |
Ориентация расположения информации относительно курсора (Top, Bottom, Left, Right, None) |
||
Draw Border |
Заключение графика в рамку |
||
Draw Plot Title |
Вывод заголовка графика |
||
Header and Footer |
Вывод текущей даты, времени и номера страницы |
||
Set Default |
Сохранение информации Header and Footer для установки по умолчанию |
||
Reset Default |
Задание типа принтера по умолчанию |
||
Log Commands... |
Включение/выключение режима составления файла протокола команд (расширение имени .cmd) |
||
Run Commands... |
Выполнение файла протокола команд |
||
Printer Select... |
Установка параметров принтера: разрешающая способность, размер бумаги, горизонтальное (Landscape) или вертикальное (Portrait) расположение изображения на бумаге |
||
Exit ( Alt+F4) |
Завершение работы |
||
Файл 1, ... , Файл 4 |
Список последних четырех загруженных файлов |
||
Меню Edit |
|||
Cut (Ctrl+X) |
Удаление выбранного объекта (объектов) из текущего окна. Удаленные объекты заносятся в окно буфера обмена и могут быть использованы по команде Past для переноса из одного окна в другое. Если выбрать курсором имя графика, например V(5), и выполнить команду Cut, то вставив содержимое буфера обмена в текстовый редактор типа Notepad, получим таблицу отсчетов графика в текстовом виде |
||
Copy (Ctrl+C) |
Копирование выбранного объекта (объектов) в текущее окно (см. команду Cut) |
||
Past (Ctrl+V) |
Размещение одной или нескольких копий содержимого буфера обмена |
||
Delete (Del) |
Удаление выбранного графика или метки. Проще всего выбрать объект щелчком мыши и удалить нажатием клавиши Del. Для удаления нескольких объектов они выбираются щелчком мыши при нажатой клавише Shift |
||
Modify Object ... |
Разрешение модификации выбранного объекта – имени переменной графика или метки в виде текста или эллипса |
||
Modify Title ... |
Разрешение модификации заголовка текущего окна |
||
Меню Trace |
|||
Add... (Insert) |
Добавление графиков одной или нескольких аналоговых или цифровых переменных в текущее окно. Имена переменных выбираются из списка доступных переменных, помещенных в файл данных. Допускается выполнение математических преобразований |
||
Macro... |
Определение макрокоманд. Введенные макрокоманды помещаются в файл msim.prb и выводятся на экран в виде списка, доступного для редактирования |
||
Eval. Goal Function... |
Вычисление целевых функций (или выражений, содержащих целевые функции) одного или нескольких графиков из одной секции файла данных .dat. При необходимости вычислить целевые функции при многовариантном анализе выполняется команда Performance Analysis |
||
Меню Plote |
|||
X Axis Settings... |
Задание диапазонов значений по оси X, выбор линейной или логарифмической шкалы, выполнение преобразования Фурье или построение зависимости от варьируемого параметра: |
||
Data Range |
Автоматическая установка диапазона значений (Auto Range) или по указанию пользователя (User Defined) |
||
Scale |
Установка линейной (Linear) или логарифмической (Log) шкалы |
||
Use Data |
Установка диапазона переменных по оси X для вычисления преобразования Фурье и других функций, таких, как s(x), AVG(x), RMS(x), MIN(x) и MAX(x) (Restricted) или отмена этого ограничения (Full) |
||
Processing Options |
Вычисление преобразования Фурье (Fourier) или построение зависимости от варьируемой переменной (Performance Analysis) |
||
Axis Variable ... |
Выбор переменной, откладываемой по оси X |
||
Y Axis Settings... |
Задание диапазонов значений по оси Y, выбор линейной или логарифмической шкалы |
||
Add Y Axis (Ctrl+Y) |
Добавление еще одной оси Y на график |
||
Delete Y Axis (Shift+Ctrl+Y) |
Удаление выбранной оси Y |
||
Add Plot |
Добавление нового окна графиков в верхней части текущего окна |
||
Delete Plot |
Удаление текущего окна (помеченого символом SEL>>) |
||
Unsync Plot |
Задание собственной оси X для каждого окна |
||
Digital Size... |
Размер окна построения временных диаграмм логических устройств: |
||
|
Percentage of Plot to be Digital |
Задание размера окна для построения временных диаграмм в процентах (по умолчанию 33%) |
|
|
Length of Digital Trace Name |
Длина отображаемого на экране имени цифрового сигнала |
|
AC... |
Загрузка данных анализа AC |
||
DC... |
Загрузка данных анализа DC |
||
Transient... |
Загрузка данных анализа Transient |
||
Меню View |
|||
Fit (Ctrl+N) |
Изменение масштаба изображения так, чтобы на полном экране разместились все графики |
||
In (Ctrl+I ) |
Увеличение масштаба изображения в 2 раза (центр поля зрения указывается курсором) |
||
Out (Ctrl+O) |
Уменьшение масштаба изображения в 2 раза (центр поля зрения указывается курсором) |
||
Area (Ctrl+A ) |
Вывод на весь экран окаймленной части изображения |
||
Previous (Ctrl+P) |
Возвращение к предыдущему масштабу изображения |
||
Redraw ( Ctrl+L) |
Перечерчивание экрана |
||
Pan–New Center |
Расположение схемы симметрично относительно точки расположения курсора без изменения масштаба |
||
Меню Tools |
|||
Label |
Нанесение на графики текстовых и графических символов: |
||
Text |
Текст |
||
Line |
Отрезок линии |
||
Poly-line |
Линейно-ломаная линия |
||
Arrow |
Стрелка |
||
Box |
Прямоугольник |
||
Circle |
Окружность |
||
Ellips |
Эллипс |
||
Mark |
Вывод на экран координат точки, помеченной курсором в режиме Tools/Cursor |
||
Cursor |
Выбор координат определенных точек на графиках с помощью электронного курсора: |
||
Display (Ctrl+Shift+C) |
Включение/выключение режима электронного курсора |
||
Peak (Ctrl+Shift+P) |
Перемещение курсора к следующему локальному максимуму на графике |
||
Trough (Ctrl+Shift+T) |
Перемещение курсора к следующему локальному минимуму на графике |
||
Slope (Ctrl+Shift+L) |
Перемещение курсора к следующей точке с максимальной по модулю производной |
||
Min (Ctrl+Shift+M) |
Перемещение курсора к точке с минимальным значением Y |
||
Max (Ctrl+Shift+X) |
Перемещение курсора к точке с максимальным значением Y |
||
Point (Ctrl+Shift+I) |
Перемещение курсора к точке следующего отсчета |
||
Search Command (Ctrl+Shift+S) |
Ввод одной или нескольких команд поиска |
||
Next Transition (Ctrl+Shift+N) |
Перемещение курсора к точке следующего изменения состояния на временной диаграмме |
||
Previous Transition (Ctrl+Shift+R) |
Перемещение курсора к точке предыдущего изменения состояния на временной диаграмме |
||
Simulation Messages... |
Открытие окна с сообщениями программы моделирования |
||
Display Control... |
Сохранение конфигурации текущего окна программы Probe для последующего построения |
||
Copy to Clipboard... |
Копирование содержания текущего окна в буфер обмена |
||
Options... |
Установка дополнительных параметров программы Probe: |
||
Display Status Line |
Видимая/невидимая строка состояний |
||
Mark Data Points |
Отображение на графиках точек отсчетов |
||
Display Evaluation |
Включение/выключение режима отображения результатов расчета целевых функций в дополнительных окнах |
||
Display Statistics |
Включение/выключение режима отображения на экране результатов статистических испытаний |
||
Number of Histogram Divisions |
Количество градаций при построении гистограмм |
||
Use Symbols |
Разрешение нанесения на графики специальных значков (Auto – при необходимости различить большое количество графиков, Never – никогда, Always – всегда) |
||
Trace Color Scheme |
Выбор цвета раскраски графиков |
||
Use Scrollbars |
Разрешение прокрутки графиков |
||
Auto-Update Interval |
Выбор режима обновления графиков |
||
Reset |
Установка конфигурации по умолчанию |
||
Save |
Сохранение текущей настройки в файле msim.ini |
||
Меню Window |
|||
New |
Открытие нового окна |
||
Close |
Закрытие текущего окна |
||
Arrange... |
Упорядочение размещения открытых окон |
||
1 <заголовок окна> |
Список открытых окон |
||
. . . . |
|||
[9 <заголовок окна>] |
|||
[Дополнительные окна] |
|||
Меню Help |
|||
|
|||
About Probe... |
Вывод номера версии программы и ее регистрационного номера |
||
Обсудим основные фазы работы с программой Probe.
1. Загрузка. Программа Probe загружается под управлением Schematics или автономно. В последнем случае после появления основного экрана программы по команде File/Open загружается файл данных с результатами моделирования. При моделировании нескольких режимов предлагается выбрать один из них (рис. 7. 4). Если в выбранном режиме проводился многовариантный анализ (варьировалась температура или другой параметр, выполнялся статистический анализ по Монте-Карло), на панели Available Sections приводится их перечень и предлагается выбрать одну или несколько секций (рис. 7.5). По умолчанию устанавливается режим All – выбор всех секций; для выбора одной или нескольких секций нажимается кнопка None (ничего) и затем курсором помечают нужные строки и нажимают кнопку OK. Нажатие кнопки Cancel возвращает в предыдущее меню без выбора какой-нибудь секции.
Рис. 7.4. Выбор режима моделирования |
Рис. 7.5. Панель выбора секции данных |
Рис. 7.6. Диалоговая панель сообщения об ошибках |
Рис. 7.7. Сообщения об ошибках моделирования |
Тип сообщения |
Текст сообщения |
Диагностика ошибки |
FATAL (фатальные) |
ZERO DELAY, OSCILLATION |
Ошибка расчета режима по постоянному току |
SERIUS (серьезные) |
PERSISTENT HAZARDS, VOLTAG OUT OF RANGE |
Ошибка расчета переходного процесса |
WARNING (предупреждения) |
SETUP, HOLD, RELEASE, . . . |
Предупреждения об ошибках, не нарушающих расчет переходных процессов |
INFO (информационные) |
GENERAL |
Сообщения информационного характера |
2. Построение графиков. Поcле выбора команды Trace/Add (или щелчком по пиктограмме ) открывается окно выбора переменных (рис. 7.8). Типы переменных, перечень которых приведен в окне, определяются положением выключателей:
Analog – аналоговые переменные;
Digital – цифровые переменные;
Voltages – напряжения;
Currents – токи;
Alias Names – псевдонимы;
Internal Subcircuit Nodes – внутренние узлы макромоделей (только напряжения);
Goal Functions – целевые функции.
Рис. 7.8. Окно выбора переменных |
На экран выводится координатная сетка графика, по горизонтальной оси которого откладывается независимая переменная, соответствующая выбранному режиму, например Time (эта переменная изменяется в последующем по желанию пользователя). На экране может располагаться несколько окон, в каждом из которых строится несколько графиков. Активное окно (в котором в данный момент строятся графики) помечается слева символами “SEL>>”. В каждом окне может быть от 1 до 3 осей Y с разными масштабами.
Укажем на особенности построения графиков аналоговых и цифровых переменных.
Аналоговые переменные
На одном графике можно поместить несколько кривых, которые на цветном мониторе выделяются цветом, а при выводе на черно-белый монитор, принтер или графопостроитель – различными значками. Формат переменных такой же, как в программе PSpice (п. 3.3.5), за небольшими исключениями:
1) не допускается выводить падение напряжения на компонентах в форме V(<имя>) или Vxy(<имя>), необходимо указывать имена (номера) узлов, например V(5) или V(21,3). Однако по-прежнему допустима форма Vx(<имя>), например VE(Q1) – потенциал эмиттера транзистора Q1; V1(R5) – потенциал вывода 1 резистора R5; V(C5:2) – потенциал вывода 2 конденсатора С5;
2) по формату B(Kxxx) выводится магнитная индукция сердечника трансформатора (в гауссах) и по формату H(Kxxx) – напряженность магнитного поля (в эрстедах), где Kxxx – имя магнитного сердечника;
3) при выводе спектральной плотности напряжения выходного шума вместо имени переменной ONOISE следует указать V(ONOISE), аналогично при выводе спектральной плотности напряжения входного шума вместо INOISE указывается V(INOISE), а при выводе спектральной плотности тока входного шума – I(INOISE);
4) в дополнение к напряжениям и токам доступны варьируемые переменные. В режиме DC это имя варьируемого источника напряжения или тока. В режиме AC – частота, имеющая имя “Frequency”. В режиме TRAN – время “Time”.
В строке можно указать имя одной или нескольких переменных или выражений. При вводе имени только одной переменной на оси Y автоматически проставляются единицы измерений в соответствии с типом переменной. Например, в режиме AC при построении графика модуля напряжения V(1) ось Y получит размерность в вольтах, фазы этого напряжения VP(1) – в градусах, а группового времени запаздывания VG(1) – в секундах.
На график можно вывести не только значения отдельных переменных, но и математические выражения, в которых допускаются следующие операции:
+, –, *, / – арифметические операции;
ABS(x) – |x|, абсолютное значение x;
SGN(x) – знак числа x (+1 при x>0, 0 при х=0 и –1 при x<0);
SQRT(x) – , корень квадратный из x;
EXP(x) – exp(x), экспонента числа х;
LOG(x) – ln(x), натуральный логарифм x;
LOG10(x) – log(x), десятичный логарифм x;
M(x) – модуль комплексной переменной x;
P(x) – фаза комплексной переменной x (в градусах);
R(x) – действительная часть комплексной переменной x;
IMG(x) – мнимая часть комплексной переменной x;
G(x) – групповое время запаздывания комплексной переменной x (в секундах);
PWR(x,y) – |x|, степенная функция;
SIN(x) – sin(x), синус x (x в радианах);
COS(x) – cos(x), косинус x (x в радианах);
TAN(x) – tg(x), тангенс x (x в радианах);
ATAN(x), ARCTAN(x) – acrtg(x), арктангенс x (x в радианах);
d(y) – производная от переменной y по переменной, откладываемой по оси X;
s(y) – интеграл от переменной y по переменной, откладываемой по оси X;
AVG(y) – текущее среднее значение переменной y;
AVG(y,d) – текущее среднее значение переменной y на отрезке оси X длины d;
RMS(y) – текущее среднеквадратическое отклонение переменной y;
DB(x) – значение переменной x в децибелах;
MIN(х) – минимальное значение вещественной части переменной x;
MAX(x) – максимальное значение вещественной части переменной x.
Например, можно вывести графики переменных V(5), V(INOISE) или выражений SIN(V(5))/7.536, V(3,5)*I(D2), RMS(V(R1)*I(R1)).
Математические выражения могут редактироваться в процессе их ввода в командной строке или после обнаружения программой Probe ошибки. Текст вставляется в отмеченное курсором место и удаляется клавишами Del и Backspace. Нажатие клавиш Shift+Home выделяет часть строки, начиная от начала строки до первого символа перед курсором, Shift+End – от конца строки до первого символа после курсора. Выделенные части удаляются клавишей Del.
В режиме AC программа Probe поддерживает вычисления с комплексными числами и по умолчанию без добавления какого-либо суффикса выводит модуль результата. Если при этом выражение чисто действительное, например P(V(5)/V(1)), то результат может быть и отрицательным. Если же выражение комплексное, например V(5)/V(1), то выводится его модуль, который всегда неотрицательный. При добавлении суффикса DB модуль выводится в децибелах, суффикса P – выводится фаза в градусах (в этом единственное отличие от разд. 3.3.5), G – групповое время запаздывания, R или I – действительная или мнимая часть. Например, для построения графиков модуля и фазы комплексного сопротивления указываются выражения типа V(10)/I(RG) и VP(10)–IP(RG).
При задании переменной, выводимой на график, можно использовать имя переменной уже построенного графика.
Пусть построен график напряжения V(3), тогда спецификация переменной второго графика в виде #1*5 приведет к построению графика функции V(3)*5, где #1 – номер первого графика. При этом при попытке удалить первый график программа проверит, не входит ли его переменная в выражения для других графиков, и выдаст предупреждающее сообщение. При подтверждении удаления будут удалены все эти графики и нумерация графиков изменится.
При построении графиков можно также пользоваться определенными ранее макросами (см. ниже). Пусть, например, определен макрос
NORM(A)=(A - MIN(A))/(MAX(A) - MIN(A)).
Тогда задание выражения NORM(V(3)) вызовет построение нормированного графика переменной V(3).
Для вычисления производных и интегралов простых переменных (не выражений) используется укороченная запись без заключения переменных в круглые скобки. Например, запись dV(3) эквивалентна d(V(3)), а sIC(Q3) эквивалентна s(IC(Q3)).
Для одновременного построения двух и более графиков их переменные перечисляют на одной строке, разделяя их пробелом или запятой. Например, задание строки V(3) V(7),IC(Q3), RMS(I(VIN)) приведет к построению сразу четырех графиков (их можно построить и по очереди).
Еще одна особенность команды Trace/Add
связана c многовариантными расчетами. Если в меню выбора секций отмечено несколько вариантов, то при задании только имени переменной, например V(5), будет построено семейство графиков для каждого варианта. Указание же номера варианта n c добавлением к имени переменной суффикса @n, например V(5)@2, выведет на экран график только указанного n-го варианта. Номера вариантов можно указывать и в выражениях. Так, согласно выражению V(4,5)@2-V(4,5)@1 будет построен график разности напряжений V(4,5) во втором и первом вариантах. Если в выражении хотя бы для одной переменной не указан номер варианта @n, например V(4)-V(5)@2, то будет построено семейство графиков.
Файлы данных .dat, полученные от разных прогонов программы PSpice, средствами DOS можно объединить в один файл.
Например, команда
COPY/B test1.dat+test2.dat+test3.dat test.dat
объединит 3 файла данных в один файл test.dat. Тогда при загрузке его в программу Probe можно строить семейства зависимостей.
Цифровые переменные
Рис. 7.9. Обозначения логических состояний |
Всего можно вывести до 75 временных диаграмм, однако одновременно на экране помещается меньшее их количество. Размер окна построения цифровых сигналов зависит от количества окон на аналоговом экране, его первоначальные размеры устанавливаются по команде Plot/Digital Size/Percentage of Plot to be Digital. Знак + в верхней и (или) нижней части экрана показывает, что часть графиков находится вне экрана.
Имя переменной, вводимой по запросу команды Trace/Add, может быть именем цифрового узла или булевым выражением, содержащим имена таких узлов. Шина (многоразрядное число) формируется в виде заключенного в фигурные скобки списка цифровых узлов, разделенных пробелами или запятыми, например
{ D3 D2 D1 D0 }
В начале списка помещается старший разряд шины, в конце – младший.
Шины могут с помощь логических и арифметических операторов образовывать выражения. В выражениях для цифровых сигналов и для шин допустимы следующие операции (их старшинство убывает сверху вниз):
{ } – объединение в группу;
~ – логическое отрицание;
* / – умножение и деление (только для шин);
+ – – сложение и вычитание (только для шин);
& – логическое И;
^ – логическое исключающее ИЛИ;
| – логическое ИЛИ.
Результат арифметических или логических операций с двумя шинами представляется в виде шины с достаточным количеством разрядов.
Результат арифметических или логических операций с шиной и цифровым сигналом представляется в виде шины с тем же количеством разрядов.
В записи операций с цифровыми сигналами могут содержаться следующие логические константы:
'0 – сигнал низкого уровня;
'1 – сигнал высокого уровня;
'F – нарастающий фронт;
'R – спадающий фронт;
'X – неопределенное состояние;
'Z – состояние высокого импеданса.
Выражения с шинами могут содержать многоразрядные числа, записываемые в виде текстовой переменной в форме r'ddd, где r – указатель системы счисления (x, h, d, o или b), ddd – последовательность цифр в указанной системе счисления. Приведем примеры:
x'3FFFF – шестнадцатеричная;
h'5a – шестнадцатеричная;
d'79 – десятичная;
o'177400 – восьмеричная;
b'100110 – двоичная.
Многоразрядное число эквивалентно определению шины, которая содержит столько сигналов, сколько необходимо разрядов для представления этого числа в двоичном коде. Например, число d'11 эквивалентно шине {'1 '0 '1 '1}.
Логические переменные вводятся в одной строке по формату
<описание цифрового сигнала> [; [<имя графика>] [;<указатель системы счисления>]]
Здесь <указатель системы счисления> применяется только при операциях с шинами. Он принимает значения H или X для шестнадцатеричной, D – для десятичной, O – для восьмеричной и B – для двоичной системы счисления. По умолчанию без его указания шина представляется в шестнадцатеричной системе. Параметр <имя графика> обозначает имя, выводимое на экране слева от графика; по умолчанию в качестве имени графика отображается выражение, заданное при его вводе.
Имена графиков могут выравниваться по правой или левой границе. По умолчанию устанавливается правая привязка. Для ее изменения в секции Probe файла конфигурации msim.ini включается строка
DGTLNAMELEFTJUSTIFY=ON.
3. Макросы. По команде Trace/Macro открывается окно для создания новых и редактирования существующих макросов (рис. 7.10).
Рис. 7.10. Окно редактирования макросов |
Макрос имеет стандартную форму
<имя макроса>[(аргумент[,аргумент]*)] = <определение>
Аргументы, если они есть, описываются непосредственно вслед за именем макроса в круглых скобках без пробелов (квадратные скобки, как обычно, не указываются). Макросы могут содержать ссылки на другие макросы, однако рекурсивные вызовы не допускаются. Приведем несколько примеров макросов:
SUB(A,B) = A–B
F1(A) = 10*A
F2(A,B) = SIN(A*F1(B))
PI = 3.14159
YR(x,y)=(R(x)*R(y)+Img(x)*Img(y))/(y*y)
Введенные в этом окне макроcы по команде Save или Save To записываются в текстовый файл с расширением имени .prb, который может также редактироваться с помощью любого текстового редактора. Описание одного макроса, включая его имя, аргументы и определение, должно располагаться на одной строке длиной не более 80 символов. Строка, начинающаяся со “*”, воспринимается как комментарий. Комментарии можно помещать также в конце строк после “;”. Пустые строки игнорируются.
4. Целевые функции. По команде Trace/Eval Goal Function (или щелчком мыши по пиктограмме ) вычисляются целевые функции или выражения, их содержащие. Определения целевых функций записываются в текстовые файлы с расширением имени .prb (в состав Design Center входит файл стандартных целевых функций и макросов msim.prb). Перечень целевых функций помещается в том же окне, что и перечень переменных (рис. 7.8). Например, целевая функция для расчета ширины полосы пропускания частотной характеристики имеет имя Bandwidth(1,db_level), где вместо первого параметра 1 подставляется имя переменной, измеренной в децибелах, а вместо второго db_level – затухание сигнала на границе полосы пропускания, в децибелах . После выбора курсором имени целевой функции оно переносится в командную строку без указания параметров – Bandwidth(,), имена переменных указываются курсором, а параметры вводятся с клавиатуры, например Bandwidth(Vdb(9),3) – полоса пропускания напряжения V(9) при затухании 2 дБ или Bandwidth(Vdb(9)@2,3) – полоса пропускания по результатам анализа второй секции данных.
Значения целевых функций отображаются на экране двояко. Eсли в меню Tools/Options не включена опция Display Evaluation, то значение целевой функции помещается в изображенном на рис. 7.11 окне.
Рис. 7.11. Результаты расчета целевой функции при выключенной опции Display Evaluation |
Рис. 7.12. Результаты расчета целевой функции при включении параметра Display Evaluation |
Имя_целевой_функции(1, 2,..., N, параметр1,..., параметрM)=выражение
{
1|Команды_поиска_и_выделения_точек_для_выражения_1;
2|Команды_поиска_и_выделения_точек_для_выражения_2;
. . . . . . . . . . . . . .
N|Команды_поиска_и_выделения_точек_для_выражения_N;
}
Здесь приняты следующие обозначения.
Имя_целевой_функции состоит из алфавитно-цифровых символов (A– Z, 0– 9) и символа подчеркивания (_), но не может начинаться с цифры. Длина имени не более 50 символов, строчные и прописные буквы не различаются. Это имя указывается в командной строке Trace/Add.
Аргументы выражения (1, 2, ..., N)
– первые N аргументов ассоциируются с N командами поиска и выделения точек. Аргумент 1 ассоциируется с командами, помещенными после символов 1|, и т. д. При вводе в командной строке целевой функции эти аргументы заменяются именами переменных и выражениями по правилам, принятым в Probe.
Список параметров (параметр1, ..., параметрM) помещается вслед за аргументами выражения. Параметры используются при определении целевой функции и представляют собой алфавитно-цифровые переменные (A– Z, 0– 9), которые могут включать в себя символы подчеркивания (_), но не могут начинаться с цифры. При вводе целевой функции указываются численные значения этих параметров.
Выражение – математическое выражение, описывающее операции с выделенными точками. В результате определяется число, откладываемое по оси Y графика. Выражения составляются по обычным правилам программы Probe за небольшими исключениями. Выражение может включать в себя символы арифметических операций +, –, *, /, (, ) и функции одного аргумента ABS, SGN, SIN, SQRT... Отличия от правил составления выражений программы Probe состоят в следующем.
1. Вместо обычных переменных PSpice, например V(4), I(R2), в выражениях приводятся координаты выделенных точек x1, y3...
2. Добавлена одна функция MPAVG, вычисляющая среднее значение по оси Y между двумя выделенными точками
MPAVG(p1,p2[,диапазон])
Здесь p1, p2 – координаты выделенных точек по оси X, например x1, x3, ограничивающих диапазон усреднения. Необязательный параметр диапазон уточняет интервал диапазона усреднения. Величина диапазона усреднения, средняя точка которого совмещена со средней точкой между p1 и p2, умножается на значение этого параметра; по умолчанию он равен 1.
Приведем пример расчета величины выброса первого импульса. Отметим точкой 1 первое пересечение с положительной производной уровня 50% от амплитуды импульса, точкой 2 отметим следующее пересечение уровня 50% с отрицательной производной, точкой 3 – следующее пересечение этого уровня с положительной производной:
SLEV(50%,P)!1 SLEV(50%,N)!2 SLEV(50%,P)!3
Максимум первого импульса пометим точкой 4, который будем отыскивать начиная от точки 1:
S/x1/(x1,x2)MAX!4
Здесь x1, x2 – координаты по оси X отмеченных выше точек 1 (!1) и 2 (!2). Затем вычислим величину выброса в процентах от амплитуды импульса. Для этого используем функцию MPAVG для расчета среднего значения нижней и верхней части импульса
overshoot = ((y4 - MPAVG(x1,x2,0.5))/(MPAVG(x1,x2,0.5)) -
+ MPAVG(x2,x3,0.5)))*100
3. Нельзя использовать функции нескольких переменных, таких, как d( ), s( ), AVG( ), RMS( ), MIN( ) и MAX( ).
4. Нельзя использовать функции комплексных переменных M( ), P( ), R( ), IMG( ), G( ).
Команды_поиска_и_выделения_точек_для_выражения_N
– комбинация одной или нескольких команд поиска, в которых имеются ссылки на одну или несколько выделенных точек. Описание команд поиска Search_commands приведено ниже в меню Cursor. Дадим их примеры:
Полная форма:
search forward for peak !1 search backward for trough !2;
Краткая форма:
sfpe!1 sbtr!2;
Замечание. Каждое выражение для команд поиска и выделения точек заканчивается символом “;”.
Выделенные точки – отмечаются как !n, где n – произвольное число, назначаемое для идентификации точки. Выражение !n может быть помещено после завершения любой команды поиска.
Продолжения строк – любая строка (за исключением строк комментариев) может быть перенесена на следующую строку без указания каких-либо специальных символов. Любая строка, начинающаяся с символа * в первой позиции, считается комментарием.
Приведем ряд примеров.
Пример 1. Целевая функция для расчета задержки распространения сигнала имеет вид
prop_delay(1,2) = x2 - x1
{
1|sf/b/#3#le(3,p)!1;
2|sf/b/#3#le(3,p)!2;
}
Ее вызов по команде Trace/Add может иметь вид
prop_delay(v(4),v(5))
Здесь V(4) и V(5) – колебания, между которыми измеряется запаздывание.
Пример 2. Целевая функция для измерения длительности импульса имеет вид
pulsewidth(1,NPTS) = x2 - x1
{
1|sf/b/#NPTS#le(3,p)!1 sf#NPTS#le(3,n)!2;
}
Ее вызов по команде Trace/Add может иметь вид
pulsewidth(sqrt(v(4)),3)
Пример 3. Целевая функция для расчета первого выброса импульса имеет вид
overshoot(1) = ((y4 – MPAVG(x1,x2,0.5))/(MPAVG(x1,x2,0.5)) –
+ MPAVG(x2,x3,0.5)))*100
{
1|slev(50%,p)!1 slev(50%,n)!2 slev(50%,p)!3
s/x1/(x1,x2)max!4
}
Ее вызов по команде Trace/Add может иметь вид
overshoot(v(out))
Пример 4. Полоса пропускания АЧХ по уровню –3 дБ измеряется с помощью целевой функции
Bandwidth(1,db_level) = x2-x1
{
1|Search forward level(max–db_level,p) !1
Search forward level(max–db_level,n) !2;
}
Ее вызов может иметь вид
Bandwidth(Vdb(5))
Сначала определяется частота, на которой частотная характеристика пересекает уровень max-db_level с положительной производной, затем – с отрицательной производной, их разность равна искомой ширине полосы пропускания. Обратим внимание, что уровень напряжения V задается в децибелах, для чего к его имени добавляется суффикс db.
Замечание. Не следует слепо полагаться на результаты расчетов целевых функций. Дело в том, что при составлении выражения для целевой функции имеется в виду вполне определенная форма колебаний, однако в результате моделирования с помощью PSpice может быть получено по разным причинам колебание совершенно другой формы, что может исказить результаты расчетов. Поэтому рекомендуется проверять результаты расчетов целевых функций, визуально анализируя графики исследуемых зависимостей.
Рис. 7.13. Задание имени файла целевой функции |
5. Электронный курсор. Координаты точек на графиках считываются с помощью двух электронных курсоров. Дисплей переключается в режим считывания координат по команде Tools/Cursor/Display (или щелчком по пиктограмме ). В правом нижнем углу экрана располагается окно, в котором отображаются текущие координаты двух курсоров и расстояние между ними по двум осям ординат. Курсоры могут быть связаны с одним или двумя графиками аналоговых переменных. Одновременно на временных диаграммах считываются логические состояния всех цифровых переменных. В первый момент времени оба курсора помещены в начало первого аналогового графика. Первый курсор перемещается с одной кривой на другую нажатием клавиш Ctr+4 и Ctrl+6, второй – Shift+Ctrl+4 и Shift+Ctrl+6.
Первый курсор перемещается вдоль выбранной кривой с помощью клавиш 4 и 6 (или ). Каждое нажатие на эти клавиши приводит к перемещению курсора по графику на один пиксел. Если клавиша удерживается в нажатом состоянии, то перемещение происходит блоками по 10 пикселов. Для перехода в начало или конец графика используются клавиши Home и End соответственно. Для перемещения второго курсора используются те же клавиши, но с добавлением Shift.
Манипулятор мышь также может управлять курсорами: левая кнопка управляет первым курсором, правая – вторым. Нажатие кнопки перемещает электронный курсор к ближайшей по оси X точке на выбранном графике. Если график при данном значении X имеет несколько значений Y, то электронный курсор переключается в точку Y, ближайшую к положению курсора мыши. С помощью мыши можно также выбрать график, отмечая курсором его имя. Однако точность позиционирования электронного курсора при управлении с клавиатуры выше.
При наличии на экране семейства кривых перемещение курсора в конец одного графика приведет к его перескоку в начало следующего.
В меню Cursor имеются команды управления положением курсора: Peak, Trough, Slope, Min, Max, Point и Search Commands. Эти команды изменяют положение того курсора, который с помощью функциональных клавиш или мыши перемещался последним. Если до их выполнения оба курсора не перемещались, то эти команды изменяют положение первого курсора. Большинство команд перемещает курсор только в одном направлении, совпадающем с направлением его последнего перемещения. Если курсор был неподвижен, то он перемещается вперед. Исключение составляют команды поиска Search Commands, которые могут изменить направление поиска, и команды Min и Max, которые не обращают внимание на направление перемещения по умолчанию. За исключением команд Min и Max остальные команды перемещают курсор от его текущего положения в направлении, заданном по умолчанию. Приведем определения этих команд.
Peak () – перемещение курсора к следующему пику (с обеих сторон от пика имеется хотя бы по одной точке с меньшим значением Y);
Trough () – перемещение курсора к следующей впадине ( с обеих сторон от нее имеется хотя бы по одной точке с большим значением Y);
Slope () – перемещение курсора к следующему максимуму огибающей (огибающие могут быть как положительными, так и отрицательными). Курсор обычно перемещается к точке, находящейся посредине между соседними точками данных;
Min () – перемещение курсора к точке на графике, имеющей минимальное значение Y;
Max () – перемещение курсора к точке на графике, имеющей максимальное значение Y;
Point () – перемещение курсора к точке следующего отсчета;
Search Commands () – ввод одной или нескольких команд для поиска определенной точки на графике и перемещения в нее курсора.
Приведем сначала несколько примеров команд поиска:
1) Search backward for peak – поиск следующего пика в обратном направлении;
2) sbpe – сокращенная форма предыдущей команды;
3) Search forward #4# (1n,5n) for 5:level(3,positive) – поиск вперед пятого пересечения уровня 3 В по оси Y (положительное значение), причем должно иметься по крайней мере 4 последовательные точки данных, имеющих это же или большее значение на отрезке времени от 1 до 5 нс по оси X;
4) sf#4#(1n,5n)5:le(3,p) – сокращенная форма предыдущей команды.
Команды поиска имеют следующий формат (квадратные скобки [ ] обозначают необязательные аргументы, строчные и прописные буквы не различаются):
Search [направление] [/начальная_точка/] [#последующие_точки#]
+ [(диапазон X)[,(диапазон Y)]] [FOR] [повторение:]<условие>
Входящие сюда аргументы имеют следующий смысл (их можно записывать сокращенно, указывая только строчные буквы в приведенных ниже определениях):
[направление] – Forward (вперед) или Backward (назад). Определяет направление поиска. Ключевое слово “Forward” означает поиск в направлении возрастания координаты X (обычно это движение слева направо, а при инверсии оси X по команде X Axis Settings/User Defined – в обратном направлении). По умолчанию устанавливается направление Forward;
[/начальная_точка/] – начальная точка, от которой начинается поиск, задается следующими ключевыми словами:
^ – первая точка диапазона поиска по оси X;
Begin – первая точка диапазона поиска по оси X;
$ – последняя точка диапазона поиска по оси X;
End – последняя точка диапазона поиска по оси X;
xn – номер точки, например x1 (только при использовании целевых функций Goal Functions при выполнении команды Performance Analysis меню X Axis Settings);
[#последующие_точки#] – задание количества последовательного выполнения заданных условий. По умолчанию равно единице. Применение зависит от конкретных условий. Приведем пример: обычно пик определяется как точка, слева и справа от которой имеется по одной точке с меньшим значением Y. Если задать параметр [#последующие_точки#] равным 2 и в качестве <условия> принять PEak, то пик будет определяться как точка, слева и справа от которой имеются по две точки с меньшим значением Y;
[(диапазон X[,диапазон Y])] – задание диапазона поиска по осям X, Y. Каждый диапазон может задаваться абсолютными значениями координат граничных точек или их относительными значениями в процентах от полного диапазона изменения переменных. По умолчанию оба диапазона устанавливаются равными диапазону изменения каждой переменной на видимой части графика. Приведем примеры:
(1n,200n) – по оси X установлен диапазон от 1 до 200 нс, по оси Y по умолчанию принят полный диапазон;
(1.5n,20e-9,0,1m) – указаны диапазоны по обеим осям;
(5m,1,10%,90%) – указаны диапазоны по обеим осям;
(0%,100%,1,3) – полный диапазон по оси X и ограниченный диапазон по оси Y;
(,,1,3) – полный диапазон по оси X и ограниченный диапазон по оси Y;
(x1,x2) – диапазон по оси X ограничен точками x1 и x2 (только при использовании целевых функций Goal Functions при выполнении команды Performance Analysis меню X Axis Settings);
(,30n) – диапазон по оси X ограничен только сверху;
[повторение:] – задание количества выполнения заданных далее условий.
Например, конструкция “2:Level” устанавливает, что необходимо найти второе пересечение уровня;
<условие> – задание одного из перечисленных ниже условий. Если это условие не выполняется, то курсор не перемещается. Каждое условие задается по крайней мере двумя символами, например условие LEvel сокращенно записывается как LE. Приведем перечень условий:
LEvel<(значение[знак])> – задание уровня, значение которого представляет собой абсолютное значение или относительное значение в процентах от полного диапазона по оси Y, заданную точку, величину в децибелах относительно Min или Max, отношение уровня к Min или Max, относительное значение уровня в децибелах и обычных единицах. Приведем примеры задания значения уровня в ключевых словах LEVEL(значение), используемых в командах поиска при определении целевой функции Goal Function:
– числа, например 1e5, 100n, 1...,
– проценты, например 50%,
– отмеченные точки, например y1, y2...,
– значение в децибелах относительно максимального или минимального значения переменной, например
max–3db или –3db – на 3 дБ ниже максимальной границы,
min+3db или 3db – на 3 дБ выше минимальной границы,
– значение, отсчитываемое от максимального или минимального значения диапазона, например
max-3 – максимальная граница минус 3,
min+3 – минимальная граница плюс 3,
– значение, отсчитываемое от текущего значения переменной, в децибелах, например,
.-3db – на 3 дБ меньше последнего значения,
.+3db – на 3 дБ больше последнего значения,
– относительное значение, например
.-3 – последнее значение минус 3,
.+3 – последнее значение плюс 3.
Ключевое слово [знак] принимает значения Positive (положительное), Negative (отрицательное) или Both (знакопеременное). По умолчанию принимается значение Both.
По команде LEVEL определяется следующая точка пересечения графиком заданного уровня путем интерполяции данных моделирования. Считается, что наступило событие пересечения уровня, если по крайней мере [#последующие_точки#]-1 точек данных, следующих за точкой пересечения уровня, расположены по ту же сторону уровня, что и первая точка.
SLope[(знак)] – построение касательной к графику. По этой команде определяется следующий максимальный наклон графика при поиске в заданном направлении. Наклон графика может иметь положительную или отрицательную крутизну в зависимости от параметра (знак), принимающего значения Positive, Negative или Both. По умолчанию этот параметр принимает значение Positive. Если ряд точек, число которых задано параметром [#последующие_точки#], имеют нулевой наклон или наклон противоположного знака, то дальнейшее выполнение команды прекращается.
PEak – поиск ближайшего “пика”. Количество точек с меньшим значением Y по обеим сторонам “пика” должно быть не меньше, чем значение параметра [#последующие_точки#].
TRough – поиск ближайшей впадины. Количество точек с большим значением Y по обеим сторонам впадины должно быть не меньше, чем значение параметра [#последующие_точки#].
MAx – определение максимального значения графика в заданной области изменения X. Если имеется несколько максимумов с равными значениями Y, определяется ближайший в заданном направлении. На определение максимума параметры [#последующие_точки#] и [повторение:] влияния не оказывают.
MIn – определение минимального значения графика в заданной области изменения X. Если имеется несколько минимумов с равными значениями Y, определяется ближайший в заданном направлении. На определение минимума параметры [#последующие_точки#] и [повторение:] влияния не оказывают.
XValue<(значение)> – производится поиск первой точки на графике, имеющей заданное значение переменной X. Приведем примеры заданий значения X, используемых в командах поиска при определении целевой функции Goal Function:
– числа, например 1e5, 100n, 1...,
– проценты, например 50%,
– отмеченные точки, например x1, x2... (используются только при задании целевых функций Goal Functions в режиме Performance Analysis),
– значение, отсчитываемое от максимального или минимального значения диапазона, например
max–3 – максимальная граница минус 3,
min+3 – минимальная граница плюс 3,
– относительное значение, например
. –3 – последнее значение минус 3,
.+3 – последнее значение плюс 3.
Определяется первая точка на графике, имеющая заданное значение X. Параметры задания направления [#последующие_точки#], [(диапазон X[,диапазон Y])] и [повторение:] на ее определение влияния не оказывают.
Рис. 7.14. Задание расчета преобразования Фурье |
После щелчка по клавише OK производится вычисление быстрого преобразования Фурье (БПФ) всех функций, графики которых выведены на экран дисплея. Отметим, что в программе PSpice имеется специальная директива .FOUR для расчета спектра процесса по последнему периоду его реализации, т. е. спектра процесса в стационарном или близком к стационарному режиме; при этом результаты расчета амплитуды и фазы спектра выводятся в табличной форме. Спектр процесса представляет собой комплексную величину, модуль, фаза, действительная и мнимая части которой выводятся на экран программы Probe. Если на экран выведен график частотной характеристики, то рассчитывается обратное преобразование Фурье (т. е. импульсная характеристика). Перед вычислением БПФ программа Probe интерполирует отсчеты переменных так, чтобы количество отсчетов было кратно степени 2. Масштабирование спектра производится таким образом, чтобы получить те же результаты, что и при выполнении директивы .FOUR. Так, в результате расчета спектра гармонического сигнала с амплитудой 1 В будет построен график спектра в виде импульса с амплитудой 1 В, причем амплитуда импульса не зависит от длительности интервала анализа T. Разрешающая способность по частоте равна 1/T. Если, например, T=100 мкс, то разрешающая способность равна 10 кГц.
Установка границ диапазона переменных по оси X (т. е. интервала анализа для вычисления преобразования Фурье) выполняется по команде Use Data/Restricted (см. рис. 7.14).
7. Изменение имени переменной, откладываемой по оси X. По умолчанию по оси X откладывается независимая переменная. Изменение ее имени производится в меню Plot по команде X Axis Settings с помощью опции Axis Variable. Имя переменной вводится по приглашению программы по тем же правилам, что и в режиме Trace/Add. Команда очень полезна, так как позволяет построить зависимость любой переменной, откладываемой по оси Y, от любой переменной, откладываемой по оси X (так, например, построен показанный на рис. 3.23 фазовый портрет динамической системы).
8. Параметрические зависимости. Графики изменения заданной характеристики цепи от варьируемого параметра строятся при выборе опции Performance Analysis команды X Axis Settings меню Plot (вызывается также щелчком мыши по пиктограмме , см. рис. 7.14). Характеристики цепи определяются из массивов данных, передаваемых программе Probe, с помощью команд поиска, выделения определенных точек и выполнения математических преобразований. Например, можно построить график зависимости резонансной частоты усилителя от температуры или ширины импульса от какого-нибудь варьируемого параметра. После выбора этого режима экран очищается и выводится одно пустое графическое окно (построенные ранее графики восстанавливаются при выключении опции Performance Analysis). Затем по команде Trace/Eval Goal Function (или щелчком по пиктограмме ) указывается имя целевой функций для расчета требуемой характеристики цепи (графики “обычных” переменных в этом режиме построить нельзя). Для выполнения этого режима необходимо:
1) иметь несколько секций в файле данных, передаваемых программе Probe. Каждая секция содержит данные одного варианта анализа программы PSpice при выполнении директив .STEP, .TEMP или .MC;
2) в текстовый файл msim.prb заранее записать необходимые целевые функции.
В этом режиме по оси X откладывается переменная, изменяющаяся при переходе от одной секции данных к другой; это может быть имя варьируемого параметра, температура или номер варианта при статистических испытаниях по методу Монте-Карло. Например, на рис. 1.7 построена зависимость от температуры ширины полосы пропускания и резонансной частоты усилителя.
9. Нанесение меток на графики. По команде Tools/Label на графики аналоговых переменных наносятся метки в виде текстовых и графических символов, которые представляют собой отрезки линий, линейно-ломаные линии, стрелки, прямоугольники, окружности и эллипсы. Метки наносятся с помощью мыши. Методика нанесения всех меток одинакова: сначала в определенной точке поля графика щелчком левой кнопки мыши фиксируется начальный элемент метки и относительно него наносится остальная часть текстовой или графической метки. Например, при нанесении линии сначала фиксируется ее начало, затем перемещается и фиксируется ее окончание, соединенное с начальной точкой “резиновой” нитью. Повторный щелчок кнопкой мыши фиксирует метку. Нажатие правой кнопки мыши или клавиши Esc отменяет нанесение метки. Все операции с метками, за исключением редактирования заголовка графика, выполняются на текущем активном графическом окне. С помощью мыши можно, не прерывая процесс создания метки, сделать активным другое окно, переместив в его поле курсор мыши и нажав левую кнопку. Однако метки нельзя наносить в графическом окне построения цифровых сигналов. Метки можно наносить также вне пределов видимой части графика, они будут видны после изменения масштаба по осям ординат. Выбранные щелчком мыши метки можно перемещать и удалять. Метки наносятся с помощью следующих команд.
Text – ввод текста. Содержание текста вводится в специальном окне по приглашению “Enter text label” и после нажатия Enter переносится в нужное место на поле графика с помощью мыши или функциональных клавиш.
Line – проведение отрезка линии, соединяющей две точки, по приглашению программы в строке сообщений “Place the cursor at the start of the line”.
Poly-line – проведение линейно-ломаных линий, заданных точками излома. Ввод таких объектов завершается нажатием Esc, и они при выполнении команд сдвига и удаления воспринимаются как единое целое.
Arrow – нанесение на график отрезка линии со стрелкой на конце. Точка привязки совмещена с началом отрезка, а стрелка перемещается вместе с курсором до момента фиксации.
Box – нанесение прямоугольника по заданным точкам противоположных углов.
Circle – нанесение окружности по заданному центру и произвольной точке на окружности.
Ellipse – нанесение эллипса с указанием его угла наклона, точки центра и длины большой и малой полуосей. По приглашению программы в командной строке вводится значение угла наклона эллипса в градусах:
Enter the inclination of the ellipse: 0.0
Точкой привязки эллипса служит его центр, отмечаемый по приглашению
Place the cursor at the center of the ellipse.
Stretch the ellipse as necessary.
В результате перемещения курсора в двух направлениях эллипс принимает необходимые размеры.
Mark – вывод на экран координат последней точки, помеченной курсором.
10. Сохранение атрибутов экрана. По команде Tools/Display Control сохраняются атрибуты экрана дисплея для последующей регенерации экрана графиков. К этим атрибутам относятся количество окон на экране, выбор линейного или логарифмического масштаба по осям X и Y, наличие графиков цифровых сигналов и т. д. По умолчанию атрибуты экрана записываются в файл с именем текущей схемы и расширением .prb, однако их можно записать в другой файл, указывая его имя в командной строке вызова программы Probe.
Идеальные ключи
Ключи, управляемые напряжением или током, используются при расчете переходных процессов.
Ключ, управляемый напряжением, описывается предложением
Sxxx <+узел> <–узел> <+управляющий узел> <–управляющий узел> <имя модели>
Здесь <+узел> и <–узел> – номера узлов, к которым подсоединен ключ; <+управляющий узел>, <–управляющий узел> – номера узлов, разность потенциалов которых управляет ключом.
Параметры ключа задаются по директиве
.MODEL <имя модели> VSWITCH (VON=<значение> VOFF=<значение>
+ RON=<значение> ROFF=<значение>)
Параметры модели ключа, управляемого напряжением, приведены в табл. 3.11.
Таблица 3.11
Обозначение | Параметр | Размерность | Значение по умолчанию | ||||
VON | Напряжение замыкания ключа | В | 1 | ||||
VOFF | Напряжение размыкания ключа | В | 0 | ||||
RON | Сопротивление замкнутого ключа | Ом | 1 | ||||
ROFF | Сопротивление разомкнутого ключа | Ом | 10 |
Если VON>VOFF, то ключ замкнут при управляющем напряжении V
>VON и разомкнут при V<VOFF. На интервале VOFF<V<VON сопротивление ключа плавно изменяется от значения ROFF до RON. Если VON<VOFF, то ключ замкнут при V<VON и разомкнут при V>VOFF.Сопротивление ключа описывается следующими выражениями:
при VON>VOFF
при VON<VOFF
Здесь
=(VON+VOFF)/2; V=VON–VOFF; L=ln(RON/ROFF);L
=ln().Спектральная плотность тока теплового шума ключа равна S
= 4kT/R.Ключ, управляемый током независимого источника напряжения, описывается предложением
Wxxx <+узел> <–узел> <имя управляющей ветви> <имя модели>
Здесь <имя управляющей ветви> – имя источника напряжения (его ЭДС может быть равна нулю), ток через который управляет ключом. Параметры ключа задаются по директиве
.MODEL <имя модели> ISWITCH (ION=<значение> IOFF=<значение>
+ RON=<значение> ROFF=<значение>)
Смысл этих параметров такой же, как для ключа, управляемого напряжением, только параметр ION по умолчанию равен 1 мА. Приведем пример описания ключа, управляемого током
VCONT 4 2 0
W1 6 3 VCONT SW
.MODEL SW ISWITCH (ION=50MA IOFF=45MA)
Ключ, управляемый во времени, реализуется путем подключения к ключу, управляемому током или напряжением, источника переменного во времени сигнала.
Компаратор напряжения
Компараторы напряжений так же, как и операционные усилители, представляются в программе PSpice с помощью макромоделей. Стандартная макромодель компаратора напряжений, поддерживаемая программой Parts, приведена на рис. 5.5 [9, 46].
Рис. 5.5. Макромодель компаратора напряжения |
Существуют два вида компараторов: со средней точкой, подключенной к "земле", как показано на рис. 5.5, и с несимметричным выходным каскадом, когда узел 6 подключается к источнику отрицательного напряжения (т.е. к узлу 4). В обеих моделях используется выходной каскад на биполярном транзисторе с открытым коллектором.
Параметры макромодели оцениваются в программе Parts по следующим паспортным данным:
– напряжение источников питания;
– максимальные положительное и отрицательное значения входного синфазного напряжения (для компараторов, в которых синфазные напряжения отсчитываются относительно "земли");
– входной ток смещения;
– коэффициент усиления напряжения на низкой частоте;
– сопротивление нагрузки;
– мощность потребления;
– время задержки, спада и фронта для заданных значений амплитуды импульса входного напряжения и перевозбуждения входного напряжения (времена фронта и спада определяются по уровням 10 и 90% от максимального значения выходного напряжения).
Кварцевый резонатор
Простейшая эквивалентная схема кварцевого резонатора представлена на рис. 5.14. [74]. С ее помощью моделируется как последовательный, так и параллельный резонанс, частоты которых определяются выражениями
Рис. 5.14. Эквивалентная схема кварцевого резонатора |
Добротность резонатора равна
где f
- частота последовательного или параллельного резонанса.В качестве примера приведем описание макромодели кварцевого резонатора с частотой параллельного резонанса 100 кГц и добротностью Q=25 000:
.subckt QR100K 1 2
LK 1 3 LQR 600
.model LQR IND (L=1 TC2=5E-8)
CK 4 2 0.0042217pF
rk 3 4 15K
C0 1 2 2.5pF
.ends
Обратим внимание на большую эквивалентную индуктивность LK, которая имеет квадратичный температурный коэффициент TC2 для имитации линейной зависимости нестабильности резонансной частоты от температуры.
Параметры эквивалентных схем отечественных кварцевых резонаторов приведены в табл. 5.2.
Таблица 5.2
Тип | Диапазон частот, МГц | Q | r, Ом | С, пФ | f, МГц | L, Гн | С, пФ | ||||||||
РГ-01 | 0,05...0,22 | 75 000 | 1700 | 15 | 0,05 | 1,015 | 9,9800 | ||||||||
РГ-02 | 0,22...0,80 | 100 000 | 550 | 6 | 0,25 | 35,01 | 0,0120 | ||||||||
РВ-15 | 0,13...0,75 | 150 000 | 375 | 10 | 0,5 | 17,90 | 0,0057 | ||||||||
РГ-27 | 0,50...0,75 | 45 000 | 400 | 4 | 0,5 | 5,730 | 0,0177 | ||||||||
РГ-06 | 0,75...1,8 | 60 000 | 200 | 5 | 1,0 | 1,910 | 0,0133 | ||||||||
РВ-17 | 0,84...1,8 | 125 000 | 375 | 3 | 1,8 | 4,145 | 0,00189 | ||||||||
РГ-07 | 1,80...8,0 | 200 000 | 40 | 5 | 1,8 | 0,707 | 0,01106 | ||||||||
РГ-05 | 5,0...30 | 120 000 | 25 | 5 | 5 | 0,0955 | 0,01061 | ||||||||
РВ-11 | 4,5...30 | 150 000 | 12 | 4 | 10 | 0,0286 | 0,00886 | ||||||||
РВ-59 | 5,0...30 | 150 000 | 10 | 3,5 | 20 | 0,01194 | 0,00530 | ||||||||
РГ-05 | 30...100 | 30 000 | 60 | 2 | 30 | 0,00955 | 0,00295 | ||||||||
РВ-11 | 30...100 | 125 000 | 45 | 1,65 | 50 | 0,01790 | 0,00057 | ||||||||
РВ-59 | 30...100 | 125 000 | 40 | 1,25 | 75 | 0,01061 | 0,00042 | ||||||||
РВ-19 | 100...150 | 90 000 | 55 | 1,4 | 100 | 0,00788 | 0,00032 | ||||||||
РВ81 | 150...300 | 90 000 | 45 | 2 | 250 | 0,00258 | 0,00016 |
Параметры эквивалентной схемы Q, r и C определяются только типом резонатора и практически не зависят от резонансной частоты f, которая может принимать любое значение в пределах указанного диапазона. Значения параметров L и C даны для приведенных конкретных значений резонансной частоты f, они рассчитываются по формулам
.
Магнитный сердечник
В программе PSpice используется модель магнитного сердечника, предложенная Джилсом и Атертоном [52]. Она основана на известных представлениях о движении доменных границ магнитных материалов. С ее помощью удается отразить все основные характеристики гистерезиса, такие, как кривая начальной намагниченности, намагниченность насыщения, коэрцитивная сила, остаточная намагниченность и динамические потери на гистерезис.
Существуют две разновидности этой модели – LEVEL=1 и LEVEL=2. Их параметры приведены в табл. 4.9.
Таблица 4.9
Имя параметра | Параметр | Размерность | Значение по умолчанию | ||||
LEVEL | Индекс модели | 2 | |||||
AREA | Площадь поперечного сечения магнитопровода | см | 0,1 | ||||
PATH | Средняя длина магнитной силовой линии | см | 1 | ||||
GAP | Ширина воздушного зазора | см | 0 | ||||
PACK | Коэффициент заполнения сердечника | 1 | |||||
MS | Намагниченность насыщения | А/м | 500·10 | ||||
A | Параметр формы безгисте- резисной кривой намагничивания | А/м | 10 | ||||
C | Постоянная упругого смещения доменных границ | 0,1 | |||||
K | Постоянная подвижности доменов | А/м | 10 | ||||
ALPHA | Параметр магнитной сваязи доменов | 10 | |||||
GAMMA | Параметр демпфирования доменов (для LEVEL=1) | 1/с | 0 |
Параметры AREA, PATH, GAP и PACK определяются геометрическими размерами сердечника, остальные – свойствами магнитного материала. Основная особенность модели LEVEL=1 – учет частотных свойств магнитных материалов. Модель LEVEL=2 обеспечивает достаточную точность для ферритовых сердечников и сердечников из молибденовых пермаллоев, а также может быть использована для моделирования ферромагнетиков аморфной структуры. В последующих версиях PSpice модель LEVEL=1 использоваться не будет, так как модель LEVEL=2 усовершенствована и обеспечивает большую точность моделирования. Поэтому программа Parts в системе Design Center 6.2 создает модели LEVEL=2. При использовании моделей из старых версий, в кторых по умолчанию назначался параметр LEVEL=1, в версии Design Center 6.2 его нужно явно указать в директиве .MODEL.
Краткое описание модели магнитного сердечника. Магнитный материал, состоящий из множества доменов, находящихся в равновесном состоянии, имеет идеальную (безгистерезисную) кривую намагничивания. Безгистерезисная кривая получается в том случае, когда в дополнение к постоянной составляющей на магнитный материал воздействует сильное переменное поле с амплитудой, постепенно убывающей до нуля. Эта кривая соответствует минимальной энергии доменов и моделируется уравнением
Man(Hэф)= MS·F(Hэф/A), (1)
где
Hэф = H + ALPHA·Man,
Man – безгистерезисная намагниченность, MS – намагниченность насыщения, Hэф – эффективная напряженность поля, для модели LEVEL=2 полагают ALPHA=0.
Заметим, что кривая начальной намагниченности магнитных материалов всегда лежит ниже безгистерезисной кривой, как показано на рис. 4.12; в области насыщения они сливаются. Безгистерезисная кривая представляет собой как бы "хребет" кривой гистерезиса.
Рис. 4.12. Петля гистерезиса (1), начальная (2) и безгистерезисная (3) кривые намагничивания |
безгистерезисная намагниченность Man
соответствует такому состоянию, который материал мог бы достичь, если домены могли свободно перемещаться. Однако реально домены такой свободой не обладают из-за наличия потенциальных барьеров в промежуточных переходных состояниях. Границы доменов остаются неподвижными до тех пор, пока не накопится достаточный магнитный потенциал для скачкообразного изменения положения границ (скачки Баркгаузена). Для этого требуется некоторая удельная энергия на единицу объема материала, что аналогично эффекту "сухого трения". Уравнение магнитного материала в этом случае имеет вид
(2)
где M – намагниченность материала; = +1 при увеличении напряженности поля H, т.е.
при dH/dt>0, и = -1 при уменьшении H.
Это справедливо при необратимом движении доменов. Величина Man рассчитывается из выражения (1). При перемагничивании проявляются эффекты упругого смещения границ доменов, так что намагниченность уже не может описываться уравнением (2). В предположении сферического прогиба доменной границы теоретическая зависимость дифференциальной магнитной проницаемости ферромагнетика принимает вид
(3)
Решение системы уравнений (1), (3) позволяет рассчитать кривую гистерезиса магнитного сердечника без воздушного зазора.
Влияние воздушного зазора. Если ширина воздушного зазора мала по сравнению с другими размерами сердечника, можно предположить, что все силовые линии магнитного поля пересекают зазор без изменения направления и что краевые эффекты малы. В таком случае справедливо соотношение
H·L + Hз·Lз = nI, (4)
где H – напряженность поля в сердечнике; L=PATH – средняя длина магнитопровода; Hз – напряженность поля в зазоре; Lз=GAP – длина зазора; nI –произведение числа витков катушки сердечника на протекающий по ним ток. Предположим, что намагниченность в воздушном зазоре пренебрежимо мала, так что Bз=Hз (т.е. магнитная проницаемость =1) и Bз=B. Отсюда с учетом предыдущего соотношения получим уравнение
H·L + Bз·Lз = nI.
Предлагается графический метод решения составленной системы уравнений, который заключается в следующем:
1) с помощью уравнений (1), (3) рассчитывается кривая B–H без учета зазора;
2) для построения кривой B–H с учетом зазора для каждого текущего значения H проводится линия с наклоном -L/Lз (при Lз=0 вертикальная прямая);
3) находится точка пересечения этой линии с кривой B–H, построенной без учета зазора (точка a на рис. 4.13). Ордината точки пересечения определяет магнитную индукцию сердечника B с учетом наличия зазора (точка a' на рис. 4.13).
Этот метод численно реализован в программе PSpice.
Рис. 4.13. Петля гистерезиса без учета (1) и с учетом (2) воздушного зазора |
определяются из дифференциального уравнения:
(5)
Напомним, что ЭДС самоиндукции E=-dФ/dt= –S·dB/dt
, где S=AREA·PACK – эффективная площадь поперечного сечения магнитопровода. Напряженность поля H связана с током в катушке сердечника I соотношением H=nI/L. Поэтому в уравнении (5) производная dM(t)/dt
определяется приложенным к обмотке сердечника напряжением, намагниченность в статическом режиме M(H)
определяется из уравнений (1) – (3), в результате чего находится скорректированное значение намагниченности M(t)
с учетом частотнозависимых потерь.
Система единиц. В программе PSpice рассчитывается зависимость намагниченности M от H, а перед построением кривой гистерезиса B–H
с помощью программы Probe производится расчет магнитной индукции B=·(M+H). В программе принята следующая система единиц: намагниченность M
в А/м, магнитная индукция B в гауссах, напряженность магнитного поля H
в эрстедах [ 1 Э = А/м, Гн/м = 1 Гс/Э ].
Определение параметров модели магнитного сердечника по экспериментальным данным. Расчет параметров модели магнитного сердечника LEVEL=2 по экспериментальным данным возможна с помощью программы Parts (разд. 7.3). Приведем здесь методику ручной настройки модели сердечника по экспериментальным данным с помощью программ PSpice и Probe. Настройка производится в несколько этапов.
1. Сначала подбирают параметры A и ALPHA модели, обеспечивая совпадение теоретических (т.е. рассчитанных с помощью программы PSpice) и экспериментальных безгистерезисных кривых намагничивания. Безгистерезисные кривые обычно не приводятся в справочных данных, поэтому их необходимо экспериментально измерить [12].
Угол наклона безгистерезисной кривой при H=0 примерно равен углу наклона кривой гистерезиса B–H в точке пересечения с осью абсцисс. Из уравнения (1) следует, что угол наклона кривой гистерезиса при H=Hc равен (рис. 4.12)
tg = 1/(3·A/MS - ALPHA).
Намагниченность насыщения MS определяется на основе магнитной индукции B' на участке насыщения (рис. 4.12):
MS = B'/0,01257 – H',
где H' – напряженность поля, при котором измерена индукция B'.
Рис. 4.14. Зависимость формы безгистерезисной кривой (К=0) от параметров А (а) и ALPHA (б) |
2. Далее экспериментально измеряют или берут из справочных данных начальную кривую намагничивания и петлю гистерезиса и повторяют моделирование при K и C, не равных нулю.
Сначала подбором константы C получают требуемое значение начальной магнитной проницаемости
При этом учитывают, что параметр С равен отношению магнитных проницаемостей для начальной и безгистерезисной кривых (рис. 4.12): C = . График магнитной проницаемости (H) строится с помощью программы Probe, входящей в состав пакета PSpice, путем вычисления производной dB/dH.
Рис. 4.15. Зависимость начальной кривой намагничивания от параметра K |
Значение K влияет на ширину петли гистерезиса. При подборе K следует обеспечить правильное значение коэрцитивной силы Hc (рис. 4.12).
Для точной подгонки экспериментальных и теоретических кривых гистерезиса, в частности, для обеспечения заданного значения остаточной магнитной индукции Br, следует снова слегка проварьировать параметры A и ALPHA. В отсутствии экспериментальных безгистерезисных кривых подбор параметров модели магнитного сердечника производится в той же последовательности, но занимает большее время.
3. Учет зависимости потерь в магнитном материале от частоты предусматривается в модели LEVEL=1. Для идентификации параметра GAMMA полагают сначала ее равной верхней граничной частоте материала и моделируют кривую гистерезиса при заданной частоте сигнала. Затем подбором GAMMA добиваются совпадения ширины кривой B–H экспериментальным данным. При этом имеют в виду, что увеличение GAMMA уменьшает потери в сердечнике.
Оригинальная методика идентификации параметров моделей ферромагнетиков по экспериментальным данным приведена в статье [11]. В частности, в ней приведены параметры модели аморфного магнитного материала 84КХСР, используемого для изготовления витых магнитопроводов высокочастотных импульсных трансформаторов источников вторичного электропитания
MS=500·10 А/м, A=10 А/м, С=0,24, K=7 А/м.
Пример. Приведем для иллюстрации пример задания на моделирование сердечника Б14 на феррите M2000-НМ1 с помощью PSpice. Начальная кривая намагничивания и петля гистерезиса рассчитывается с помощью следующего задания:
Demonstration of inductor B-H curve
I1 0 1 SIN ( 0 0.2 250 0 0 0)
L1 1 0 20
K1 L1 0.9999 M2000
R1 1 0 500
.model M2000 CORE (LEVEL=1 MS=334e3 ALPHA=2.3e-2
+ A=4050 K=166 C=0.05 AREA=0.064 PATH=2.25)
.tran 1u 5m SKIPBP
.probe
.END
После завершения моделирования с помощью программы PSpice вызывают графический постпроцессор Probe, по оси X откладывают переменную в эрстедах, выполняя последовательность команд Plot/X Axis Settings/Axis Variable (для выбора имени переменной H(K1) из списка доступных переменных нужно включить опцию Internal Subcircuit Nodes). По оси Y выводят график функции B(K1) в гауссах (см.п. 3.2.1 и разд. 7.2), выполняя команду Trace/Add.
Многовариантный анализ
Вариация параметров (Parametric) назначается по директиве .STEP, имеющей следующие разновидности:
.STEP [ LIN ] <имя варьируемого параметра> <начальное значение>
+ <конечное значение> <шаг приращения параметра>
.STEP [ OCT ] [ DEC ] <имя варьируемого параметра>
+ <начальное значение> <конечное значение> <количество точек>
.STEP <имя варьируемого параметра> LIST <значение>*
На каждом шаге вариации параметров по очереди выполняются все виды анализа характеристик цепи, задаваемых директивами .DC, .AC, .TRAN и др. Варьироваться могут все параметры всех моделей компонентов и глобальные параметры за исключением:
– параметров L и W МОП-транзистора (разрешается варьировать аналогичные параметры LD и WD);
– температурных коэффициентов TC1, TC2 резисторов и других компонентов.
Приведем примеры
.STEP VIN -.8 .8 .2
.STEP LIN I2 5mA -2mA -0.1mA
.STEP RES RMOD(R) 0.9 1.1 0.05
.STEP TEMP LIST 0 20 27 50 80
.STEP PARAM VPOWER 4 6 0.2
Ключевое слово PARAM в последнем примере указывает, что после него следует имя глобального параметра, определенного ранее по директиве .PARAM.
Дадим пояснения, как с помощью директивы .STEP организовать многовариантный анализ.
Например, многовариантный анализ переходных процессов при изменении амплитуды A гармонического сигнала реализуется следующим образом:
.PARAM A=0
VSIGNAL 1 0 SIN(0 {A} 1kHz)
.STEP PARAM A LIST 1 2 5 10
.TRAN 0.1ms 5ms
Обратим внимание, что при вариации глобальных параметров их необходимо предварительно объявить по директиве .PARAM.
Изменение сопротивления резистора (и параметров других пассивных компонентов) осуществляется двояко. Во-первых, с помощью глобального параметра
.PARAM P=1
R1 2 0 {P}
.STEP PARAM P 15,45,10
Во-вторых, используя модель резистора
.MODEL RMOD RES(R=15)
R1 2 0 RMOD 1
.STEP RES RMOD(R) 15,45,10
Здесь RMOD – имя модели резистора, RES – тип модели, R – имя варьируемого параметра.
В связи с тем что многовариантный анализ производится также с помощью директив .TEMP, .MC, .WCASE и .DC, в одном задании на моделирование вместе с директивой .STEP разрешается помещать только одну из них. Две директивы .STEP в одном задании не допускаются.
Вариация температуры (Temperature) производится по директиве
.TEMP <температура>*
Здесь указывается список значений температуры (по шкале Цельсия), для которых следует выполнить все указанные в задании директивы анализа характеристик. Если указано несколько значений температуры, то все виды анализа проводятся для каждой температуры. Если директива .TEMP не приведена, а в директиве .OPTIONS не указано другого значения температуры, то расчеты проводятся для номинальной температуры Tnom = 27 C.
Модель арсенид-галлиевого полевого транзистора
Арсенид-галлиевые полевые транзисторы (GaASFET) имеют эквивалентную схему, изображенную на рис. 4.7,а. Существуют четыре разновидности математического описания этой модели, предложенные Куртисом (Curtice) [39–40], Рэйтеоном (Raytheon) [78–79], модель TriQuit [56] и модель Паркера-Скеллерна (Parker–Skellern) [59]. Модель Куртиса дает удовлетворительные результаты лишь при расчете статического режима, в то время как остальные модели отражают и динамические характеристики арсенид-галлиевого транзистора. Параметры четырех математических моделей приведены ниже:
Имя параметра | Параметр | Значение по умолчанию | Единица измерения | ||||
LEVEL | Тип модели: 1 – модель Куртиса, 2 – модель Рэйтеона, 3 – модель TriQuit, 4 – модель Паркера–Скеллерна | 1 | |||||
VT0 | Барьерный потенциал перехода Шотки | –2,5 | В | ||||
VBI | Контактная разность потенциалов | 1,0 | В | ||||
ALPHA | Константа, определяющая ток Idrain (Level=1–3) | 2,0 | 1/В | ||||
B | Параметр легирования (Level=2) | 0,3 | 1/В | ||||
BETA | Коэффициент пропорциональности в выражении для тока стока | 0,1 | А/В | ||||
LAMBDA | Параметр модуляции длины канала | 0 | 1/В | ||||
GAMMA | Параметр статической обратной связи (для Level=3) | 0 | |||||
DELTA | Параметр выходной обратной связи (для Level=3, 4) | 0 | (А·В) | ||||
Q | Показатель степени (для Level=3, 4) | 2 | |||||
RG | Объемное сопротивление области затвора | 0 | Ом | ||||
RD | Объемное сопротивление области стока | 0 | Ом | ||||
RS | Объемное сопротивление области истока | 0 | Ом | ||||
CGD | Емкость затвор–сток при нулевом смещении | 0 | Ф | ||||
CGS | Емкость затвор–исток при нулевом смещении | 0 | Ф | ||||
CDS | Емкость сток–исток при нулевом смещении | 0 | Ф | ||||
IS | Ток насыщения p–n-перехода затвор–канал | 10 | А | ||||
TAU | Время переноса носителей заряда (Level=1–3) | 0 | с | ||||
M | Коэффициент лавинного умножения перехода затвора (Level=1–3) | 0,5 | |||||
N | Коэффициент неидеальности | 1 | |||||
FC | Коэффициент нелинейности барьерной емкости прямосмещенного перехода затвора | 0,5 | |||||
VBI | Контактная разность потенциалов p–nперехода затвора | 1 | В | ||||
EG | Ширина запрещенной зоны | 1,11 | эВ | ||||
XTI | Температурный коэффициент тока IS | 0 | |||||
VDELTA | Напряжение, входящее в выражения для емкостей переходов (для Level=2 и 3) | 0,2 | В | ||||
VMAX | Максимальное напряжение, входящее в выражения для емкостей переходов (для Level=2 и 3) | 0,5 | В | ||||
VTOTC | Температурный коэффициент VTO | 0 | В/С | ||||
BETATCE | Температурный коэффициент BETA | 0 | %/C | ||||
TRG1 | Линейный температурный коэффициент RG | 0 | 1/C | ||||
TRD1 | Линейный температурный коэффициент RD | 0 | 1/C | ||||
TRS1 | Линейный температурный коэффициент RS | 0 | 1/C | ||||
KF | Коэффициент, определяющий спектральную плотность фликкер–шума | 0 | |||||
AF | Показатель степени, определяющий зависимость спектральной плотности фликкер–шума от тока через переход | 1 | |||||
T_MEASURED | Температура измерений | C | |||||
T_ABS | Абсолютная температура | C | |||||
T_REL_GLOBAL | Относительная температура | C | |||||
T_REL_LOCAL | Разность между температурой транзистора и модели-прототипа | C |
Специфические параметры модели уровня Level=4
ACGAM |
Коэффициент модуляции емкости |
0 |
|
HFETA |
Параметр обратной связи VGS на высокой частоте |
0 |
|
HFE1 |
Коэффициент модуляции HFGAM напряжением VGD |
0 |
1/В |
HFE2 |
Коэффициент модуляции HFGAM напряжением VGS |
0 |
1/В |
HFGAM |
Параметр обратной связи VGD на высокой частоте |
0 |
|
HFG1 |
Коэффициент модуляции HFGAM напряжением VSG |
0 |
1/В |
HFG2 |
Коэффициент модуляции HFGAM напряжением VDG |
0 |
1/В |
IBD |
Ток пробоя перехода затвора |
0 |
А |
LFGAM |
Параметр обратной связи на низкой частоте |
0 |
|
LFG1 |
Коэффициент модуляции LFGAM напряжением VSG |
0 |
1/В |
LFG2 |
Коэффициент модуляции LFGAM напряжением VDG |
0 |
1/В |
MXI |
Параметр напряжения насыщения |
0 |
|
MVST |
Параметр подпороговой модуляции |
0 |
1/В |
P |
Показатель степени |
2 |
|
TAUD |
Время релаксации тепловых процессов |
0 |
с |
TAUG |
Время релаксации параметра обратной связи GAM |
0 |
с |
VBD |
Потенциал пробоя перехода затвора |
1 |
В |
VST |
Подпороговый потенциал |
0 |
В |
XC |
Фактор уменьшения емкости разряда |
0 |
|
XI |
Параметр, определяющий точку излома потенциала насыщения |
1000 |
|
Z |
Параметр точки излома характеристики транзистора |
0,5 |
Рис. 4.7. Нелинейная (а) и линейная (б) схемы замещения арсенид–галлиевого полевого транзитора |
1) Ток затвора равен
Ig = Igs + Igd.
Для моделей LEVEL=1–3
Igs=IS [exp(Vgs/(N·Vt)) –1];
Igd=IS [exp(Vgd/(N·Vt)) –1].
Для моделей LEVEL=4
где
2) Ток стока и истока
Id = Idrain – Igd, Is
= –Idrain – Igs.
Ток Idrain в модели Куртиса (LEVEL=1) в нормальном режиме (Vds0) описывается соотношениями:
В модели Рэйтеона (LEVEL=2) в нормальном режиме:
где полиномиальная аппроксимация гиперболического тангенса имеет вид
Для модели TriQuit (LEVEL=3) в нормальном режиме
где
Idso = BETA·(Vgs – Vto) ·Kt,
Vto = VTO – GAMMA·Vds.
В инверсном режиме (Vds<0) токи стока и истока в приведенных выше соотношениях меняются местами.
Динамический режим. Емкость перехода исток–сток равна Cds=CDS (рис. 4.7, а).
В модели LEVEL=1 емкости Cgs, Cgd определяются выражениями:
емкость затвор–исток равна
емкость затвор–сток равна
В модели LEVEL=2 и 3 эти емкости определяются выражениями:
где
Линейная схема замещения транзистора. Схема приведена на рис. 4.7, б, где дополнительно включены источники флюктуационных токов. Тепловые шумы Iш, Iш, Iш, создаваемые резисторами RS, RD
и RG, имеют спектральные плотности S=4kT/RS, S=4kT/RD, S=4kT/RG.
Источник тока Iшd, характеризующий дробовой и фликкер-шум, имеет спектральную плотность S = 8k·T·Gm/3 + KF·Id/f, где Gm = dIdrain/dVgs –дифференциальная проводимость в рабочей точке по постоянному току.
Температурные эффекты описываются зависимостями:
IS(T)=IS·exp[EG/(Vt·N) ·(T/Tnom–1)] ·(T/Tnom);
VBI(T)=VBI·T/Tnom–3Vt(T)ln(T/Tnom) –EG(Tnom)·T/Tnom+EG(T);
CGS(T)=CGS{1+M[0,0004(T–Tnom)+1–VBI(T)/VBI]};
CGD(T)=CGD{1+M[0,0004 (T–Tnom)+1–VBI(T)/VBI]};
VTO(T)=VTO+VTOTC·(T–Tnom);
BETA(T)=BETA·1,01;
RG(T)=RG(1+TRG1(T–Tnom));
RD(T)=RD(1+TRD1(T–Tnom));
RS(T)=RS(1+TRS1(T–Tnom));
KF(T)=KF·VBI(T)/VBI, AF(T)=AF·VBI(T)/VBI.
Скалярный коэффициент Area позволяет учесть параллельное соединение однотипных транзисторов, для чего в приведенной выше модели изменяются следующие параметры:
IS=IS·Area, BETA=BETA·Area, RD=RD/Area, RS=RS/Area,
CGS=CGS·Area, CGD=CGD·Area, CDS=CDS·Area.
Значение Area указывается в задании на моделирование при включении транзистора в схему (п. 3.2.6), по умолчанию Area=1.
Модель вход/выход
Модели вход/выход, ассоциируемые с каждым цифровым компонентом, имеют тип UIO и задаются по формату
.MODEL <имя модели вход/выход> UIO [<параметры модели>]
Параметры модели вход/выход приведены в табл. 6.3.
Таблица 6.3
Идентификатор параметра | Параметр | Значение по умолчанию | Единица измерения | ||||
INLD | Входная емкость | 0 | Ф | ||||
OUTLD | Выходная емкость | 0 | Ф | ||||
DRVH | Выходное сопротивление высокого уровня | 50 | Ом | ||||
DRVL | Выходное сопротивление низкого уровня | 50 | Ом | ||||
DRVZ | Выходное сопротивление утечки цепи, моделируемой как цепь хранения заряда | 250 кОм | Ом | ||||
INR | Входное сопротивление утечки цепи, моделируемой как цепь хранения заряда | 30 кОм | Ом | ||||
TSTOREMN | Минимальное время сохранения заряда цепи, моделируемой как цепь хранения заряда | 1 мс | с | ||||
AtoD1 | Имя макромодели интерфейса А/Ц первого уровня | AtoDDefault | |||||
DtoA1 | Имя макромодели интерфейса Ц/А первого уровня | DtoADefault | |||||
AtoD2 | Имя макромодели интерфейса А/Ц второго уровня | AtoDDefault | |||||
DtoA2 | Имя макромодели интерфейса Ц/А второго уровня | DtoADefault | |||||
AtoD3 | Имя макромодели интерфейса А/Ц третьего уровня | AtoDDefault | |||||
DtoA3 | Имя макромодели интерфейса Ц/А третьего уровня | DtoADefault | |||||
AtoD4 | Имя макромодели интерфейса А/Ц четвертого уровня | AtoDDefault | |||||
DtoA4 | Имя макромодели интерфейса Ц/А четвертого уровня | DtoADefault | |||||
TSWLH1 | Время переключения 01 для DtoA1 | 0 | с | ||||
TSWLH2 | Время переключения 01 для DtoA2 | 0 | с | ||||
TSWLH3 | Время переключения 01 для DtoA3 | 0 | с | ||||
TSWLH4 | Время переключения 01 для DtoA4 | 0 | с | ||||
TSWHL1 | Время переключения 10 для DtoA1 | 0 | с | ||||
TSWHL2 | Время переключения 10 для DtoA2 | 0 | с | ||||
TSWHL3 | Время переключения 10 для DtoA3 | 0 | с | ||||
TSWHL4 | Время переключения 10 для DtoA4 | 0 | с | ||||
TPWRT | Пороговое значение длительности импульса | Равно минимальной задержке | с | ||||
DIGPOWER | Имя макромодели источника питания | DIGIFPWR |
Входная и выходная емкости INLD, OUTLD принимаются во внимание при расчете времен задержки. Выходные сопротивления цифровых устройств задаются параметрами DRVH, DRVL модели вход/выход UIO (рис. 6.3, а). Выходное сопротивление компонента, находящегося в состоянии “1”, обозначается как DRVH, в состоянии “0” – DRVL. В программе PSpice выходные сопротивления компонентов принимают значения в диапазоне от DIGDRVF (Forcing strength) до DIGDRVZ (Z strength), который в логарифмическом масштабе разбивается на 64 уровня (максимальному сопротивлению DIGDRVZ присваивают код 0, а минимальному DIGDRVF – код 63). По умолчанию DIGDRVF=2 Ом, DIGDRVZ=20 кОм; их значения переназначаются по директиве .OPTIONS. В конфликтных ситуациях, когда к одному узлу подключаются вентили с разными выходными сопротивлениями, логический уровень узла устанавливается вентилем с минимальным выходным сопротивлением, код которого больше кодов остальных сопротивлений в заданное число раз. Это отношение кодов сопротивлений задается параметром DIGOVRDRV
директивы .OPTIONS, который по умолчанию равен 3. Когда имеется несколько вентилей с близкими выходными сопротивлениями и разными логическими уровнями, узлу присваивается неопределенное состояние X.
Времена переключения выходных каскадов цифровых ИС задаются параметрами TSWLHn, TSWHLn (трудности их определения по справочным данным заключаются в том, что обычно приводятся значения общего времени переключения всей ИС).
Макромодели интерфейсов составляются пользователями и включаются в библиотечный файл. Эти модели отражают характер входных/выходных сопротивлений цифровых компонентов с разной степенью подробности. Модели, имеющиеся в стандартной библиотеке интерфейсов программы PSpice, приведены ниже:
IO_LEVEL |
Определение |
0 |
Текущее значение параметра DIGIOLVL директивы .OPTIONS (по умолчанию равно 1) |
1 |
Основная (простейшая) модель, имеющая логические состояния 0, 1, X, R и F (AtoD1/DtoA1) |
2 |
Основная (простейшая) модель без промежуточного состояния X (AtoD2/DtoA2) |
3 |
Сложная модель с промежуточным состоянием X (AtoD3/DtoA3) |
4 |
Сложная модель без промежуточных состояний X, R и F (AtoD4/DtoA4) |
Сложные модели точнее имитируют нелинейности входных сопротивлений цифровых ИС, однако требуют больших вычислительных затрат.
Имена макромоделей интерфейсов указываются с помощью параметров AtoD1, DtoA1, ..., AtoD4, DtoA4. Выбор уровня модели интерфейса для каждого конкретного цифрового устройства производится с помощью параметра IO_LEVEL
(см. ниже).
Схемы замещения простейших интерфейсов первого уровня показаны на рис. 6.3. В текстовом виде они записываются следующим образом.
Макромодель стандартного ТТЛ-интерфейса А/Ц первого уровня имеет вид:
.subckt AtoD_STD A D DPWR DGND
+ params: CAPACITANCE=0
*
O0 A DGND DO74 DGTLNET=D IO_STD
C1 A DGND {CAPACITANCE=0.1pF}
.ends
*
.model DO74 doutput (
+ s0name="X" s0vlo=0.8 s0vhi=2.0
+ s1name="0" s1vlo=-1.5 s1vhi=0.8
+ s2name="R" s2vlo=0.8 s2vhi=1.4
+ s3name="R" s3vlo=1.3 s3vhi=2.0
+ s4name="X" s4vlo=0.8 s4vhi=2.0
+ s5name="1" s5vlo=2.0 s5vhi=7.0
+ s6name="F" s6vlo=1.3 s6vhi=2.0
+ s7name="F" s7vlo=0.8 s7vhi=1.4 )
*
.model IO_STD uio (drvh=96.4 drvl=104
+ AtoD1="AtoD_STD" AtoD2="AtoD_STD_NX"
+ AtoD3="AtoD_STD_E" AtoD4="AtoD_STD_NX_E"
+ DtoA1="DtoA_STD" DtoA2="DtoA_STD_NX"
+ DtoA3="DtoA_STD_E" DtoA4="DtoA_STD_NX_E"
+ tswhl1=1.373ns tswlh1=3.382ns
+ tswhl2=1.346ns tswlh2=3.424ns
+ tswhl3=1.511ns tswlh3=3.517ns
+ tswhl4=1.487ns tswlh4=3.564ns )
Макромодель стандартного ТТЛ-интерфейса Ц/А первого уровня имеет вид:
.subckt DtoA_STD D A DPWR DGND
+ params: DRVL=0 DRVH=0 CAPACITANCE=0
*
N1 A DGND DPWR DIN74 DGTLNET=D IO_STD
C1 A DGND {CAPACITANCE=0.1pF}
.ends
*
.model DIN74 dinput (
+ s0name="0" s0tsw=3.5ns s0rlo=7.13 s0rhi=389 ; 7ohm, 0.09v
+ s1name="1" s1tsw=5.5ns s1rlo=467 s1rhi=200 ; 140ohm, 3.5v
+ s2name="X" s2tsw=3.5ns s2rlo=42.9 s2rhi=116 ; 31.3ohm, 1.35v
+ s3name="R" s3tsw=3.5ns s3rlo=42.9 s3rhi=116 ; 31.3ohm, 1.35v
+ s4name="F" s4tsw=3.5ns s4rlo=42.9 s4rhi=116 ; 31.3ohm, 1.35v
+ s5name="Z" s5tsw=3.5ns s5rlo=200K s5rhi=200K )
Более сложная модель интерфейса А/ Ц первого уровня имеет схему замещения, показанную на рис. 6.4. Ее текстовое описание имеет вид:
.subckt AtoD_STD_E A D DPWR DGND
+ params: CAPACITANCE=0
*
O0 A DGND DO74 DGTLNET=D IO_STD
C1 A DGND {CAPACITANCE=0.1pF}
D0 DGND a D74CLMP
D1 1 2 D74
D2 2 DGND D74
R1 DPWR 3 4k
Q1 1 3 A 0 Q74; подложку соединить с DGND
.ends
.model D74 D (IS=1e-16 RS=25 CJO=2pf)
.model D74CLMP D (IS=1e-15 RS=2 CJO=2pf)
.model Q74 NPN (ISE=1e-16 ISC=4e-16 BF=49 BR=.03 CJE=1pf
+ CJC=.5pf CJS=3pf VJE=0.9v VJC=0.8v VJS=0.7v MIE=0.5
+ MJC=0.33 MJS=0.33 TF=0.2ns TR=10ns RB=50 RC=20)
Моделирование
Подготовка к моделированию и само моделирование проводятся под управлением пункта меню Analysis в несколько этапов.
1. Простановка позиционных обозначений. Перед моделированием схемы всем ее компонентам (резисторам, конденсаторам, диодам и т. п.) необходимо присвоить уникальные имена, так называемые позиционные обозначения (Reference Designator) по команде Tools/Annotate. На панели диалога команды (рис. 2.15) в пункте Function выбирается один из трех режимов:
Package and Assign Reference Designators – упаковка отдельных символов в физически существующие корпуса компонентов, которая заключается в назначении позиционных обозначений компонентов, простановке номеров секций и указании типов корпусов в соответствии с данными панели Set Values;
Assign Reference Designators Only
– назначение только позиционных обозначений компонентов без проведения их упаковки;
Рис. 2.15. Автоматическая простановка позиционных обозначений и упаковка схемы |
Undo Packaging – удаление всех атрибутов, проставленных в процессе обратной корректировки схемы по команде Tools/Back Annotate.
Заметим, что по команде Options/Auto-Naming
можно включить режим автоматической простановки позиционных обозначений компонентов при нанесении их символов на схему (нажать выключатель Enable Auto-Naming), задав их начальный номер Starting Designator.
В разделе Set Values for задаются параметры:
All Except User-Assigned – автоматическая простановка позиционных обозначений, имен секций и типов корпусов за исключением тех, что проставлены пользователем;
Only Unpackaged – простановка позиционных обозначений, имен секций и типов корпусов, которые еще не назначены;
All – простановка позиционных обозначений, имен секций и типов корпусов всем компонентам (с переопределением существующих).
2. Проверка схемы. По команде Analysis/Electrical Rule Check проверяется наличие в схеме неподсоединенных (плавающих) выводов компонентов, совпадающих позиционных обозначений и др. Полнота проверки тем больше, чем больше информации о типе компонентов и их выводов занесено в библиотеку символов.
При обнаружении ошибок на экран выводится информационное сообщение. Перечень ошибок просматривается по команде File/Current Errors.
Рис. 2.16. Панель выбора режима моделирования |
При выполнении некоторых видов анализа (например, при спектральном анализе, статистическом анализе по методу Монте-Карло, расчете уровня шума) необходимо указывать имена выходных переменных, в качестве которых могут быть потенциалы и разности потенциалов узлов и токи ветвей. При записи выходных переменных можно пользоваться всеми правилами программы PSpice, однако ссылки на имена узлов цепи (имена проводников) возможны, только если они обозначены на схеме по команде Edit/Label. Поэтому удобно указывать потенциалы выводов компонентов по формату
V(<полное имя вывода>)
Рис. 2.17. Установка параметров директив расчета частотных характеристик и уровня шума |
Обратим внимание, что по команде Setup
задаются не все возможные директивы программы PSpice. Остальные директивы (.LIB, .INC и др.) задаются с помощью атрибутов, присваиваемых на схеме специальным символам, каждой директиве – отдельный символ. Например, на рис. 1.1 помещен символ PARAMETERS директивы .PARAM, которая задает параметр LK и присваивает ему начальное значение 10mH.
4. Создание списка соединений. По команде Analysis/Create Netlist создаются список соединений схемы и задание на моделирование, которые заносятся в файлы с расширениями .net, .als и .cir.
При наличии ошибок в схеме или директивах моделирования выводится информационное сообщение, а список ошибок просматривается по команде File/Current Errors. Файл списка соединений и любые другие файлы просматриваются и редактируются по команде Analysis/Examine Netlist с помощью текстового редактора NOTEPAD.
5. Запуск программы моделирования PSpice.
Моделирование текущей схемы начинается после запуска команды Analysis/Simulate (или после нажатия клавиши F11 либо пиктограммы ). При этом автоматически выполняются команды Electrical Rule Check и Create Netlist, если они не были запущены ранее вручную. После завершения моделирования его результаты заносятся в текстовый файл .out, который просматривается по команде Analysis/Examine Output (или любым текстовым редактором).
6. Вызов программы построения графиков Probe.
Графики результатов моделирования просматриваются с помощью программы Probe, которая вызывается автоматически после завершения моделирования, если в меню команды Analysis/Probe Setup включена опция Auto Run Option:Automatically Run Probe After Simulation. Построение графиков в процессе моделирования выполняется при выборе опции Auto Run Option:Monitor Waveforms. Автономный вызов Probe выполняется командой Analysis/Run Probe или нажатием клавиши F12. В некоторых случаях, например при моделировании схемы большого размера или выполнении статистического моделирования, файл данных .dat приобретает очень большие размеры. Для его уменьшения рекомендуется включить опцию Data Collection:At Markers Only
команды Analysis/Probe Setup - тогда в этот файл заносятся данные только о переменных, отмеченных маркером.
Программу Probe можно вызвать в отдельном окне и одновременно просматривать графики результатов и принципиальную схему анализируемого устройства, как показано на рис. 1.6.В многооконном режиме, когда на экране одновременно (или поочередно) находятся окна графического редактора Schematics и программы Probe, удобно пользоваться маркерами (команды Markers). По этим командам специальными значками на схеме помечаются цепи или выводы компонентов, потенциалы или токи которых нужно вывести на экран программы Probe. Маркеры можно нанести на схему как до, так и после завершения моделирования. В последнем случае необходимо дополнительно выполнить команду Show All (вывести на экран графики всех отмеченных переменных) или Show Selected
(вывести на экран только графики выбранных переменных). Ввод маркеров завершается нажатием правой кнопки мыши. После этого выводится экран программы Probe с построенными графиками. Если окна Probe не видно, то нажатием клавиш Alt+Tab перелистывают открытые окна до появления нужного.
МОП-транзисторы
В программе PSpice полевые транзисторы с изолированным затвором (МОП-транзисторы, MOSFET) описываются шестью разными системами уравнений, выбор которых определяется параметром LEVEL, принимающим значения 1, 2, 3, 4, 5 и 6 [4, 7, 30, 33, 37, 43, 54, 59, 73, 76, 77, 82]. Модель первого уровня (LEVEL=1) используется в тех случаях, когда не предъявляются высокие требования к точности моделирования вольт-амперных характеристик транзистора, в частности при моделировании МОП-транзисторов с коротким или узким каналом. Модели второго (LEVEL=2) и третьего (LEVEL=3) уровней учитывают более тонкие физические эффекты. Параметры модели четвертого – шестого уровней (LEVEL=4–6) рассчитываются по справочным данным с помощью специальной программы идентификации [73]. Структура МОП-транзистора приведена на рис. 4.8. Все модели имеют одну и ту же эквивалентную схему, изображенную на рис. 4.9, а.
Рис. 4.8. Структура МОП-транзистора с каналом n-типа |
Рис. 4.9. Нелинейная (а) и линейная (б) схемы замещения МОП-транзистора с каналом n-типа |
Параметры модели МОП-транзистора уровней 1–4 приведены в табл. 4.5 (параметры моделей более редко использующихся уровней 5–6 даны в [59]).
Имя параметра | Уровень модели LEVEL | Параметр | Значение по умолчанию | Единица измерения | |||||
LEVEL | Индекс модели | 1 | |||||||
L | 1–4 | Длина канала | DEFL | м | |||||
W | 1–4 | Ширина канала | DEFW | м | |||||
LD | 1–3 | Длина области боковой диффузии | 0 | м | |||||
WD | 1–3 | Ширина области боковой диффузии | 0 | м | |||||
VTNOM | 1–3 | Пороговое напряжение при нулевом смещении подложки Vbs=0 | 1 | В | |||||
KP | 1–3 | Параметр удельной крутизны | 2·10 | А/В | |||||
GAMMA | 1–3 | Коэффициент влияния потенциала подложки на пороговое напряжение | вычисляется | ||||||
PHI | 1–3 | Поверхностный потенциал сильной инверсии | 0,6 | В | |||||
LAMBDA | 1, 2 | Параметр модуляции длины канала | 0 | 1/В | |||||
RD | 1–4 | Объемное сопротивление стока | 0 | Ом | |||||
RS | 1–4 | Объемное сопротивление истока | 0 | Ом | |||||
RG | 1–4 | Объемное сопротивление затвора | 0 | Ом | |||||
RB | 1–4 | Объемное сопротивление подложки | 0 | Ом | |||||
RDS | 1–4 | Сопротивление утечки сток–исток | Ом | ||||||
RSH | 1–4 | Удельное сопротивление диффузионных областей истока и стока | 0 | Ом/кв. | |||||
IS | 1–4 | Ток насыщения p–n-перехода сток-подложка (исток–подложка) | А/м | ||||||
JS | 1–4 | Плотность тока насыщения перехода сток (исток) –подложка | 0 | ||||||
JSSW | 1–4 | Удельная плотность тока насыщения (на длину периметра) | 0 | А/м | |||||
PB | 1–4 | Напряжение инверсии приповерхностного слоя подложки | 0,8 | В | |||||
PBSW | 1–4 | Напряжение инверсии боковой поверхности p–n-перехода | PB | В | |||||
N | 1-4 | Коэффициент неидеальности перехода подложка–сток | 1 | ||||||
CBD | 1–4 | Емкость донной части перехода сток-подложка при нулевом смещении | 0 | Ф | |||||
CBS | 1–4 | Емкость донной части перехода исток-подложка при нулевом смещении | 0 | Ф | |||||
CJ | 1–4 | Удельная емкость донной части p–n-перехода сток (исток) –подложка при нулевом смещении (на площадь перехода) | 0 | Ф/м | |||||
CJSW | 1–4 | Удельная емкость боковой поверхности перехода сток (исток) –подложка при нулевом смещении (на длину периметра) | 0 | Ф/м | |||||
MJ | 1-4 | Коэффициент, учитывающий плавность перехода подложка-сток (исток) | 0,5 | ||||||
MJSW | 1–4 | Коэффициент наклона боковой поверхности перехода подложка–сток (исток) | 0,3 | ||||||
FC | 1–4 | Коэффициент нелинейности барьерной емкости прямосмещенного перехода подложки | 0,5 | ||||||
CGSO | 1–4 | Удельная емкость перекрытия затвор–исток (за счет боковой диффузии) | 0 | Ф/м | |||||
CGDO | 1–4 | Удельная емкость перекрытия затвор–сток на длину канала (за счет боковой диффузии) | 0 | Ф/м | |||||
CGBO | 1–4 | Удельная емкость перекрытия затвор–подложка (за счет выхода затвора за пределы канала) | 0 | Ф/м | |||||
TT | 1–4 | Время переноса заряда через p–n-переход | 0 | с | |||||
NSUB | 1–3 | Уровень легирования подложки | нет | 1/см | |||||
NSS | 2,3 | Плотность медленных поверхностных состояний на границе кремний-подзатворный оксид | нет | 1/см | |||||
NFS | 2,3 | Плотность быстрых поверхностных состояний на границе кремний-подзатворный оксид | 0 | 1/см | |||||
TOX | 1–3 | Толщина оксида | вычисляется | м | |||||
TPG | 2,3 | Легирование затвора (+1 – примесью того же типа, каки для подложки; –1 – примесью противоположного типа; 0 – металл) | +1 | ||||||
XJ | 2,3 | Глубина металлургического перехода областей стока и истока | 0 | м | |||||
UO | 1–3 | Подвижность носителей тока в инверсном слое канала | 600 | см/В/с | |||||
UCRIT | 2 | Критическая напряженность вертикального поля, при которой подвижность носителей уменьшается в два раза | 10 | В/см | |||||
UEXP | 2 | Эмпирическая константа, определяющая подвижность носителей | 0 | ||||||
VMAX | 2,3 | Mаксимальная скорость дрейфа носителей | м/с | ||||||
NEFF | 2 | Эмпирический коэффициент коррекции концентрации примесей в канале | 1 | ||||||
XQC | 2,3 | Доля заряда канала, ассоциированного со стоком | 0 | ||||||
DELTA | 2,3 | Коэффициент влияния ширины канала на пороговое напряжение | 0 | ||||||
THETA | 3 | Kоэффициент модуляции подвижности носителей под влиянием вертикального поля | 0 | 1/В | |||||
ETA | 3 | Параметр влияния напряжения сток–исток на пороговое напряжение (статическая обратная связь) | 0 | ||||||
KAPPA | 3 | Параметр модуляции длины канала напряжением сток–исток | 0,2 | ||||||
KF | 1–4 | Коэффициент, определяющий спектральную плотность фликкер–шума | 0 | ||||||
AF | 1–4 | Показатель степени, определяющий зависимость спектральной плотности фликкер–шума от тока через переход | 1 | ||||||
T_MEASURED | 1–4 | Температура измерений | |||||||
T_ABS | 1–4 | Абсолютная температура | |||||||
T_REL_GLOBAL | 1–4 | Относительная температура | |||||||
T_REL_LOCAL | 1–4 | Разность между температурой транзистора и модели-прототипа |
По умолчанию, если параметр LEVEL не указан при описании модели, используется модель МОП-транзистора первого типа.
Параметры, характерные только для модели МОП-транзистора четвертого типа, приведены в табл. 4.6.
Таблица 4.6
Имя параметра |
Параметр |
Единица измерения |
DL |
Уменьшение эффективной длины канала |
|
DW |
Уменьшение эффективной ширины канала |
|
TOX |
Толщина оксида затвора |
|
VFB |
Напряжение плоских зон |
В |
PHI |
Контактная разность потенциалов инверсного слоя перехода |
В |
K1 |
Коэффициент влияния подложки |
|
K2 |
Коэффициент разделения заряда обедненной области между стоком и истоком |
|
ETA |
Коэффициент, отражающий зависимость порогового напряжения от смещения подложка–сток |
|
X2E |
Чувствительность уровня индуцированного слоя к смещению на подложке |
В |
X3E |
Чувствительность уровня индуцированного слоя к смещению на стоке при Vds=Vdd |
В |
MUZ |
Подвижность носителей при нулевом смещении |
см/В·с |
X2MZ |
Чувствительность подвижности носителей к смещению на подложке при Vds=0 |
см/В·с |
UO |
Коэффициент, отражающий изменение подвижности от напряженности вертикального поля |
В |
X2UO |
Чувствительность критической подвижности носителей к смещению на подложке |
В |
U1 |
Коэффициент, определяющий степень насыщения скорости носителей от напряжения на стоке |
/В |
X2U1 |
Чувствительность максимальной скорости носителей к напряжению смещения на подложке |
/В |
X3U1 |
Чувствительность максимальной скорости носителей к напряжению смещения на стоке при Vds=Vdd |
/В |
MUS |
Подвижность носителей при нулевом смещении на подложке и Vds=Vdd |
см/В·с |
X2MS |
Чувствительность подвижности носителей к смещению на подложке при Vds=0 |
см/В·с |
X3MS |
Чувствительность подвижности носителей к смещению на стоке при Vds=Vdd |
см/В·с |
NO |
Коэффициент наклона проходной характеристики в субпороговом режиме при нулевом смещении на подложке |
|
NB |
Чувствительность коэффициента наклона проходной характеристики в субпороговом режиме к смещению на подложке |
|
ND |
Чувствительность коэффициента наклона проходной характеристики в субпороговом режиме к смещению на стоке |
|
TEMP |
Температура, при которой измерены параметры транзистора |
С |
VDD |
Коэффициент влияния напряжения смещения |
|
XPART |
Флаг, определяющий распределение зарядов между стоком и истоком (при XPART=0 устанавливается соотношение зарядов сток-исток, равное 40/60, при XPART=1 – соотношение 0/100) |
|
WDF |
Ширина переходов стока и истока по умолчанию |
м |
DELL |
Уменьшение ширины переходов стока и истока по умолчанию |
м |
Здесь Vdd – напряжение, при котором проводятся измерения (обычно оно равно напряжению питания).
При включении МОП-транзистора в схему можно указать значения необязательных параметров (см. табл. 4.7).
Таблица 4.7
Обозначение |
Параметр |
Значение по умолчанию |
Размерность |
L |
Длина канала DEFL |
м |
|
W |
Ширина канала DEFW |
м |
|
AD |
Площадь диффузионной области стока DEFAD |
м |
|
AS |
Площадь диффузионной области истока DEFAS |
м |
|
PD |
Периметр диффузионной области стока |
0 |
м |
PS |
Периметр диффузионной области истока |
0 |
м |
NRD |
Удельное относительное сопротивление стока |
1 |
|
NRS |
Удельное относительное сопротивление истока |
1 |
|
NRG |
Удельное относительное сопротивление затвора |
0 |
|
NRB |
Удельное относительное сопротивление подложки |
0 |
|
M |
Масштабный коэффициент |
1 |
|
В последующем описании моделей МОП-транзисторов используются следующие физические константы:
EPS0=8,86·10 Ф/м – абсолютная диэлектрическая проницаемость;
EPSox=3,9·EPS0 – диэлектрическая проницаемость оксида;
EPSsil=11,7·EPS0 – диэлектрическая проницаемость кремния;
q=1,60·10 K – заряд электрона;
k=1,38·10 Дж/ – постоянная Больцмана;
Vt=kT/q – температурный потенциал p–n-перехода.
Приведем далее соотношения, общие для всех моделей МОП-транзистора:
крутизна управления по затвору KP=UO·Cox;
крутизна проходной характеристики МОП-транзистора Beta=0,5·KP·W/L;
удельная емкость окисла Cox=EPSox/TOX;
коэффициент влияния потенциала подложки на пороговое напряжение
поверхностный потенциал
PHI=2Vt·ln(Na/Ni),
где Na=10·NSS – уровень легирования подложки, Ni
– собственная концентрация носителей, определяемая уравнением
Ni=1,5·10·T·exp(-Eg/Vt) (при T=300K Ni=1,45·10 м);
Fp=PHI/2 – нормированный уровень Ферми (электростатический потенциал, при комнатной температуре и концентрации примесей порядка 10 Fp~0,3 В);
VTNOM=ViGAMMA – пороговое напряжение при нулевом смещении Vbs=0 (знак "+" соответствует подложке n-типа, а знак "–" подложке p-типа),
Vbi=Ws-10·NSS·q/Cox,
Ws=Wg-(Fp+3,25+0,5·EG),
где Vbi, Ws – ширина запрещенных зон подложки и неметаллического оксида,
Eg=1,16-0,000702·T/(T+1108) – нормированная ширина запрещенной зоны;
– нормированная глубина обедненного слоя (индуцированного слоя);
– удельная емкость p–n-перехода;
Leff=L-2·LD – эффективная длина канала;
Weff=W-2·WD – эффективная ширина канала;
CGBO=Cox·Leff – удельная емкость перекрытия затвор–подложка;
CGDO=Cox·Ldd – удельная емкость перекрытия затвор–сток;
CGSO=Cox·Lds – удельная емкость перекрытия затвор–исток, где Ldd и Lds – длины боковых поверхностей диффузии в областях стока и истока; очевидно, что для большинства транзисторов CGDO=CGSO;
CJSW=CJ·LD – удельная емкость боковой поверхности перехода;
CBS=CJ·AS – емкость перехода исток-подложка при нулевом смещении;
CBD=CJ·AD – емкость перехода сток-подложка при нулевом смещении.
Пользователь может задать значения CBS и CBD либо AS и AD. Если эти параметры не заданы, то они приравниваются нулю.
Параметры электрических схем замещения KP, GAMMA, PHI и пр. рассчитываются по приведенным выше формулам через физические параметры NSUB, TOX и др., если в описании модели МОП-транзистора с помощью директивы .MODEL отсутствует какой-либо параметр.
Статический режим МОП-транзистора. Модели всех типов характеризуются нулевым током затвора Ig=0 и током подложки
Ib = Ibs + Ibd,
где Ibs и Ibd – токи переходов подложка-исток и подложка–сток,
Ibs = Iss·[exp(Vbs/(N·Vt))-1],
Ibd = Ids·[exp(Vbd/(N·Vt))-1].
При задании нулевого значения одного из параметров JS, AS или AD принимают Iss=Ids=IS, в противном случае Iss=AS·JS+PS·JSSW, Ids=AD·JS+PD·JSSW. Ток стока Id=Ibd–Idrain, ток истока Is=Ibs+Idrain.
Ток Idrain определяется следующими соотношениями.
1. Для модели LEVEL=1 в нормальном режиме (Vds0) используются общепринятые уравнения Шичмена–Ходжеса [33, 82]
где Beta=0,5·KP·W/L – крутизна проходной характеристики МОП-транзистора;
– пороговое напряжение,
Пороговое напряжение положительно (отрицательно) в режиме обогащения и отрицательно (положительно) в режиме обеднения для транзистора с n-каналом (p-каналом).
Для области обратного смещения (Vds < 0)
где Vto = VTNOM+GAMMA·.
Параметр LAMBDA характеризует наклон выходной характеристики транзистора в области насыщения. В соответствии с рис. 4.10 он определяется из уравнения
Рис. 4.10. К определению параметра LAMBDA |
где Vd1=Vto+1 В, Vd2=Vto+3 В при Vgs=Vto+1 В.
Крутизна МОП-транзистора KP определяется в основном подвижностью носителей, толщиной и материалом подзатворного диэлектрика. Поскольку в модели первого уровня параметры технологического процесса игнорируются, задание значений TOX и UO не изменяет значение KP. По умолчанию KP=20 мкА/В, ее реальное значение 60 мкА/В при TOX=400 A, материале оксида SiO и подвижности электронов в приповерхностной области 700 см/В/с.
Параметры VTO, GAMMA и KP определяются из экспериментальных данных (рис. 4.11) по формулам
Аналитическая зависимость GAMMA от параметров материала приведена выше.
Рис. 4.11. К определению параметров VTNOM, GAMMA и KP |
Коэффициент учитывает соотношения геометрических размеров канала и металлургической глубины перехода
Влияние ширины канала учитывается с помощью коэффициента
ETA=1+0,25DELTA·(EPSsil/EPSox) ·TOX/W.
Температурная зависимость напряжения порога учитывается с помощью коэффициента
XN=1+q·10·NFS·Cox + 0,5·
+ 0,25·[(PHI+Vds-Vbs)/
+ (PHI-Vbs)/
Выражения для тока стока Idrain здесь не приводятся из-за их сложности [33, 82].
3. Для модели LEVEL=3 используются полуэмпирические уравнения статических характеристик МОП-транзистора. Пороговое напряжение полагается равным
Vto = VTNOM-·Vds+GAMMA·Fs· +Fn·(PHI-Vbs)+Vt·XN,
где = ETA·(8,15·10)/Cox/(Leff) - коэффициент статической обратной связи,
Fs – коэффициент, учитывающий влияние геометрии прибора на укорочение канала;
Fn=0,5·DELTA··EPSsil/Cox/W – коэффициент, учитывающий влияние ширины канала на пороговое напряжение;
XN=1+0,5·(GAMMA·Fs·+Fn·(PHI-Vbs)/(PHI-Vbs)+
+ q·10·NFS/Cox.
Эффективная подвижность носителей с учетом напряженности поля в канале равна
,
где
Напряжение насыщения определяется по формуле
VDsat = ,
где параметр =(Vgs-Vto)/(1+Fb) учитывает увеличение напряженности поля в канале; параметр учитывает ограничение скорости носителей в канале,
Fb = Fn+0,5·GAMMA·Fs/ .
Эффективная длина канала определяется соотношением
Leff =
где
A=KAPPA·(Vds-VDsat) ·
Ток Idrain определяется из выражений
3. Для уровня LEVEL=4 используется модель BSIM (Berkeley Short-channel IGFET Model) – короткоканальная модель полевого транзистора с изолированным затвором, разработанная в Калифорнийском университете (г. Беркли). По сравнению с моделью первого уровня учитываются следующие эффекты [76]:
– зависимость подвижности носителей от вертикального поля;
– насыщение скорости носителей;
– зависимость порогового напряжения от напряжения стока;
– распределение заряда обедненной области между стоком и истоком;
– неоднородное легирование для транзисторов, изготовленных с применением ионной имплантации%
– модуляция длины канала;
– подпороговая проводимость;
– зависимость всех параметров от геометрии транзистора.
В модели BSIM ток стока представляется суммой токов сильной и слабой инверсии (подпороговый режим):
Idrain = Idrain + Idrain.
Это позволяет обеспечить непрерывность первых производных и за счет этого значительно улучшить сходимость расчета статического режима по сравнению с моделями 2- и 3-го уровня.
В режиме сильной инверсии пороговое напряжение определяется выражением
Vto = VFB + PHI + K1 - K2·(PHI-Vbs) - ·Vds.
Параметр K1 сходен с параметром GAMMA в модели первого уровня. Параметры К1, К2 совместно моделируют неоднородность легирования. Параметр ETA частично моделирует уменьшение длины канала и порогового напряжения из-за статической индукции.
Ток стока в режиме сильной инверсии определяется следующими соотношениями.
В режиме отсечки (VgsVto) Idrain=0.
В линейной области (Vgs>Vto и 0<Vds<VDsat)
где
Непривычный вид формулы для параметра a
связан с тем, что применена дробно-полиномиальная аппроксимация хорошо известной трансцендентной зависимости a=2/3·[(Vds+PHI-Vbs)-(PHI-Vbs)].
В режиме насыщения (Vgs>Vto и VdsVDsat)
где
- скорость
носителей,
VDsat = (Vgs - Vto)/(a) – напряжение насыщения.
Составляющая тока стока за счет слабой инверсии равна
где
Показатель степени 1,8 выбран экспериментально для наилучшей совместимости с составляющей тока сильной инверсии. Параметры подпорогового режима N0, NB и ND определяют коэффициент наклона подпороговой характеристики
n = N0 + NB·Vbs + ND·Vds.
Параметры VFB, PHI, K1 и K2 считаются не зависимыми от режима по постоянному току. Остальные параметры рассчитываются по формулам
U= X2MZ + X2U07Vbs,
U= U1 + X2U1·Vbs + X3U1·(Vds - Vdd),
= ETA + X2E·Vbs + X3E· (Vds -Vdd),
где Vdd – напряжение питания, при котором измерялись параметры транзистора.
Зависимость параметра от напряжений Vds и Vbs аппроксимируется квадратичным полиномом, коэффициенты которого определяются на основании расчета m0 при Vds=0 и Vds=Vdd по формулам:
= MUZ + X2MZ·Vbs,
= MUS + X3MS·Vbs.
Динамические свойства МОП-транзистора. Они учтены включением в модель емкости обедненного слоя подложка– исток Cbs и емкости обедненного слоя подложка– сток Cbd. Эти емкости складываются из емкости данной поверхности и боковой поверхности переходов. Если параметры CBS и CBD не заданы (по умолчанию они полагаются равными нулю), то эти емкости рассчитываются по формулам
Cbs = AS·CJ·Cbsj+PS·CJSW·Cbss+TT·Gbs;
Cbd = AD·CJ·Cbdj+PD·CJSW·Cbds+TT·Gds.
В противном случае (т.е. при заданных абсолютных значениях CBS и CBD)
Cbs = CBS·Cbsj+PS·CJSW·Cbss+TT·Gbs;
Cbd = CBD·Cbdj+PD·CJSW·Cbds+TT·Gds,
где Gbs=dIbs/dVbs, Gds=dIbd/dVbd – дифференциальные проводимости в окрестности рабочей точки.
Скалярные множители, отражающие зависимость барьерных емкостей от напряжений смещения, рассчитываются следующим образом:
при VbsFC·PB
Cbsj = (1-Vbs/PB);
Cbss = (1-Vbs/PBSW) ;
при Vbs>FC·PB
Cbsj = (1-FC) ·[1-FC·(1+MJ)+MJ·Vbs/PB];
Cbss = (1-FC)·[1-FC·(1+MJSW)+MJSW·Vbs/PBSW];
при VFC·PB
Cbdj = (1-Vbd/PB);
Cbds = (1-Vbd/PBSW);
при Vbd>FC·PB
Cbdj = (1-FC)·[1-FC·(1+MJ)+MJ·Vbd/PB];
Cbds = (1-FC)·[1-FC·(1+MJSW)+MJSW·Vbd/PBSW].
Емкости затвор– исток, затвор– сток и затвор– подложка рассчитываются по формулам Cgs=CGSO·W, Cgd=CGDO·W, Cbd=CGBO·L.
Температурные зависимости параметров элементов эквивалентной схемы МОП-транзистора учитываются с помощью следующих выражений:
IS(T)=IS·exp{[EG(Tnom) ·T/Tnom-EG(T)]/Vt};
JS(T)=JS·exp{[EG(Tnom) ·T/Tnom-EG(T)]/Vt};
JSSW(T)=JSSW·exp{[EG(Tnom) ·T/Tnom-EG(T)]/Vt};
PB(T)=PB·T/Tnom-3Vt·ln(T/Tnom)-EG(Tnom) ·T/Tnom+EG(T);
PBSW(T)=PBSW·T/Tnom-3Vt·ln(T/Tnom)-EG·T/Tnom+EG(T);
PHI(T)=PHI·T/Tnom-3Vt·ln(T/Tnom)-EG(Tnom) ·T/Tnom+EG(T);
EG(T) = 1,16-0,000702·T/(T+1108);
CBD(T)=CBD{1+MJ [0,0004 (T-Tnom)+1-PB(T)/PB]};
CBS(T)=CBS{1+MJ [0,0004(T-Tnom)+1-PB(T)/PB]};
CJ(T)=CJ{1+MJ [0,0004 (T-Tnom)+1-PB(T)/PB]};
CJSW(T)=CJSW{1+MJSW [0,0004 (T-Tnom)+1-PB(T)/PB]};
KP(T)=KP(T/Tnom); UO(T)=UO·(T/Tnom);
KF(T)=KF·PB(T)/PB; AF(T)=AF·PB(T)/PB,
где Tnom – номинальная температура, при которой измерены параметры транзистора; T – текущая температура.
Линейная схема замещения МОП-транзистора. На рис. 4.9, б она приведена с источниками внутренних шумов. Тепловые шумы Iш, Iш, Iш, Iш, создаваемые резисторами RS, RG, RB
и RD, имеют спектральные плотности S=4kT/RS, S=4kT/RG, S=4kT/RB, S=4kT/RD.
Источник тока Iшd, характеризующий дробовой и фликкер-шум, имеет спектральную плотность
S = 8kT·Gm/3 + KF·(Idrain)/(f·Kchan),
где Gm = dIdrain/dVgs
– дифференциальная проводимость в рабочей точке по постоянному току; Kchan=(Leff)·EPSsil/TOX.
В качестве примера приведем описание модели МОП-транзистора IRF140, используя модель третьего типа
.model IRF140 NMOS (LEVEL=3 GAMMA=0 DELTA=0 ETA=0
+ THETA=0 KAPPA=0 VMAX=0 XJ=0 TOX=100n UO=600
+ PHI=.6 RS=46.07m KP=20.83u W=1.1 L=2u VTO=3.691
+ RD=8.065m RDS=400K CBD=2.329n PB=.8 MJ=.5 FC=.5
+ CGSO=2.208n CGDO=773.2p RG=1.927 IS=12.11f)
Обратим внимание, что при включении этого МОП-транзистора в описание схемы на входном языке программы PSpice (см. п. 3.2.6) нельзя указывать значения параметров L, W, AD, AS, PD, PS, NRD и NRS, так как часть из них уже приведена по директиве .MODEL, а для остальных использованы значения по умолчанию.
Параметры модели LEVEL=1 типичного КМОП-транзистора с кремниевым затвором при длине канала 3 мкм приведены в табл. 4.8.
Таблица 4.8
Параметр |
Обозначение |
n-канал |
p-канал |
Уровень легирования, Атом/см |
Na |
10 |
10 |
Толщина оксида, мкм |
TOX |
0,04 |
0,04 |
Работа выхода материал-кремний, В |
Fms |
-0,6 |
-0,1 |
Подвижность в канале, см/В/с |
|
700 |
300 |
Топологическая длина канала, мкм |
L |
3 |
3 |
Глубина переходов стока и истока, мкм |
XJ |
0,6 |
0,6 |
Поддиффузия стока и истока, мкм |
LD |
0,15 |
0,15 |
Удельная емкость перекрытия на единицу ширины, пФ/мкм |
Cox |
0,35·10 |
0,35·10 |
Подгонка порогов: |
|
||
тип примеси |
Фосфор |
Фосфор |
|
эффективная глубина легирования, мкм |
Xi |
0,3 |
0,3 |
эффективная поверхностная концентрация, Атом/см |
Nsi |
2·10 |
0,9·10 |
Пороговое напряжение, В |
Vto |
0,7 |
-0,7 |
Степень легирования поликремнияя, Атом/см |
Nd |
10 |
10 |
Удельное сопротивление поликремния, Ом/кв. |
NRG |
20 |
20 |
Емкости сток–подложка, исток–подложка при нулевом смещении, пФ/мкм |
CJ |
8·10 |
2·10 |
Показатель степени |
MJ |
0,5 |
0,5 |
Показатель степени |
MJSW |
0,5 |
0,5 |
Удельная емкость исток-периферия, сток–периферия при нулевом смещении, пФ/мкм |
CJSW |
5·10 |
1,5·10 |
Плотность поверхностных состояний, Атом/см |
Qss/q |
10 |
10 |
где Qb – заряд обедненного слоя подложки.
В заключение сравним модели МОП-транзистора. На практике чаще всего используется модель первого уровня LEVEL=1. Она применяется в грубых расчетах, когда не требуется высокая точность. Отметим ее основные достоинства и недостатки:
– наименьшее время вычислений из всех моделей благодаря простоте уравнений;
– не учитывается зависимость подвижности носителей от электрического поля;
– не рассматривается подпороговый режим;
– не учитывается зависимость порогового напряжения от параметров L, W и Vds,;
– все емкости рассчитываются упрощенно,
– не учитывается неоднородность легирования.
Модель LEVEL= 2 основана на более точных теоретических построениях, однако ряд ее параметров трудно оценить по экспериментальным данным. При этом модель достаточно сложна, требует больших затрат на моделирование и возникают проблемы сходимости метода Ньютона–Рафсона при расчете режима по постоянному току.
Полуэмпирическая модель LEVEL=3 требует меньших вычислительных затрат и ее рекомендуется использовать для практических расчетов мощных вертикальных МОП-транзисторов с коротким каналом. Ее недостаток состоит в сложности оценки параметров математической модели по экспериментальным данным (но все равно это проще, чем для модели LEVEL=2).
Модель LEVEL=4 (BSIM1) основана на физике работы транзисторов с малыми размерами и рассчитана на получение параметров моделей изготовленных образцов с помощью специальной программы, управляющей работой тестера полупроводниковых приборов.
Модели LEVEL=5 и 6 (BSIM3) более точно описывают субмикронные МОП-транзисторы и непрерывно модифицируются. Из них модель LEVEL=6 предпочтительнее [59].