Система схемотехнического моделирования и проектирования Design Center

         

Директивы модели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.  Правила назначения задержек
На рис. 6.17 имеются четыре буфера, включенные между узлами IN1–OUT1, ..., IN4–OUT4, и три дополнительных узла REF1, REF2, REF3, состояния которых влияют на значения задержек, определяемых с помощью трех правил.  Причем узлы REF1 и REF2 влияют на расчет задержек по Правилу 2, а узел REF3 – по Правилу 1 и Правилу 3.  Из рис. 6.17 следует также, что задержки сигналов OUT2 и OUT3 вычисляются по одному и тому же правилу. Перейдем к описанию составления правил определения задержек.

Секция 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. Управление задержками с помощью узлов разрешения
Структура управления задержками в данном примере показана на рис. 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, он указывает, от какого фронта импульса (0
1 или 1
0) отсчитывается время установки/удержания.

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

-

Заметим, что задний фронт не может в шестнадцатеричной системе обозначаться как 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

Для ускорения работы с программой Probe ряд наиболее употребительных команд помимо пиктограмм вызывается с помощью так называемых “горячих” клавиш  – функциональных клавиш и комбинаций клавиш (см. табл. 7.3).

Таблица 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. Панель выбора секции данных
В файл данных помещаются сообщения об ошибках, выявленных при моделировании.  Программа Probe выводит сообщение о их количестве (рис. 7.6) и предлагает просмотреть их на экране (выбор кнопки OK) или пропустить их (Cancel).  Текст сообщений об ошибках (рис. 7.7) содержит номер секции (Section), значение момента времени (Time), тип сообщения (Messege-Type) и позиционное обозначение компонента (Device). В строке Minimum Severity выбирается класс просматриваемых сообщений об ошибках (табл. 7.5). В графе Sort by выбирается принцип сортировки сообщений: Section – по секциям, Time –  по моментам времени, Type – по типам, Device – по устройствам. Нажатие кнопки Plot открывает окно Probe с фрагментом временной диаграммы, содержащим выбранную ошибку.



Рис. 7.6. Диалоговая панель сообщения об ошибках


Рис. 7.7. Сообщения об ошибках моделирования

Таблица 7.5

Тип сообщения

Текст сообщения

Диагностика ошибки

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. Окно выбора переменных

Переменные помечаются курсором, и их имена переносятся в командную строку Trace Command. Так можно выбрать несколько переменных и отредактировать образованную строку для записи математических выражений. Графики строятся после нажатия кнопки OK.

На экран выводится координатная сетка графика, по горизонтальной оси которого откладывается независимая переменная, соответствующая выбранному режиму, например 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. Обозначения логических состояний
В программе Probe выводятся временные диаграммы логических состояний отдельных цифровых узлов или шин, объединяющих не более 32 цифровых сигналов. На временной диаграмме одной переменной двойная линия соответствует неопределенному состоянию X, тройная – состоянию высокого импеданса Z, нарастающие и спадающие фронты обозначают состояния R и F cоответственно (рис. 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

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





Рис. 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. Задание имени файла целевой функции
По умолчанию Probe ищет целевые функции и макрокоманды в файле msim.prb. Назначение другого файла выполняется в Schematics в меню Options Editor по команде Configuration/App Settings (рис. 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. Задание расчета преобразования Фурье
6. Преобразование Фурье. В меню Plot имеется команда X Axis Settings, на панели которой имеется опция вычисления преобразования Фурье Processing Options/Fourier (активизируется также щелчком по пиктограмме
, рис. 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) кривые намагничивания
Для данной напряженности магнитного поля H

безгистерезисная намагниченность 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) воздушного зазора
Частотные свойства магнитных материалов. В модели уровня LEVEL= 1 параметр GAMMA представляет собой граничную частоту магнитного материала. После расчета кривой намагниченности M(H) в статическом режиме мгновенные значения напряженности M(t)

определяются из дифференциального уравнения:

                                                                (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 (б)
Для моделирования безгистерезисной кривой составляют задание на моделирование рассматриваемого магнитного сердечника с помощью программы PSpice при K=0 и C=0. Параметры A и ALPHA подбирают так, чтобы обеспечить хорошее совпадение результатов моделирования с экспериментальными данными. Влияние параметров A и ALPHA на ее форму приведен на рис. 4.14. Их выбор рекомендуется производить в следующем порядке. Сначала из соотношения (4) один из этих параметров выражается через другой параметр и найденные значения MS и tg
. После этого другой параметр подбирается из условия совпадения расчетных и экспериментальных безгистерезисных кривых при средних значениях напряженности поля H.

2. Далее экспериментально измеряют или берут из справочных данных начальную кривую намагничивания и петлю гистерезиса и повторяют моделирование при K и C, не равных нулю.

Сначала подбором константы C получают требуемое значение начальной магнитной проницаемости



При этом учитывают, что параметр С равен отношению магнитных проницаемостей
 для начальной и безгистерезисной кривых (рис. 4.12): C =
. График магнитной проницаемости
(H) строится с помощью программы Probe, входящей в состав пакета PSpice, путем вычисления производной dB/dH.



Рис. 4.15. Зависимость начальной кривой намагничивания от параметра K
Затем подбирают константу K. Зависимость формы начальной кривой намагничивания от K показана на рис. 4.15.


Значение 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) в нормальном режиме (Vds
0) описывается соотношениями:



В модели Рэйтеона (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

Время переключения 0
1 для DtoA1

0

с

TSWLH2

Время переключения 0
1 для DtoA2

0

с

TSWLH3

Время переключения 0
1 для DtoA3

0

с

TSWLH4

Время переключения 0
1 для DtoA4

0

с

TSWHL1

Время переключения 1
0 для DtoA1

0

с

TSWHL2

Время переключения 1
0 для DtoA2

0

с

TSWHL3

Время переключения 1
0 для DtoA3

0

с

TSWHL4

Время переключения 1
0 для 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.  Панель выбора режима моделирования

3. Задание директив моделирования. Директивы моделирования задаются по команде Analysis/Setup или выбором пиктограммы
 (рис. 2.16).  В раскрывшемся меню выбирают нужный вид анализа (помечая его крестиком в графе Enabled) и щелчком мыши по панели с именем вида анализа раскрывают меню задания параметров моделирования. Полностью перечень параметров всех директив анализа приведен  в разд. 3.3. Здесь же в качестве примера на рис. 2.17 изображена панель задания параметров директив расчета частотных характеристик и уровня шума AC Sweep.

При выполнении некоторых видов анализа (например, при спектральном анализе, статистическом анализе по методу Монте-Карло, расчете уровня шума) необходимо указывать имена выходных переменных, в качестве которых могут быть потенциалы и разности потенциалов узлов и токи ветвей. При записи выходных переменных можно пользоваться всеми правилами программы PSpice, однако ссылки на имена узлов цепи (имена проводников) возможны, только если они обозначены на схеме по команде Edit/Label. Поэтому удобно указывать потенциалы выводов компонентов по формату

V(<полное имя вывода>)





Рис. 2.17. Установка параметров директив расчета частотных характеристик и уровня шума

Полное имя вывода состоит из имени компонента и отделенного от него двоеточием имени вывода, например V(R2:1), V(Q3:B). Разность потенциалов выводов указывается по формату V(A,B), где A и B –  имена выводов.

Обратим внимание, что по команде 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

 

Сведения, общие для первых трех моделей МОП-транзистора. Часть параметров модели МОП-транзистора задается на входном языке программы PSpice - это параметры L, W, AD, AS, PD, PS, NRD, NRS, NRG, NRB и M (см. п. 3.2.6). При этом параметрам L, W, AD и AS устанавливаются значения по умолчанию с помощью директивы .OPTIONS. Очень удобен параметр M – в библиотеку моделей достаточно для каждой технологии занести параметры модели МОП-транзистора с длиной канала 1 мкм и затем учитывать изменение длины канала выбором величины M. Объемные сопротивления RD, RS, RG и RB задаются в явном виде либо вычисляются умножением удельного сопротивления RSH на NRD, NRS, NRG и NRB: RD=RSH·NRD, RS=RSH·NRS, RG=RSH·NRG, RB=RSH·NRB.

В последующем описании моделей МОП-транзисторов используются следующие физические константы:

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=Vi
GAMMA
 – пороговое напряжение при нулевом смещении 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 в нормальном режиме (Vds
0) используются общепринятые уравнения Шичмена–Ходжеса [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
2. Для модели LEVEL=2 пороговое напряжение рассчитывается по более точной формуле Мейера





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





Влияние ширины канала учитывается с помощью коэффициента

ETA=1+0,25
DELTA·(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 частично моделирует уменьшение длины канала и порогового напряжения из-за статической индукции.

Ток стока в режиме сильной инверсии определяется  следующими соотношениями.

В режиме отсечки (Vgs
Vto) Idrain
=0.

В линейной области (Vgs>Vto и 0<Vds<VDsat)



где



Непривычный вид формулы для параметра a

связан с тем, что применена дробно-полиномиальная аппроксимация хорошо известной трансцендентной зависимости a=2/3·[(Vds+PHI-Vbs)
-(PHI-Vbs)
].

В режиме насыщения (Vgs>Vto и Vds
VDsat)



где

 - скорость

носителей,

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 –  дифференциальные проводимости в окрестности рабочей точки.

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

при Vbs
FC·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];

при V
FC·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].