Инженерная графика в системе OrCAD

         

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



Таблица 5.2. Сообщения об ошибках моделирования



Сообщение
Класс
Причина
Timing Violations (Нарушение временных соотношений)
SETUP
WARNING
Недостаточное время установки
HOLD
WARNING
Недостаточное время удерживания
RELEASE
WARNING
Недостаточное время нахождения сигнала в неактивном состоянии (обычно необходимого для выполнения контроля типа CLEAR)
WIDTH
WARNING
Недостаточна длительность импульса сигнала
FREQUENCY
WARNING
Частота переключения сигнала находится вне допустимых пределов
GENERAL
INFO
Обнаружение ошибки устройством контроля, заданного о секции GENERAL, примитива CONSTRAINT с помощью булевских выражений
Сообщение
Класс
Причина

Ha
zards (Гонки сигналов)
AMBIGUITY CONVERGENCE
WARNING
Временная неопределенность, связанная с одновременным поступлением на один вход импульсов со спадающим и нарастающим фронтами
CUMULATIVE AMBIGUITY
WARNING
Неопределенности уровней сигналов, связанные с суммированием частично перекрывающихся фронтов импульсов
SUPRESSED GLITCH
WARNING
Длительность импульса входного сигнала меньше минимального значения времени задержки переключения, игнорируемого программой моделирования
NET-STATE CONFLICT
WARNING
При подаче на один вход одновременно нескольких сигналов различного уровня программа PSpice заменяет его неопределенным сигналом X
ZERO-DELAY-OSCILLATION
FATAL
Если логический уровень выходного узла изменяется более 50 раз за единичный временной дискрет, то узел считается осциллирующим и моделирование прекращается
DIGITAL INPUT VOLTAGE
SERIOUSE
Предупреждающее сообщение о том, что входной сигнал находится вне допустимого диапазона напряжений. Моделирование продолжается при замене входного напряжения граничным значением
PERSISTENT HAZARD
SERIOUSE
Появление гонок сигналов на внешних портах

2. Построение графиков. После выбора команды Trace>Add Trace открывается окно выбора переменных (рис. 5.6). Типы переменных, перечень которых приведен в окне, определяются положением выключателей:

  • Analog — аналоговые переменные;
  • Digital — цифровые переменные;
  • Voltages — напряжения;
  • Currents — токи;
  • Noise (V 2 /Hz) — спектральная плотность напряжения выходного шума;
  • Alias Names — псевдонимы;
  • Subcircuit Nodes — внутренние узлы макромоделей (только напряжения). Переменные помечаются курсором, и их имена переносятся в командную строку Trace Expression. В расположенном справа окне Functions or Macros можно выбрать математические функции и макросы. Так можно выбрать несколько переменных и отредактировать образованную строку для записи математических выражений. Графики строятся после нажатия кнопки ОК.

На экран выводится координатная сетка графика, по горизонтальной оси которого откладывается независимая переменная, соответствующая выбранному режиму, например Time (эта переменная изменяется в последующем по желанию пользователя). На экране может располагаться несколько окон, в каждом из которых строится несколько графиков. Активное окно (в котором в данный момент строятся графики) помечается слева символами «SEL»». В каждом окне может быть от 1 до 3 осей У с разными масштабами. Укажем на особенности построения графиков аналоговых и цифровых переменных.

Аналоговые переменные

На одном графике можно поместить несколько кривых, которые на цветном мониторе выделяются цветом, а при выводе на черно-белый монитор, принтер или графопостроитель — различными значками. Формат переменных такой же, как в программе PSpice, за небольшими исключениями:

1) не допускается выводить падение напряжения на компонентах в форме V(<имя>) или Vxy(<uмя>), необходимо указывать имена (номера) узлов, например V(5) или V(21,3). Однако по-прежнему допустима форма Ух(<имя>), например VE(Q1) — потенциал эмиттера транзистора Q1; V1 (R5) — потенциал вывода 1 резистора R5; V(C5:2) — потенциал вывода 2 конденсатора С5;

2) по формату Е(Кххх) выводится магнитная индукция сердечника трансформатора (в гауссах) и по формату Н(Кххх) — напряженность магнитного поля (в эрстедах), где Кххх — имя магнитного сердечника;

3) при выводе спектральной плотности напряжения выходного шума вместо имени переменной ONOISE следует указать V(ONOISE), аналогично при выводе cпектральной плотности напряжения входного шума вместо INOISE указывается V(INOISE), а при выводе спектральной плотности тока входного шума I(INOISE);

4) в дополнение к напряжениям и токам доступны варьируемые переменные. В режиме DC это имя варьируемого источника напряжения или тока. В режиме АС — частота, имеющая имя «Frequency». В режиме Transient — время «Time».

В строке Trace Expression можно указать имя одной или нескольких переменных или выражений. При вводе имени только одной переменной на оси Y автоматически проставляются единицы измерений в соответствии с типом переменной. Например, в режиме АС при построении графика модуля напряжения V(l) ось Y получит размерность в вольтах, фазы этого напряжения VP(1) — в градусах, а группового времени запаздывания VG(l) — в секундах.

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

+, -, *, / — арифметические операции;

ABS(x) — | х|, абсолютное значение х;

SGN(x) — знак числа х (+1 при х > 0 , 0 при х = 0 и -1 при х < 0);

SQRT(x) — V*, корень квадратный из х;

EXPU) — ехр(x), экспонента числа х;

LOG(x) — ln(x), натуральный логарифм х;

LOG10(x) — log(x), десятичный логарифм х;

M(x) — модуль комплексной переменной х;

Р(х) — фаза комплексной переменной х (в градусах);

R(x) — действительная часть комплексной переменной х;

IMG(x) — мнимая часть комплексной переменной х;

G(x) — групповое время запаздывания комплексной переменной х (в секундах);

PWR(x,y) — | x| y степенная функция;

SIN(x) — sin(x), синус х (х в радианах);

COS(x) — cos(x), косинус х (х в радианах);

TAN(x) — tg(x), тангенс х (х в радианах);

ATAN(x), ARCTAN(x) — acrtg(x), арктангенс х (х в радианах);

d(y) — производная от переменной у по переменной, откладываемой по оси Х;

s(y) — интеграл от переменной у по переменной, откладываемой по оси X;

AVG(y) — текущее среднее значение переменной у;

AVGX(y,d) — текущее среднее значение переменной у на отрезке оси X длины d;

RMS(y) — текущее среднеквадратическое отклонение переменной у;

DE(x) — значение переменной х в децибелах;

MIN(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.

В режиме АС программа Probe поддерживает вычисления с комплексными числами и по умолчанию без добавления какого-либо суффикса выводит модуль результата. Если при этом выражение чисто действительное, например P(V(5)/V(1)), то результат может быть и отрицательным. Если же выражение комплексное, например V(5)/V(1), то выводится его модуль, который всегда неотрицательный.

При добавлении суффикса DB модуль выводится в децибелах, суффикса Р — выводится фаза в градусах, 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)), a sIC(Q3) эквивалентна s(IC(Q3)).

Для одновременного построения двух и более графиков их переменные перечисляют на одной строке, разделяя их пробелом или запятой. Например, задание строки V(3) V(7), IC(Q3), RMS(I(VIN)) приведет к построению сразу четырех графиков (их можно построить и по очереди).

Еще одна особенность команды Trace>Add связана с многовариантными расчетами. Если в меню выбора секций отмечено несколько вариантов, то при задании только имени переменной, например V(5), будет построено семейство графиков для каждого варианта. Указание же номера варианта п с добавлением к имени переменной суффикса @п, например V(5)@2, выведет на экран график только указанного n-го варианта. Номера вариантов можно указывать и в выражениях. Так, согласно выражению V(4,5)@2-V(4,5)@1 будет построен график разности напряжений V(4,5) во втором и первом вариантах. Если в выражении хотя бы для одной переменной не указан номер варианта @п, например V(4)-V(5)@2, то будет построено семейство графиков.

Файлы данных *.DAT, полученные от разных прогонов программы PSpice, средствами DOS можно объединить в один файл.

Например, команда

COPY/B Test1.dat+Test2.dat+Test3.dat Test.dat

объединит 3 файла данных в один файл Test.dat. Тогда при загрузке его в программу Probe можно строить семейства зависимостей.

Цифровые переменные

В программе Probe выводятся временные диаграммы логических состояний отдельных цифровых узлов или шин, объединяющих не более 32 цифровых сигналов. На временной диаграмме одной переменной двойная линия соответствует неопределенному состоянию X, тройная — состоянию высокого импеданса Z.

Всего можно вывести до 75 временных диаграмм, однако одновременно на экране помещается меньшее их количество. Размер окна построения цифровых сигналов зависит от количества окон на аналоговом экране, его первоначальные размеры устанавливаются по команде Plot>Digital Size>Percentage of Plot to be Digital. Знак «+» в верхней и (или) нижней части экрана показывает, что часть графиков находится вне экрана. Имя переменной, вводимой по запросу команды Trace>Add Trace, может быть именем цифрового узла или булевым выражением, содержащим имена таких узлов. Шина (многоразрядное число) формируется в виде заключенного в фигурные скобки списка цифровых узлов, разделенных пробелами или запятыми, например

{ D3 D2 D1 D0 }

В начале списка-помещается старший разряд шины, в конце — младший.

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

{ } — объединение в группу;

" — логическое отрицание;

* / — умножение и деление (только для шин);

+ и - — сложение и вычитание (только для шин);

& — логическое И;

^ — логическое исключающее ИЛИ;

| — логическое ИЛИ.

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

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

'0 — сигнал низкого уровня;

'1 — сигнал высокого уровня;

'F — нарастающий фронт;

'R — спадающий фронт;

'X — неопределенное состояние;

'Z — состояние высокого импеданса.

Выражения с шинами могут содержать многоразрядные числа, записываемые в виде текстовой переменной в форме r'ddd, где r — указатель системы счисления (х, h, d, о или b), ddd — последовательность цифр в указанной системе счисления. Приведем примеры:

x'SFFFF — шестнадцатеричная система;

h'5a — шестнадцатеричная система;

d'79 — десятичная система;

о'177400 — восьмеричная система;

b'100110 — двоичная система.

Многоразрядное число эквивалентно определению шины, которая содержит cтолько сигналов, сколько разрядов необходимо для представления этого числа в двоичном коде. Например, число d'11 эквивалентно шине {'1 '0 '1 '1}.

Логические переменные вводятся в одной строке по формату

<описание цифрового сигнала> [; [<имя графика>] [;<указатель системы счисления>] ]

Здесь <указатель системы счисления> применяется только при операциях с шинами. Он принимает значения Н или X для шестнадцатеричной, D — для десятичной, О — для восьмеричной и В — для двоичной системы счисления. По молчанию без его указания шина представляется в шестнадцатеричной системе. Параметр <имя графика> обозначает имя, выводимое на экране слева от графика; по умолчанию в качестве имени графика отображается выражение, заданное при его вводе.

Имена графиков могут выравниваться по правой или левой границе. По умолчанию устанавливается правая привязка. Для ее изменения в секции Probe файла конфигурации pspice.ini включается строка

DGTLNAMELEFTJUSTIFY=ON

3. Макросы. По команде Тгасе>Масго открывается окно для создания новых и редактирования существующих макросов. Макрос имеет стандартную форму

<имя макроса>[(аргумент[,аргумент]*) ] = <определение>

Аргументы, если они есть, описываются непосредственно вслед за именем макроса в круглых скобках без пробелов (квадратные скобки, как обычно, не указываются). Макросы могут содержать ссылки на другие макросы, однако рекурсивные вызовы не допускаются.

Приведем несколько примеров макросов:

SUB(A.B) = А-В

F1(A)= 10*A

F2(A,B) = SIN(A*F1(B))

PI = 3.14159

YR(x,y)=(R(x)*R(y)+lmg(x)*lmg(y))/(y*y)

Введенные в этом окне макросы по команде Save или Save To записываются в текстовый файл с расширением имени *.PRB, который может также редактироваться с помощью любого текстового редактора. Описание одного макроса, включая его имя, аргументы и определение, должно располагаться на одной строке длиной не более 80 символов. Строка, начинающаяся со «*», воспринимается как комментарий. Комментарии можно помещать также в конце строк после «;». Пустые строки игнорируются.

4. Целевые функции. По команде Trace>Eval Goal Function вычисляются целевые функции или выражения, их содержащие. Определения целевых функций записываются в текстовые файлы с расширением имени *.PRB (в каталоге \PSPICE\COMMON находится файл стандартных целевых функций и макросов pspice.prb). Перечень целевых функций помещается в диалоговом окне, отличающемся от окна ввода обычных переменных возможностью выбора списка целевых функций Goal Functions на строке Function or Macros. Например, целевая функция для расчета ширины полосы пропускания частотной характеристики имеет имя Bandwidth (l,db_level), где вместо первого параметра 1 щелчком курсора подставляется имя переменной, измеренной в децибелах, а вместо второго db_level — затухание сигнала на границе полосы пропускания, в децибелах. После выбора курсором имени целевой функции оно переносится в командную строку без указания параметров — Bandwidth(,), имена переменных указываются курсором, а дополнительные параметры (в данном случае суффикс db) вводятся с клавиатуры, например Bandwidth(Vdb(9),3) — полоса пропускания напряжения V(9) при затухании 3 дБ или Bandwidth(Vdb(9)@2,3) — полоса пропускания по результатам анализа второй секции данных.

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

Целевая функция задается по формату

Имя_целевой_фунщии(1, 2,..., N, параметрM,..., параметрМ)=выражение

{

1| Команды_поиска_и_выделения_точек_для_выражения_1;

2| Команды_поиска_и_выделения_точек_для_выражения_2;

N | Команды_поиска_и_выделения_точек__для_выражения_М; }

Здесь приняты следующие обозначения.

Имя_целевой_функции состоит из алфавитно-цифровых символов (А — Z, 0 — 9) и символа подчеркивания (_), но не может начинаться с цифры. Длина имени не более 50 символов, строчные и прописные буквы не различаются. Это имя указывается в командной строке Trace>Add Trace.

Аргументы выражения (1, 2,.... N) — первые N аргументов ассоциируются с N командами поиска и выделения точек. Аргумент 1 ассоциируется с командами, помещенными после символов 1|, и т.д. При вводе в командной строке целевой функции эти аргументы заменяются именами переменных и выражениями по правилам, принятым в Probe.

Список параметров(параметр1, ..., параметрM) помещается вслед за аргументами выражения. Параметры используются при определении целевой функции и представляют собой алфавитно-цифровые переменные (А — Z, 0 — 9), которые могут включать в себя символы подчеркивания (_), но не могут начинаться с цифры. При вводе целевой функции указываются численные значения этих параметров.

Выражение — математическое выражение, описывающее операции с выделенными точками. В результате определяется число, откладываемое по оси Y графика. Выражения составляются по обычным правилам программы Probe за небольшими исключениями. Выражение может включать в себя символы арифметических операций +,-,*,/,(,) и функции одного аргумента ABS, SGN, SIN, SQRT, ... Отличия от правил составления выражений программы Probe состоят в следующем.

1. Вместо обычных переменных PSpice, например V(4), I(R2), в выражениях приводятся координаты выделенных точек x1, уЗ, ...

2. Добавлена одна функция MPAVG, вычисляющая среднее значение по оси Y между двумя выделенными точками MPAVG(p1,p2[,диапазон])

Здесь р1, р2 — координаты выделенных точек по оси X, например xl, хЗ, ограничивающих диапазон усреднения. Необязательный параметр диапазон уточняет интервал диапазона усреднения. Величина диапазона усреднения, средняя точка которого совмещена со средней точкой между р! и р2, умножается на значение этого параметра; по умолчанию он равен 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

Здесь xl, х2 — координаты по оси X отмеченных выше точек 1 (!1) и 2 (!2). Затем вычислим величину выброса в процентах амплитуды импульса. Для этого используем функцию MPAVG для расчета среднего значения нижней и верхней части импульса

overshoot = ((у4 - MPAVG(x1,x2,0.5))/ (MPAVG(x1,x2,0.5)) - MPAVG(x2,x3,0.5))*100

3. Не разрешается использовать функции нескольких переменных d( ), s( ), AVG( ), RMS( ), MIN( ) и МАХ( ).

4. Нельзя использовать функции комплексных переменных М( ), Р( ), R( ), IMG( ), G( ).

Команды_поиска_и_выделения_точек_для_выражения_М — комбинация одной или нескольких команд поиска, в которых имеются ссылки на одну или несколько выделенных точек. Описание команд поиска Search_commands приведено ниже. Дадим их примеры:

Полная форма команды поиска:

search forward for peak !1 search backward for trough !2;

Краткая форма:

sfpe!l sbtr!2;

Замечание.

Каждое выражение для команд поиска и выделения .точек заканчивается символом «;».

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

Продолжения строк — любая строка (за исключением строк комментариев) может быть перенесена на следующую строку без указания каких-либо специальных символов. Любая строка, начинающаяся с символа * в первой позиции, считается комментарием.

Приведем ряд примеров.



Содержание раздела