Основу системы Design Center составляет программа PSpice, которая является наиболее известной модификацией программы схемотехнического моделирования SPICE (Simulation Program with Integrated Circuit Emphasis), разработанной в начале 70-х годов в Калифорнийском университете [35, 49, 55, 72, 79]. Она оказалась очень удачной, с тех пор интенсивно развивается и де-факто стала эталонной программой моделирования аналоговых устройств. Принятые в ней математические модели полупроводниковых приборов используются во многих аналогичных программах (например, Micro-Cap IV, ДИСП-ПК), а формат входного языка SPICE поддерживается большинством пакетов САПР (OrCAD 5, P-CAD 8.5, TangoPRO, Viewlogic, COMPASS, Mentor Graphics и др.). Первая версия программы PSpice для IBM PC создана в 1984 г. корпорацией MicroSim. Эта и последующие версии используют те же алгоритмы, что и SPICE, тот же формат представления входных и выходных данных.
Первая версия PSpice позволяла моделировать исключительно аналоговые устройства. Рассчитывалиcь переходные процессы при действии различных входных сигналов, их спектры, режимы по постоянному току, частотные характеристики, спектральные плотности внутренних шумов и другие характеристики нелинейных и линеаризованных аналоговых устройств. В 1989 г. выпущена версия PSpice 4.0, позволявшая моделировать и смешанные аналого-цифровые устройства. Уже в следующем году создана версия пятого поколения, обеспечившая не только текстовый, но и графический ввод принципиальных схем в среде Windows, и одновременно сменившая название – теперь программа PSpice входит в состав программной системы Design Center. Следующее поколение системы Design Center 6.0 (январь 1994 г.) характеризуется очень интересной возможностью расчета паразитных эффектов, присущих реальной печатной плате, и проведения моделирования с их учетом. В нее также включено средство проектирования программируемых логических матриц. Очередная версия Design Center 6.1 (август 1994 г.) пополнилась модулем параметрической оптимизации. В последней версии 6.2 (апрель–декабрь 1995 г.) реализована возможность разработки печатных плат, как в системах типа P-CAD.
В результате пользователи получили первую на IBM PC систему сквозного проектирования печатных плат. Ее лидирующая позиция укрепляется интеграцией с автотрассировщиком SPECCTRA фирмы Cooper&Chyan Technology.
Имеются версии системы Design Center для ПК IBM PC (процессоры 386, 486, Pentium, операционные системы Microsoft Windows 3.1, Windows 95, Windows NT 3.5, MS-DOS 5.0 и более поздние версии) и рабочих станций типа Sun и HP (операционные системы SunOS 4.12, Solaris 2.3, OpenWindows 3.0 и более поздние версии). Для платформ DOS и MS-Windows имеются лицензии для автономных пользователей (stand-alone) и работы в сети, для Sun и HP9000/700 – только сетевые.
Книга посвящена в основном работе с Design Center 6.2 на платформе Windows, функционирование в среде DOS изложено фрагментарно. Основное внимание уделено проблемам схемотехнического моделирования, в меньшей степени – разработке печатных плат. Материал по синтезу аналоговых фильтров и цифровых устройств здесь не рассматривается. В предлагаемой книге обращено внимание на принципиальные вопросы, возникающие при работе с Design Center, и исчерпывающим образом изложен необходимый справочный материал, который иллюстрируется большим количеством примеров и методических материалов. Знакомство с книгой позволит освоить систему Design Center гораздо быстрее, чем с помощью многотомной фирменной документации, к которой придется обращаться лишь за разъяснениями отдельных сложных случаев.
Данную книгу можно использовать при работе не только с версией 6.2 системы Design Center, но и с более ранними версиями. По мере возможности в тексте указывается, начиная с какой версии справедлива та или иная конструкция. Если таких указаний нет, то изменений после версии 4.0, которой посвящена книга [14], не производилось. Однако в связи с невозможностью указать абсолютно на все нововведения при диагностике ошибок следует обращаться к файлу readme.doc текущей версии Design Center, в котором перечислены ее новые возможности.
Рекомендуется следующая последовательность изучения системы Design Center, в дистрибутив которой включено большое количество примеров.
Сначала имеет смысл загрузить в схемный редактор один из них, например файл example.sch, содержащий схему дифференциального усилителя. После этого, руководствуясь разд. 1.2, провести моделирование, просмотреть его результаты и получить общее представление о системе. Далее рекомендуется прочесть гл. 3, чтобы изучить текстовую форму задания на моделирование для PSpice, составить задания для моделирования простейших примеров, оформляя их в виде текстовых файлов с расширением имени .cir и вызывая последовательно программы PSpice и Probe под управлением DOS или Windows (в зависимости от имеющегося варианта Design Center). Изучение текстового описания схем необходимо для того, чтобы в дальнейшем, освоив ввод схем в графическом виде, можно было диагностировать ошибки. Кроме того, знание текстового формата описания компонентов необходимо для составления и редактирования атрибутов их графических символов, создания новых символов. Техника графического ввода схем и выполнения моделирования с помощью управляющей оболочки под управлением Windows изложена в гл. 2. После этого необходимо изучить разд. 7.2, посвященный программе графического отображения результатов моделирования Probe. Остальные разделы книги прорабатываются по мере надобности. Перед освоением подсистемы проектирования печатных плат PCBoard (гл. 8) целесообразно ознакомиться с основными понятиями и методикой проектирования в системе P-CAD [19].
Материал книги основан на опыте, приобретенном в Московском энергетическом институте при проведении занятий со студентами и сотрудничестве с научно-исследовательскими институтами и предприятиями промышленности. При ее написании переработана и дополнена предыдущая книга [14], посвященная версии PSpice 4.0. Публикация обзорных статей по моделированию устройств электроники [15–17] показала, что интерес к этим проблемам в последнее время появился не только в учебных заведениях, но и на предприятиях промышленности. Автор благодарит всех своих коллег, студентов и читателей за полезные дискуссии.Наконец, особая благодарность моим близким за их долготерпение и поддержку при подготовке книги.
Автор благодарит АООТ “Родник Софт” – официального дилера корпорации MicroSim – за предоставленную возможность познакомиться с последними версиями системы Design Center и автотрассировщика печатных плат SPECCTRA.
Со всеми замечаниями по данной работе просим обращаться по адресу: 113556, Москва, Нахимовский просп., д. 1, корп. 1, АООТ “Родник Софт”; телефон: (095) 113-7001, факс: (095) 316-9754, E-mail: pode@rodnik.msk.su.
Аналого-цифровой интерфейс
Аналого-цифровые интерфейсы предназначены для преобразования аналогового напряжения в логический уровень. Они имитируют входные каскады цифровых ИС. Их схема замещения показана на рис. 6.3, а. Аналого-цифровые интерфейсы не обязательно включать в схему устройства вручную, так как программа PSpice автоматически расщепляет узел интерфейса и включает устройства интерфейса между аналоговым узлом и входным узлом цифрового устройства. Информация о логическом уровне сигнала на выходе интерфейса А/Ц может направляться двояко:– в модуль логического моделирования программы PSpice;
– в файл (позднее этот файл может быть просмотрен визуально или использован в качестве источника цифрового сигнала при логическом моделировании в следующем сеансе).
![]() ![]() Рис. 6.3. Аналого-цифровой (а) и цифро-аналоговый (б) интерфейсы |
При взаимодействии аналоговых и цифровых компонентов в процессе моделирования описание интерфейса А/Ц (digital output: analog-to-digital) имеет формат
Oxxx <+узел интерфейса> <–узел интерфейса> <имя модели А/Ц>
+ DGTLNET=<имя цифрового узла> <имя модели вход/выход>
При записи логических уровней в файл описание интерфейса А/Ц имеет формат
Oxxx <+узел интерфейса> <–узел интерфейса> <имя модели А/Ц>
+ [SIGNAME=<имя цифрового сигнала>]
Приведем примеры:
O12 ANALOG_NODE DIGITAL_GND DOUT_133
+ DGTLNET=DIG_NODE IO_STD
OVCO 17 0 TO_TTL SIGNAME=VCO_OUT; передача данных в файл
Модель аналого-цифрового интерфейса описывается предложением
.MODEL <имя модели А/Ц> DOUTPUT [<параметры модели>]
Параметры модели аналого-цифрового интерфейса приведны в табл. 6.1.
Таблица 6.1
| Идентификатор | Параметр | Значение по умолчанию | Единица измерения | ||||
| RLOAD | Сопротивление нагрузки | 1/GMIN | Ом | ||||
| CLOAD | Емкость нагрузки | 0 | Ф | ||||
| CHGONLY | Флаг преобразования: 0 – преобразование на каждом шаге по времени; 1 – преобразование при наличии изменения входного напряжения (только при записи в файл) | | |||||
| S0NAME | Имя логического состояния “0” | ||||||
| S0VLO | Нижний уровень напряжения логического “0” | В | |||||
| S0VHI | Верхний уровень напряжения логического “0” | В | |||||
| S1NAME | Имя логического состояния “1” | ||||||
| S1VLO | Нижний уровень напряжения логической “1” | В | |||||
| S1VHI | Верхний уровень напряжения логической “1” | В | |||||
| . . . . . | . . . . . . . . . . . | . . . . . | . . . | ||||
| S19NAME | Имя логического состояния “19” | ||||||
| S19VLO | Нижний уровень напряжения логического состояния “19” | В | |||||
| S19VHI | Верхний уровень напряжения логического состояния “19” | В | |||||
| SXNAME | Имя логического состояния, когда напряжение на узле интерфейса находится вне заданных границ | ? | |||||
| FILE | Имя файла цифрового сигнала (только при записи в файл) | | |||||
| FORMAT | Код формата входного файла цифровых сигналов (только при записи в файл) | 1 | |||||
| TIMESTEP | Интервал дискретизации по времени при с записи в файл | 10![]() | c | ||||
| TIMESCALE | Масштабный коэффициент при расчете интервала времени TIMESTEP (только при записи в файл) | 1 |
Каждому i- му логическому состоянию соответствует определенный диапазон напряжений
SiVL0...SiVHI. До тех пор пока входное напряжение интерфейса А/Ц Vвх
не выходит за его границы, логическое состояние на выходе интерфейса А/Ц не изменяется. В противном случае входное напряжение будет сравниваться с пороговыми уровнями, начиная с S0VLO, пока оно не попадет в какой-нибудь интервал. Если оно не попадает ни в один интервал напряжений, логическому состоянию интерфейса А/Ц по умолчанию присваивается символ “?” (его можно изменить с помощью параметра SXNAME).
При взаимодействии с модулем логического моделирования программы PSpice имена логических состояний должны быть “0”, “1”, “X”, “R”, “F” или “Z” (однако состояние “Z” обычно не используется, так как состояние высокого импеданса не определяет уровень напряжения).
Параметры TIMESCALE, FILE, CHGONLY
и FORMAT используются только при записи цифрового сигнала в файл. Параметр TIMESTEP
определяет точность установления момента времени изменения логического состояния. При расчете переходных процессов в аналоговых цепях время интегрирования не может превышать значение TIMESTEP. По умолчанию этот параметр принимает меньшее из значений 1 нс или 1/DIGFREQ (параметр DIGFREQ устанавливается по директиве .OPTIONS). Моменты времени, в которые записываются значения выборок сигнала, равны целым значениям величин
k = TIMESCALE·TIME/TIMESTEP,
где TIME – текущее время моделирования, k – номер отсчета. По умолчанию TIMESCALE=1. Для экономии машинного времени следует назначать значение параметра TIMESTEP, исходя из скорости изменения напряжения.
При записи дискретизированного сигнала в файл его имя указывается в опции
SIGNAME=<имя файла>
Если эта опция опущена, то в качестве имени файла будет принято имя интерфейса А/Ц Oxxx без первого символа O.
Логическое состояние интерфейса А/Ц можно просмотреть с помощью программы Probe, указывая в качестве имени переменной B(Oxxx), см.
комментарий к интерфейсу Ц/А.
Моделирование входной цепи реального цифрового компонента с помощью линейной RС-цепи, как показано на рис. 6.3, а, не всегда обеспечивает достаточную точность расчетов. Поэтому пользователь должен иметь в своем распоряжении несколько моделей входных цепей логических компонентов, оформляя их в виде макромоделей. В качестве примера на рис. 6.4 представлена нелинейная модель входной цепи логических элементов ТТЛ, к которой подключено стандартное устройство сопряжения типа Oxxx.
![]() Рис. 6.4. Нелинейная модель входной цепи цифрового компонента |
Библиотека AMB.SLB
| Имя, назначение | Символ | Атрибуты | |||
| ABM, число p (источник ЭДС) | ![]() | REFDES=ABM? TEMPLATE=E^@REFDES %OUT 0 VALUE {@EXP1 ?EXP2|\n+ @EXP2| ?EXP3|\n + @EXP3| ?EXP4|\n + @EXP4|} EXP1=3.14159265 – константа EXP2= EXP3= EXP4= | |||
| ABM1, Делитель 1:10 (управляемый источник ЭДС) | ![]() | REFDES=ABM1? TEMPLATE=E^@REFDES %OUT 0 VALUE {@EXP1 ?EXP2|\n+ @EXP2| ?EXP3|\n + @EXP3| ?EXP4|\n + @EXP4|} EXP1=(V(%IN)*100)/1000 EXP2= EXP3= EXP4= | |||
| ABM2, среднее двух напряжений (источник ЭДС) | ![]() | REFDES=ABM2? TEMPLATE=E^@REFDES %OUT 0 VALUE {@EXP1 ?EXP2|\n+ @EXP2| ?EXP3|\n + @EXP3| ?EXP4|\n + @EXP4|} EXP1=(V(%IN1) EXP2=+V(%IN2))/2.0 EXP3= EXP4= | |||
| ABM3, среднее трех напряжений (источник ЭДС) | ![]() | REFDES=ABM3? TEMPLATE=E^@REFDES %OUT 0 VALUE {@EXP1 ?EXP2|\n+ @EXP2| ?EXP3|\n + @EXP3| ?EXP4|\n + @EXP4|} EXP1=(V(%IN1) EXP2=+V(%IN2) EXP3=+V(%IN3))/3.0 EXP4= | |||
| ABM/I, число Ö2 (источник тока) | ![]() | REFDES=ABMI? TEMPLATE=G^@REFDES %OUT 0 VALUE {@EXP1 ?EXP2|\n+ @EXP2| ?EXP3|\n + @EXP3| ?EXP4|\n + @EXP4|} EXP1=1.4142136 – константа EXP2= EXP3= EXP4= | |||
| ABM1/I, входное напряжение +100 В, деленное на 1000 (источник тока) | ![]() | REFDES=ABM1I? TEMPLATE=G^@REFDES %OUT 0 VALUE {@EXP1 ?EXP2|\n+ @EXP2| ?EXP3|\n + @EXP3| ?EXP4|\n + @EXP4|} EXP1=(V(%IN)+100)/1000 EXP2= EXP3= EXP4= | |||
| ABM2/I, среднее двух напряжений (источник тока) | ![]() | REFDES=ABM2I? TEMPLATE=G^@REFDES %OUT 0 VALUE {@EXP1 ?EXP2|\n+ @EXP2| ?EXP3|\n + @EXP3| ?EXP4|\n + @EXP4|} EXP1=(V(%IN1)+V(%IN2))/2.0 EXP2= EXP3= EXP4= | |||
| ABM3/I, среднее трех напряжений (источник тока) | ![]() | REFDES=ABM3I? TEMPLATE=G^@REFDES %OUT 0 VALUE {@EXP1 ?EXP2|\n+ @EXP2| ?EXP3|\n + @EXP3| ?EXP4|\n + @EXP4|} EXP1=(V(%IN1) EXP2=+V(%IN2) EXP3=+V(%IN3))/3.0 EXP4= | |||
| ABS, абсолютная величина | ![]() | REFDES=ABS? TEMPLATE=E^@REFDES %OUT 0 VALUE {ABS(V(%IN))} | |||
| ARCTAN, арктангенс (источник ЭДС) | ![]() | REFDES=ARCTAN? TEMPLATE=E^@REFDES %OUT 0 VALUE {ATAN(V(%IN))} | |||
| ATAN, арктангенс (источник ЭДС) | ![]() | REFDES=ATAN? TEMPLATE=E^@REFDES %OUT 0 VALUE {ATAN(V(%IN))} | |||
| BANDPASS, чебышевский полосовой фильтр | ![]() | REFDES=BPASS? TEMPLATE=E^@REFDES %OUT 0 CHEBYSHEV {V(%IN)} BP (@F0 @F1 @F2 @F3) @RIPPLE @STOP F0=10Hz F1=100Hz F2=300Hz F3=1000Hz RIPPLE=1dB – затухание в полосе пропускания STOP=50dB – затухание в полосе задерживания | |||
| BANDREJ, чебышевский режекторный фильтр | ![]() | REFDES=BPASS? TEMPLATE=E^@REFDES %OUT 0 CHEBYSHEV {V(%IN)} BR (@F0 @F1 @F2 @F3) @RIPPLE @STOP F0=10Hz F1=100Hz F2=300Hz F3=1000Hz RIPPLE=1dB – затухание в полосе пропускания STOP=50dB – затухание в полосе задерживания | |||
| CONST, источник постоянного напряжения | ![]() | REFDES=CONST? TEMPLATE=V^@REFDES %OUT 0 DC @VALUE VALUE=1.000 – константа | |||
| COS, функция косинус | ![]() | REFDES=COS? TEMPLATE=E^@REFDES %OUT 0 VALUE {COS(V(%IN))} | |||
| DIFF, вычитание напряжений | ![]() | REFDES=DIFF? TEMPLATE=E^@REFDES %OUT 0 VALUE {V(%IN2,V(%IN1)} | |||
| DIFFER, дифференци-рующее уст-ройство | ![]() | REFDES=DIFFER? TEMPLATE=C^@REFDES %IN $$U^@REFDES 1 \n V^@REFDES $$U^REFDES 0 0v\n E^@REFDES %OUT 0 VALUE {@GAIN*I(V^@REFDES)} GAIN=1.0 – коэффициент усиления | |||
| EXP, функция экс-понента | ![]() | REFDES=EXP? TEMPLATE=E^@REFDES %OUT 0 VALUE {EXP(V(%IN))} | |||
| FTABLE, табличное задание передаточной функции в частотной области | ![]() | REFDES=FTABLE? TEMPLATE=E^@REFDES %OUT 0 FREQ {V(%IN)} @ROW1 ?ROW2|\n+ @ROW2| ?ROW3\|n+ @ROW3| ?ROW4|\n+ @ROW4| ?ROW5|\n+ @ROW5| ROW1=0Hz 0 0 – частота, модуль (в дБ), фаза (в град.) ROW2=10Hz -3 -30 ROW3=20Hz -6 -90 ROW4=30Hz -10 -120 ROW5=40Hz -15 -150 | |||
| GAIN, усилитель | ![]() | REFDES=GAIN? TEMPLATE=E^@REFDES %OUT 0 VALUE {@GAIN*V(%IN)} | |||
| GLIMIT, усилитель–жесткий ограничитель | ![]() | REFDES=GLIMIT? TEMPLATE=E^@REFDES %OUT 0 TABLE {@GAIN*V(%IN)} (-1,@LO) (1,@HI) GAIN=1k – коэффициент усиления HI=10 – верхний уровень ограничения LO=0 – нижний уровень ограничения | |||
| HILO, усилитель–ограничитель с характеристи-кой тангенс гиперболический | ![]() | REFDES=LIMIT? TEMPLATE=E^@REFDES %OUT 0 VALUE {@B+(@A*@TANH)} GAIN=1k – коэффициент усиления HI=10 – верхний уровень ограничения LO=0 – нижний уровень ограничения A=(((@HI)-(@LO))/2) B=(((@HI)+(@LO))/2) V=(@GAIN)*V(%IN)-@B) TANH=(EXP(@V)\n+ -EXP(-@V))\n+ /(EXP(@V)\n+ +EXP(-@V)) | |||
| HIPASS, фильтр верхних частот | ![]() | REFDES=HIPASS? TEMPLATE=E^@REFDES %OUT 0 CHEBYSHEV {V(%IN)} HP (@FP @FS) @RIPPLE @STOP FP=100Hz FS=10Hz RIPPLE=1dB – затухание в полосе пропускания STOP=50dB – затухание в полосе задерживания | |||
| INTEG, интегратор (источник тока, пропорциональ-ный интегралу входного напряжения) | ![]() | REFDES=INTEG? TEMPLATE=G^@REFDES 0 $$U^@REFDES VALUE {V(%IN)} \n C^@REFDES $$U^REFDES 0 {1/@GAIN} \n R^@REFDES $$U^@REFDES 0 1G\n E^@REFDES %OUT 0 VALUE {V($$U^@REFDES)} ?IC#\n.IC V($$U^@REFDES)=@IC# IC=0v – начальное значение интеграла GAIN=1.0 – коэффициент усиления | |||
| LAPLACE, преобразование Лапласа | ![]() | REFDES=LAPLACE? TEMPLATE=E^@REFDES %OUT 0 LAPLACE {V(%IN)} {(@NUM)/(@DENOM)} NUM=1 (числитель) DENOM=1+s (знаменатель) | |||
| LIMIT, ограничитель | ![]() | REFDES=LIMIT? TEMPLATE=E^@REFDES %OUT 0 VALUE {LIMIT(V(%IN), @LO,@HI)} HI=10 – верхний уровень ограничения LO=0 – нижний уровень ограничения | |||
| LOG, натуральный логарифм | ![]() | REFDES=LOG? TEMPLATE=E^@REFDES %OUT 0 VALUE {LOG(V(%IN))} | |||
| LOG10, десятичный логарифм | ![]() | REFDES=LOG10? TEMPLATE=E^@REFDES %OUT 0 VALUE {LOG10(V(%IN))} | |||
| LOPASS, фильтр нижних частот | ![]() | REFDES=LOPASS? TEMPLATE=E^@REFDES %OUT 0 CHEBYSHEV {V(%IN)} LP (@FP @FS) @RIPPLE @STOP FS=100Hz FP=10Hz RIPPLE=1dB – затухание в полосе пропускания STOP=50dB – затухание в полосе задерживания | |||
| MULT, перемножи-тель | ![]() | REFDES=MULT? TEMPLATE=E^@REFDES %OUT 0 VALUE {V(%IN1)*V(%IN2)}} | |||
| PWR, степенная функция | ![]() | REFDES=PWR? TEMPLATE=E^@REFDES %OUT 0 VALUE {PWR(V(%IN),@EXP)} EXP=1.0 – показатель степени | |||
| PWRS, степенная функция | ![]() | REFDES=PWRS? TEMPLATE=E^@REFDES %OUT 0 VALUE {PWR(V(%IN),@EXP)} EXP=1.0 – показатель степени | |||
| SIN, функция синус | ![]() | REFDES=SIN? TEMPLATE=E^@REFDES %OUT 0 VALUE {SIN(V(%IN))} | |||
| SOFTLIM, мягкий усилитель-ограничитель (с характеристи-кой тангенс гиперболический) | ![]() | REFDES=SLIMIT? TEMPLATE=E^@REFDES %OUT 0 VALUE {@B+(@A*@TANH)} GAIN=1k – коэффициент усиления HI=10 – верхний уровень ограничения LO=0 – нижний уровень ограничения A=(((@HI)-(@LO))/2) B=(((@HI)+(@LO))/2) V=(@GAIN)*V(%IN)-@B) TANH=(EXP(@V)\n+ -EXP(-@V))\n+ /(EXP(@V)\n+ +EXP(-@V)) | |||
| SQRT, корень квадратный | ![]() | REFDES=SQRT? TEMPLATE=E^@REFDES %OUT 0 VALUE {SQRT(V(%IN))} | |||
| SUM, суммирование напряжений | ![]() | REFDES=SUM? TEMPLATE=E^@REFDES %OUT 0 VALUE {V(%IN1)+V(%IN2)} | |||
| TABLE, табличное задание передаточной функции | ![]() | REFDES=TABLE? TEMPLATE=E^@REFDES %OUT 0 TABLE {V(%IN)} @ROW1 ?ROW2|\n+ @ROW2| ?ROW3\|n+ @ROW3| ?ROW4|\n+ @ROW4| ?ROW5|\n+ @ROW5| ROW1=0v 0v – аргумент, функция ROW2=1v 1v ROW3=2v 4v ROW4=3v 9v ROW5=4v 16v | |||
| TAN, функция тангенс | ![]() | REFDES=TAN? TEMPLATE=E^@REFDES %OUT 0 VALUE {TAN(V(%IN))} | |||
| EFREQ, табличное задание комплексного коэффициента передачи | ![]() | REFDES=E? TEMPLATE=E^@REFDES %OUT+ %OUT- FREQ {EXPR} (@TABLE) EXPR=V(%IN+,%IN-) – выражение для входной переменной TABLE=(0,0,0) (1Meg,-10,90) – таблица передаточной функции (частота; модуль, в дБ; фаза, в град.) | |||
| ELAPLACE, задание коэффициента передачи преобразо-ванием Лапласа | ![]() | REFDES=E? TEMPLATE=E^@REFDES %OUT+ %OUT- LAPLACE {EXPR} (@XFORM) EXPR=V(%IN+,%IN-) – выражение для входной переменной XFORM=1/s – передаточная функция | |||
| EMULT, перемножитель напряжений | ![]() | REFDES=E? TEMPLATE=E^@REFDES %OUT+ %OUT- VALUE {V(%IN1+,%IN1-)* V(IN2+,%IN2-)} | |||
| ESUM, сумматор напряжений | ![]() | REFDES=E? TEMPLATE=E^@REFDES %OUT+ %OUT- VALUE {V(%IN1+,%IN1-) +V(IN2+,%IN2-)} | |||
| ETABLE, табличное задание передаточной функции | ![]() | REFDES=E? TEMPLATE=E^@REFDES %OUT+ %OUT- TABLE EXPR} (@TABLE) EXPR=V(%IN+,%IN-) – выражение для входной переменной TABLE=(-15,-15) (15,15) – таблица передаточной функции | |||
| EVALUE, нелинейная передаточная функция | ![]() | REFDES=E? TEMPLATE=E^@REFDES %OUT+ %OUT- VALUE {EXPR} EXPR=V(%IN+,%IN-) – выражение для передаточной функции | |||
| GFREQ, табличное задание комплексного коэффициента передачи источником тока | ![]() | REFDES=G? TEMPLATE=G^@REFDES %OUT+ %OUT- FREQ {EXPR} (@TABLE) EXPR=V(%IN+,%IN-) – выражение для входной переменной TABLE=(0,0,0) (1Meg,-10,90) – таблица передаточной функции (частота; модуль, в дБ; фаза, в град.) | |||
| GLAPLACE, задание коэффициента передачи источника тока преобразо-ванием Лапласа | ![]() | REFDES=G? TEMPLATE=G^@REFDES %OUT+ %OUT- LAPLACE {EXPR} (@XFORM) EXPR=V(%IN+,%IN-) – выражение для входной переменной XFORM=1/s – передаточная функция | |||
| GMULT, перемножитель напряжений (источник тока) | ![]() | REFDES=G? TEMPLATE=G^@REFDES %OUT+ %OUT- VALUE {V(%IN1+,%IN1-) *V(IN2+,%IN2-)} | |||
| GSUM, сумматор напряжений (источник тока) | ![]() | REFDES=G? TEMPLATE=G^@REFDES %OUT+ %OUT- VALUE V(%IN1+,%IN1-) +V(IN2+,%IN2-)} | |||
| GTABLE, табличное задание передаточной функции источника тока | ![]() | REFDES=G? TEMPLATE=G^@REFDES %OUT+ %OUT- TABLE {EXPR} (@TABLE) EXPR=V(%IN+,%IN-) – выражение для входной переменной TABLE=(-15,-15) (15,15) – таблица передаточной функции | |||
| GVALUE, нелинейная передаточная функция источника тока | ![]() | REFDES=G? TEMPLATE=G^@REFDES %OUT+ %OUT- VALUE {EXPR} EXPR=V(%IN+,%IN-) – выражение для передаточной функции |
Библиотека ANALOG.SLB
| Имя, назначение | Символ | Атрибуты | |||
| C, конденсатор | ![]() | REFDES=С? TEMPLATE=С^@REFDES %1 %2 @VALUE ?IC/IC=@IC/ VALUE=1n – емкость конденсатора IC= – начальное напряжение на конденсаторе | |||
| C_var, переменный конденсатор | ![]() | REFDES=С? TEMPLATE=С^@REFDES %1 %2 {@VALUE*@SET+0.001p} VALUE=1n – максимальная емкость SET=0.5 – масштабный коэффициент изменения емкости | |||
| E, ИНУН | ![]() | REFDES=E? TEMPLATE=E^@REFDES %3 %4 %1 %2 @GAIN GAIN=1 – коэффициент усиления | |||
| E_POLY, нелинейный ИНУН (с нулевой постоянной составляющей) | ![]() | REFDES=E? TEMPLATE=E^@REFDES %3 %4 POLY(@VALUE) %1 %2 0.0 @COEF VALUE=1 – порядок полинома COEF=1 – строка коэффициентов полинома | |||
| F, ИТУТ | ![]() | REFDES=F? TEMPLATE=F^@REFDES %3 %4 %1 %2 @GAIN GAIN=1 – коэффициент усиления | |||
| F_POLY, нелинейный ИTУТ (с ну- левой постоянной составляющей) | ![]() | REFDES=F? TEMPLATE=F^@REFDES %3 %4 POLY(@VALUE) %1 %2 0.0 @COEF VALUE=1 – порядок полинома COEF=1 – строка коэффициентов полинома | |||
| G, ИТУН | ![]() | REFDES=G? TEMPLATE=G^@REFDES %3 %4 %1 %2 @GAIN GAIN=1 – коэффициент пропорциональности | |||
| G_POLY, нелинейный ИТУН (с нулевой постоянной составляющей) | ![]() | REFDES=G? TEMPLATE=F^@REFDES %3 %4 POLY(@VALUE) %1 %2 0.0 @COEF VALUE=1 – порядок полинома COEF=1 – строка коэффициентов полинома | |||
| H, ИНУТ | ![]() | REFDES=H? TEMPLATE=H^@REFDES %3 %4 %1 %2 @GAIN GAIN=1 – коэффициент пропорциональности | |||
| H_POLY, нелинейный ИНУТ (с ну- левой постоянной составляющей) | ![]() | REFDES=H? TEMPLATE=H^@REFDES %3 %4 POLY(@VALUE) %1 %2 0.0 @COEF VALUE=1 – порядок полинома COEF=1 – строка коэффициентов полинома | |||
| L, индуктивность | ![]() | REFDES=L? TEMPLATE=L^@REFDES %1 %2 @VALUE ?IC/IC=@IC/ VALUE=10uH – индуктивность IC= – начальный ток через индуктивность | |||
| R, резистор | ![]() | REFDES=R? TEMPLATE=R^@REFDES %1 %2 @VALUE ?TC/TC=@TC/ VALUE=1k – сопротивление резистора TC= – температурный коэффициент резистора | |||
| R_var, переменное сопротивле-ние | ![]() | REFDES=R? TEMPLATE=R^@REFDES %1 %2 {@VALUE*@SET+.001} VALUE=1k – максимальное сопротивление SET=0.5 – масштабный коэффициент изменения сопротивления | |||
| T, линия передачи без потерь | ![]() | REFDES=T? TEMPLATE=T^@REFDES %A+ %A- %B+ %B- Z0=@Z0 ?TD=/TD=@TD/ ?F/F=@F/ ?NL/NL=@NL/ Z0= – волновое сопротивление линии (Ом) TD= – задержка сигнала в линии (с) F= – частота (Гц) NL= – электрическая длина линии на частоте F (по умолчанию NL=1/4) | |||
| TLOSSY, линия передачи с потерями | ![]() | REFDES=T? TEMPLATE=T^@REFDES %A+ %A- %B+ %B- LEN=@LEN R=@R L=@L G=@G C=@C LEN=1– длина линии (м) R=1 – погонное сопротивление линии (Ом/м) L= 1– погонная индуктивность линии (Гн/м) G=1 – погонная проводимость линии (См/м) C=1 – погонная емкость линии (Ф/м) | |||
| XFRM_LI-NEAR, линейный трансформатор без потерь | ![]() | REFDES=TX? TEMPLATE= K^@REFDES L1^@REFDES L2^@REFDES @COUPLING\n L1^@REFDES %1 %2 @L1_VALUE\n L2^@REFDES %3 %4 @L2_VALUE L1_VALUE= – индуктивность 1-й обмотки L2_VALUE= – индуктивность 2-й обмотки COUPLING= – коэффициент связи |
Библиотека BREAKOUT.SLB
| Имя, назначение | Символ | Атрибуты | |||
| Bbreak, арсенид-галлиевый полевой транзистор с каналом n-типа | ![]() | REFDES=B? AREA= – количество параллельно включенных транзисторов MODEL=Bbreak – имя модели транзистора TEMPLATE=B^@REFDES %D %G %S @MODEL ?AREA/@AREA/ | |||
| Cbreak, конденсатор | ![]() | REFDES=C? VALUE=1n – значение емкости IC= – начальное значение напряжения на конденсаторе MODEL=Cbreak – имя модели конденсатора TEMPLATE=C^@REFDES %1 %2 @MODEL @VALUE ?IC/IC=@IC/ | |||
| Dbreak, диод | ![]() | REFDES=D? AREA= – количество параллельно включенных диодов MODEL=Dbreak – имя модели диода TEMPLATE=D^@REFDES %1 %2 @MODEL ?AREA/@AREA/ | |||
| Dbreak3, два диода с объединенными катодами | ![]() | REFDES=D? AREA= MODEL=Dbreak3 – имя макромодели двух диодов TEMPLATE=X^@REFDES %1 %2 %3 @MODEL | |||
| DbreakCR, варистор | ![]() | REFDES=D? AREA= MODEL=Dbreak – имя модели варистора TEMPLATE=D^@REFDES %1 %2 @MODEL ?AREA/@AREA/ | |||
| DbreakVV, варикап | ![]() | REFDES=D? AREA= MODEL=Dbreak TEMPLATE=D^@REFDES %1 %2 @MODEL ?AREA/@AREA/ | |||
| DbreakZ, стабилитрон | ![]() | REFDES=D? AREA= MODEL=Dbreak TEMPLATE=D^@REFDES %1 %2 @MODEL ?AREA/@AREA/ | |||
| JbreakN, полевой транзистор с каналом n-типа | ![]() | REFDES=J? AREA= MODEL=JbreakN TEMPLATE=J^@REFDES %D %G %S @MODEL ?AREA/@AREA/ | |||
| JbreakP, полевой транзистор с каналом p-типа | ![]() | REFDES=J? AREA= MODEL=JbreakP TEMPLATE=J^@REFDES %D %G %S @MODEL ?AREA/@AREA/ | |||
| Lbreak, индуктивность | ![]() | REFDES=L? VALUE= – значение индуктивности IC= – начальное значение тока через индуктивность MODEL=Lbreak TEMPLATE=L^@REFDES %1 %2 @MODEL @VALUE ?IC/IC=@IC/ | |||
| MbreakN, МОП-транзистор с каналом n-типа | ![]() | REFDES=M? L= W= AD= AS= PD= PS= NRD= NRS= NRG= NRB= M= MODEL=MbreakN TEMPLATE=M^@REFDES %D %G %S %B @MODEL\n+ ?L/L=@L/ ?W/W=@W/... ?M/M=@M/ | |||
| MbreakN3, МОП-транзистор с каналом n-типа (подложка соединена с истоком) | ![]() | REFDES=M? L= W= AD= AS= PD= PS= NRD= NRS= NRG= NRB= M= MODEL=MbreakN TEMPLATE=M^@REFDES %D %G %S %S @MODEL\n+ ?L/L=@L/ ?W/W=@W/... ?M/M=@M/ | |||
| MbreakN4, МОП-транзистор с каналом n-типа | ![]() | REFDES=M? L= W= AD= AS= PD= PS= NRD= NRS= NRG= NRB= M= MODEL=MbreakP TEMPLATE=M^@REFDES %D %G %S %B @MODEL\n+ ?L/L=@L/ ?W/W=@W/... ?M/M=@M/ | |||
| MbreakP, МОП-транзистор с каналом p-типа | ![]() | REFDES=M? L= W= AD= AS= PD= PS= NRD= NRS= NRG= NRB= M= MODEL=MbreakP TEMPLATE=M^@REFDES %D %G %S %B @MODEL\n+ ?L/L=@L/ ?W/W=@W/... ?M/M=@M/ | |||
| MbreakP3, МОП-транзистор с каналом p-типа (подложка соединена с истоком) | ![]() | REFDES=M? L= W= AD= AS= PD= PS= NRD= NRS= NRG= NRB= M= MODEL=MbreakP TEMPLATE=M^@REFDES %D %G %S %S @MODEL\n+ ?L/L=@L/ ?W/W=@W/... ?M/M=@M/ | |||
| MbreakP4, МОП-транзистор с каналом p-типа | ![]() | REFDES=M? L= W= AD= AS= PD= PS= NRD= NRS= NRG= NRB= M= MODEL=MbreakP TEMPLATE=M^@REFDES %D %G %S %B @MODEL\n+ ?L/L=@L/ ?W/W=@W/... ?M/M=@M/ | |||
| POT, потенциометр | ![]() | REFDES=R? VALUE=1k – сопротивление потенциометра SET=0.5 – коэффициент деления сопротивлений TEMPLATE=RT^@REFDES %1 %t {@VALUE*(1-@SET)+0.001}\n RS^@REFDES %t %2 {@VALUE*@SET+0.001} | |||
| QbreakL, биполярный боковой p–n–p-транзистор | ![]() | REFDES=Q? AREA= MODEL=QbreakL TEMPLATE=Q^@REFDES %c %b %e [%s] @MODEL ?AREA/@AREA/ | |||
| QbreakN, биполярный n–p–n- транзистор | ![]() | REFDES=Q? AREA= MODEL=QbreakN TEMPLATE=Q^@REFDES %c %b %e @MODEL ?AREA/@AREA/ | |||
| QbreakN3, биполярный n–p–n-транзистор | ![]() | REFDES=Q? AREA= MODEL=QbreakN TEMPLATE=Q^@REFDES %c %b %e @MODEL ?AREA/@AREA/ | |||
| QbreakN4, биполярный n–p–n-транзистор с выводом подложки | ![]() | REFDES=Q? AREA= MODEL=QbreakN TEMPLATE=Q^@REFDES %c %b %e [%s] @MODEL ?AREA/@AREA/ | |||
| QbreakP, биполярный p–n–p- транзистор | ![]() | REFDES=Q? AREA= MODEL=QbreakP TEMPLATE=Q^@REFDES %c %b %e @MODEL ?AREA/@AREA/ | |||
| QbreakP3, биполярный p–n–p- транзистор | ![]() | REFDES=Q? AREA= MODEL=QbreakP TEMPLATE=Q^@REFDES %c %b %e @MODEL ?AREA/@AREA/ | |||
| QbreakP4, биполярный p–n–p- транзистор с выводом подложки | ![]() | REFDES=Q? AREA= MODEL=QbreakP TEMPLATE=Q^@REFDES %c %b %e [%s] @MODEL ?AREA/@AREA/ | |||
| Rbreak, резистор | ![]() | REFDES=R? VALUE=1k – сопротивление резистора TC= – температурный коэффициент сопротивления TEMPLATE=R^@REFDES %1 %2 @VALUE ?TC/TC=@TC/ | |||
| Sbreak, ключ, управляемый напряжением | ![]() | REFDES=S? MODEL=Sbreak TEMPLATE=S^@REFDES %3 %4 %1 %2 @MODEL\n RS^REFDES %1 %2 1G | |||
| Wbreak, ключ, управляемый током | ![]() | REFDES=W? MODEL=Wbreak TEMPLATE=W^@REFDES %3 %4 VW^REFDES @MODEL\n VW^REFDES %1 %2 0V | |||
| XFRM_NON-LINEAR, трансформатор с магнитным сердечником | ![]() | REFDES=TX? L1_TURNS= – число витков 1-й обмотки L2_TURNS= – число витков 2-й обмотки COUPLING= – коэффициент связи TEMPLATE=K^@REFDES L1^@REFDES L2^@REFDES @COUPLING @MODEL\n L1^@REFDES %1 %1 @L1_TURNS\n L2^@REFDES %3 %4 @L2_TURNS |
Библиотека CONNECT.SLB
| Имя, назначение | Символ | Атрибуты | |||
| CONNECTOR, гнездо | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| DB9, 9-контактное гнездо типа D | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| DB25, 25-контактное гнездо типа D | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| EDGE62, 62-контактный разъем печатного монтажа | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| EDGE40, 40-контактный разъем печатного монтажа | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| DB25M, вилка 25-штырькового разъема типа D | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| male, вилка | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| DB9M, гнездо 9-штырькового разъема типа D | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| DB25F, гнездо 25-штырькового разъема типа D | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| DB9F, 9-контактное гнездо типа D | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| DIN5, 5-штырьковое гнездо типа DIN | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? | |||
| DIN96, 96-штырьковое гнездо типа DIN | ![]() | REFDES=P? PKGREF=P? PART= GATE=G? |
Библиотека PORT.SLB
| Имя, назначение | Символ | Атрибуты | |||
| AGND, аналоговая земля | ![]() | LABEL=0 | |||
| EGND, корпус | ![]() | LABEL=0 | |||
| BUBBLE, соединитель | ![]() | LABEL= | |||
| GLOBAL, глобальный соединитель | ![]() | LABEL= | |||
| OFFPAGE, соединитель между страницами | ![]() | LABEL= | |||
| IF_IN, входной порт интерфейса | ![]() | LABEL= | |||
| IF_OUT, выходной порт интерфейса | ![]() | LABEL= | |||
| INTERFACE, порт интерфейса | ![]() | LABEL= | |||
| HI, цифровой порт высокого уровня | ![]() | LABEL=$D_HI | |||
| LO, цифровой порт низкого уровня | ![]() | LABEL=$D_LO | |||
| NC, неподсоединенный цифровой порт | ![]() | LABEL=$D_NC | |||
| X, цифровой порт неопределенного состояния | ![]() | LABEL=$D_X | |||
| EXTERNAL_IN, глобальный соединитель | ![]() | LABEL= EXTERNAL=INPUT | |||
| EXTERNAL_OUT, глобальный соединитель | ![]() | LABEL= EXTERNAL=OUTPUT | |||
| EXTERNAL_BI, глобальный соединитель | ![]() | LABEL= EXTERNAL=BIPUT | |||
| GND_ANALOG, аналоговая земля | ![]() | LABEL=0 | |||
| GND_EARTH, корпус | ![]() | LABEL=0 |
Библиотека SOURCE.SLB
| Имя, назначение | Символ | Атрибуты | |||
| ISTIM, источник тока для StmEd | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|AC @AC| STIMULUS=@STIMULUS DC= – постоянная составляющая тока AC= – амплитуда тока при анализе в частотной области STIMULUS= STIMTYPE=ANALOG | |||
| VSTIM, источник напряжения для StmEd | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|AC @AC| STIMULUS=@STIMULUS DC= – постоянная составляющая напряжения AC= – амплитуда напряжения при анализе в частотной области STIMULUS= STIMTYPE=ANALOG | |||
| DigStim, источник цифрового сигнала для StmEd | ![]() | REFDES=DSTM? TEMPLATE=U^@REFDES STIM(%#*OUT,0) %PWR %GND %*OUT @IOMODEL STIMULUS=@STIMULUS STIMULUS= IOMODEL=IO_STIM STIMTYPE=DIGITAL ipin(PWR)$G_DPWR ipin(GND)=$G_DGND | |||
| DigClock, источник цифрового сигнала | ![]() | REFDES=DSTM? TEMPLATE=U^@REFDES STIM(1,1) %PWR %GND %1 @IO_MODEL IO_LEVEL=@IO_LEVEL\n+ 0 @STARTVAL\n+ LABEL=START\n+ +?DELAY/ /@OFFTIME/ @OPPVAL\n+ +@ONTIME @STARTVAL\n+ +@OFFTIME goto START-1 times DELAY= – задержка ONTIME=.5uS OFFTIME=.5uS STARTVAL=0 OPPVAL=1 IO_MODEL=IO_STM IO_LEVEL=0 ipin(PWR)$G_DPWR ipin(GND)=$G_DGND | |||
| FileStim, источник цифрового сигнала, записанного в файле | ![]() | REFDES=DSTM? TEMPLATE=U^@REFDES FSTIM(%#*1) %PWR %GND %*1 @IO_MODEL FILE=“@FileName” IO_LEVEL=@IO_LEVEL ?SigName/SIGNAMES=@SigName/ IO_MODEL=IO_STM IO_LEVEL=0 FileName= – имя файла библиотеки сигналов SigName= – имя сигнала ipin(PWR)$G_DPWR ipin(GND)=$G_DGND | |||
| IAC, простой источник тока в режимах AC, DC | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC| ?AC|AC @AC| DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области | |||
| IDC, источник постоянного тока (режим DC) | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC| DC=0A – постоянная составляющая напряжения | |||
| IEXP, экспоненциальный источник тока | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC|\n +EXP @I1 @I2 #TD1 /@TD1/ #TC1/@TC1/ #TD2/@TD2/ #TC2/@TC2/ DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области I1= – минимальный ток I2= – максимальный ток TD1= – задержка TC1= – постоянная времени переднего фронта TD2= – начало заднего фронта TC2= – длительность импульса | |||
| IPULSE, импульсный источник тока | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC|\n +PULSE @I1 @I2 #TD /~TD/ 0/ #TR/@TR/ #TF1/@TF/ #PW/@PW/ #PER/@PER/ DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области I1= – минимальный ток I2= – максимальный ток TD= – задержка TR= – длительность переднего фронта TF= – длительность заднего фронта PW= – длительность импульса PER= – период повторения | |||
| IPWL_ENH, улучшенный кусочно-линейный источник тока | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC| PWL ?TSF|TIME_SCALE_FACTOR=@TSF| ?VSF|VALUE_SCALE_FACTOR=@VSF| ?REPEAT_VALUE|\n+ REPEAT @REPEAT_VALUE|\n+ @FIRST_nPAIRS ?SECOND_nPAIRS|\n+ @SECOND_nPAIRS ?THIRD_nPAIRS|\n+ THIRD_nPAIRS/| ?REPEAT_VALUE|\n+ ENDREPEAT| DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области TSF= – масштабный множитель по времени VSF= – масштабный множитель по уровню FIRST_nPAIRS= – первые n точек отсчета SECOND_nPAIRS= – вторые n точек отсчета THIRD_nPAIRS= – третьи n точек отсчета REPEAT_VALUE= – количество циклов | |||
| IPWL_FILE, кусочно-линейный источник тока, заданный в файле | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC| PWL ?TSF|TIME_SCALE_FACTOR=@TSF| ?VSF|VALUE_SCALE_FACTOR=@VSF| ?REPEAT_VALUE| FILE “@FILE” ?REPEAT_VALUE|\n+ ENDREPEAT| DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области TSF=– масштабный множитель по времени VSF= – масштабный множитель по уровню FILE= – имя файла REPEAT_VALUE=– количество циклов | |||
| IPWL, кусочно-линейный источник тока | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC| PWL @T1 @I1 @T2 @I2 . . . @T8 @I8 DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области T1= – первый момент времени I1= – первый отсчет тока T2=– второй момент времени I2= . . . . . T8= – восьмой момент времени I8= – восьмой отсчет тока | |||
| ISFFM, источник тока с синусоидальной частотной модуляцией | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC|\n+ SFFM @IOFF @IAMPL @FC @MOD @FM DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области IOFF= – постоянная составляющая тока IAMPL= – амплитуда тока FC= – центральная частота MOD= – индекс частотной модуляции FM= – частота модуляции | |||
| ISIN, источник синусоидального тока | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC|\n+ SIN @IOFF @IAMPL @FREQ #TD/@TD/ #DF/@DF/ #PHASE/@PHASE/ DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области IOFF= постоянная составляющая тока IAMPL= – амплитуда тока FREQ= – частота TD= – задержка DF= – коэффициент затухания PHASE= – начальная фаза | |||
| ISRC, простой источник тока для режимов AC, DC; может быть задана спецификация для режима TRAN | ![]() | REFDES=I? TEMPLATE=I^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC| ?TRAN|TRAN @TRAN| DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области TRAN= – имя и параметры сигнала | |||
| STIM1, цифровой сигнал (1 разряд) | ![]() | REFDES=DSTIM? TEMPLATE=U^@REFDES STIM(@WIDTH,@FORMAT)\n+ @DIG_PWR @DIG_GND\n+ %PIN1\n+ @IO_MODEL\n+ IO_LEVEL=@IO_LEVEL\n+ ?TIMESTEP|TIMESTEP=@TIMESTEP\n+| ?COMMAND1| @COMMAND1 |#COMMAND2|\n+ @COMMAND2| . . . @COMMAND16| TIMESTEP= – интервал дискретизации COMMAND1=0s 0 COMMAND2= COMMAND3= . . . . . . . . . . COMMAND16= DIG_PWR= $G_DPWR DIG_GND=$G_DGND IO_MODEL=IO_STM IO_LEVEL=0 WIDTH=1 FORMAT=1 | |||
| STIM4, 4-разрядный цифровой сигнал | ![]() | REFDES=DSTIM? TEMPLATE=U^@REFDES STIM(@WIDTH,@FORMAT)\n+ @DIG_PWR @DIG_GND\n+ %PIN0 %PIN1 %PIN2 %PIN3\n+ @IO_MODEL\n+ IO_LEVEL=@IO_LEVEL\n+ ?TIMESTEP|TIMESTEP=@TIMESTEP\n+| ?COMMAND1| @COMMAND1 |#COMMAND2|\n+ @COMMAND2| . . . @COMMAND16| TIMESTEP= – интервал дискретизации COMMAND1=0s 0000 COMMAND2= COMMAND3= . . . . . . . . . . COMMAND16= DIG_PWR= $G_DPWR DIG_GND=$G_DGND IO_MODEL=IO_STM IO_LEVEL=0 WIDTH=4 FORMAT=1111 | |||
| STIM8, 8-разрядный цифровой сигнал | ![]() | REFDES=DSTIM? TEMPLATE=U^@REFDES STIM(@WIDTH,@FORMAT)\n+ @DIG_PWR @DIG_GND\n+ %PIN0 %PIN1 %PIN2 ...%PIN7\n+ @IO_MODEL\n+ IO_LEVEL=@IO_LEVEL\n+ ?TIMESTEP|TIMESTEP=@TIMESTEP\n+| ?COMMAND1| @COMMAND1 |#COMMAND2|\n+ @COMMAND2| . . . @COMMAND16| TIMESTEP= – интервал дискретизации COMMAND1=0s 00000000 COMMAND2= COMMAND3= . . . . . . . . . . COMMAND16= DIG_PWR= $G_DPWR DIG_GND=$G_DGND IO_MODEL=IO_STM IO_LEVEL=0 WIDTH=8 FORMAT=11111111 | |||
| STIM16, 16-разрядный цифровой сигнал | ![]() | REFDES=DSTIM? TEMPLATE=U^@REFDES STIM(@WIDTH,@FORMAT)\n+ @DIG_PWR @DIG_GND\n+ %PIN0 %PIN1 %PIN2 ...%PIN15\n+ @IO_MODEL\n+ IO_LEVEL=@IO_LEVEL\n+ ?TIMESTEP|TIMESTEP=@TIMESTEP\n+| ?COMMAND1| @COMMAND1 |#COMMAND2|\n+ @COMMAND2| . . . @COMMAND16| TIMESTEP= – интервал дискретизации COMMAND1=0s 0000 COMMAND2= COMMAND3= . . . . . . . . . . COMMAND16= DIG_PWR= $G_DPWR DIG_GND=$G_DGND IO_MODEL=IO_STM IO_LEVEL=0 WIDTH=16 FORMAT=4444 | |||
| VEXP, экспоненци-альный источник напряжения | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC|\n +EXP @V1 @V2 #TD1 /@TD1/ #TC1/@TC1/ #TD2/@TD2/ #TC2/@TC2/ DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области V1= – минимальное напряжение V2= – максимальное напряжение TD1= – задержка TC1= – постоянная времени переднего фронта TD2= – начало заднего фронта TC2= – длительность импульса | |||
| VPULSE, импульсный источник напряжения | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC|\n +PULSE @V1 @V2 #TD /~TD/ 0/ #TR/@TR/ #TF1/@TF/ #PW/@PW/ #PER/@PER/ DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области V1= – минимальное напряжение V2= – максимальное напряжение TD= – задержка TR= – длительность переднего фронта TF= – длительность заднего фронта PW= – длительность импульса PER= – период повторения | |||
| VPWL_ENH, улучшенный кусочно-линейный источник напряжения | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC| PWL ?TSF|TIME_SCALE_FACTOR=@TSF| ?VSF|VALUE_SCALE_FACTOR=@VSF| ?REPEAT_VALUE|\n+ REPEAT @REPEAT_VALUE|\n+ @FIRST_nPAIRS ?SECOND_nPAIRS|\n+ @SECOND_nPAIRS ?THIRD_nPAIRS|\n+ THIRD_nPAIRS/| ?REPEAT_VALUE|\n+ ENDREPEAT| DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области TSF= – масштабный множитель по времени VSF= – масштабный множитель по уровню FIRST_nPAIRS= – первые n точек отсчета SECOND_nPAIRS= – вторые n точек отсчета THIRD_nPAIRS= – третьи n точек отсчета REPEAT_VALUE= – количество циклов | |||
| VPWL_FILE, кусочно-линейный источник напряжения, заданный в файле | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC| PWL ?TSF|TIME_SCALE_FACTOR=@TSF| ?VSF|VALUE_SCALE_FACTOR=@VSF| ?REPEAT_VALUE| FILE “@FILE” ?REPEAT_VALUE|\n+ ENDREPEAT| DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области TSF=– масштабный множитель по времени VSF= – масштабный множитель по уровню FILE= – имя файла REPEAT_VALUE=– количество циклов | |||
| VPWL, кусочно-линейный источник напряжения | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC| PWL @T1 @V1 @T2 @V2 . . . @T8 @V8 DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области T1= – первый момент времени V1= – первый отсчет напряжения T2= – второй момент времени V2= – второй отсчет напряжения . . . . . T8= – восьмой момент времени V8= – восьмой отсчет напряжения | |||
| VSFFM, источник напряжения с синусоидальной частотной модуляцией | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC|\n+ SFFM @VOFF @VAMPL @FC @MOD @FM DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области VOFF= – постоянная составляющая напряжения VAMPL= – амплитуда напряжения FC= – центральная частота MOD= – индекс частотной модуляции FM= – частота модуляции | |||
| VSIN, источник синусои- дального напряжения | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC|\n+ SIN @VOFF @VAMPL @FREQ #TD/@TD/ #DF/@DF/ #PHASE/@PHASE/ DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области VOFF= – постоянная составляющая напряжения VAMPL= – амплитуда напряжения FREQ= – частота TD= – задержка DF= – коэффициент затухания PHASE= – начальная фаза | |||
| VSRC, простой источник напряжения для режимов AC, DC; может быть задана спецификация для режима TRAN | ![]() | REFDES=V? TEMPLATE=V^@REFDES %+ %- ?DC|DC @DC|?AC|AC @AC| ?TRAN|TRAN @TRAN| DC=0A – постоянная составляющая напряжения AC= 0A – амплитуда напряжения при анализе в частотной области TRAN= – имя и параметры сигнала |
Библиотека SPECIAL.SLB
| Имя, назначение | Символ | Атрибуты | |||
| CD4000_PWR, источник питания CD4000 | ![]() | REFDES=X? PART=CD4000_PWR MODEL=CD4000_PWR TEMPLATE=X^@REFDES %AGND %VDD %VSS @MODEL PARAMS:VOLTAGE=@VOLTAGE REFERENCE=@REFERENCE VOLTAGE=5V REFERENCE=0V IPIN(AGND)=0 ipin(VDD)= ipin(VSS)=
| | ||
| DIGIFPWR, источник питания аналого-цифрового интерфейса | ![]() | REFDES=X? PART=DIGIFPWR MODEL= DIGIFPWR TEMPLATE=X^@REFDES %AGND %PWR %GND @MODEL PARAMS:VOLTAGE=@VOLTAGE REFERENCE=@REFERENCE VOLTAGE=5V REFERENCE=0V IPIN(AGND)=0 ipin(PWR)= ipin(GND)=
| | ||
| ECL_100K_PWR, источник питания аналого-цифрового интерфейса c ЭС– логикой | ![]() | REFDES=X? PART=DECL_100K_PWR MODEL= DECL_100K_PWR TEMPLATE=X^@REFDES %AGND %VEE %VCC1 %VCC2 %VTT @MODEL PARAMS:VEE=@VEE VCC1=@VCC1 VCC2=@VCC2 VTT=@VTT VEE=-4.5V VCC1=0V VCC2=0V VTT=-2V IPIN(AGND)=0 ipin(VEE)= ipin(VCC1)= ipin(VCC2)= ipin(VTT)=
| | ||
| ECL_10K_PWR, источник питания аналого-цифрового интерфейса c ЭС–логикой | ![]() | REFDES=X? PART=DECL_10K_PWR MODEL= DECL_10K_PWR TEMPLATE=X^@REFDES %AGND %VEE %VCC1 %VCC2 %VTT @MODEL PARAMS:VEE=@VEE VCC1=@VCC1 VCC2=@VCC2 VTT=@VTT VEE=-5.2V VCC1=0V VCC2=0V VTT=-2V IPIN(AGND)=0 ipin(VEE)= ipin(VCC1)= ipin(VCC2)= ipin(VTT)=
| | ||
| IC1, назначение начального значения потенциала узла | ![]() | REFDES=IC? VALUE=0 TEXT=IC= TEMPLATE=.IC V([%+])=@VALUE | |||
| IC2, назначение начального значения разности потенциалов двух узлов | ![]() | REFDES=IC? VALUE=0 TEXT=IC= TEMPLATE=.IC V(%+,%-)=@VALUE | |||
| IPROBE, измеритель тока ветви | ![]() | REFDES=V? BIASVALUE= TEXT=IC= TEMPLATE=V^@REFDES %+ %_ 0 | |||
| NODESET1, начальное приближение потенциала узла | ![]() | REFDES=NS? VALUE=0 TEXT=NODESET= TEMPLATE=.NODESET V([ %+]) =@VALUE | |||
| NODESET2, начальное приближение разности потенциалов двух узлов | ![]() | REFDES=NS? VALUE=0 TEXT=NODESET= TEMPLATE=.NODESET V( %+,%-) =@VALUE | |||
| OPTPARAM, спецификация от 1 до 8 оптимизируемых параметров | ![]() | REFDES=PM? NAME1= – имя 1-го параметра ENABLE=Y – разрешение вариации 1-го параметра INITIAL1= – начальное значение 1-го параметра CURVAL1= – текущее значение 1-го параметра LOVAL1= – минимальное значение 1-го параметра HIVAL1= – максимальное значение 1-го параметра TOL1= – разброс 1-го параметра NAME2= – имя 2-го параметра . . . . . TOL8= – разброс 8-го параметра | |||
| PARAM, спецификация от 1 до 3 предварительно задаваемых параметров | ![]() | REFDES=PM? TEMPLATE=.PARAM @NAME1=@VALUE1 #NAME2/@NAME2=@VALUE2/ ?NAME3/@NAME3=@VALUE3/ NAME1= – имя 1-го параметра VALUE1= – значение 1-го параметра NAME2= – имя 2-го параметра VALUE2= – значение 2-го параметра NAME3= – имя 3-го параметра VALUE3= – значение 3-го параметра | |||
| PRINT1, вывод на печать по директиве .PRINT потенциала одного узла | ![]() | REFDES=PRINT? ANALYSIS= TEMPLATE=.PRINT ?ANALYSIS|@ANALYSIS|~ANALYSIS |TRAN| V([%1]) | |||
| PRINTDGTLCHG, вывод на печать по директиве .PRINT выходной переменной цифрового устройства | ![]() | REFDES=PRINT? ANALYSIS= TEMPLATE=.PRINT/DGTLCHG ?ANALYSIS|@ANALYSIS|~ANALYSIS |TRAN| %1 | |||
| UNKNOWN, неизвестный символ | ![]() | REFDES=*?? TEMPLATE=*X^@refdes is a result of an unknown symbol | |||
| VECTOR, векторный маркер для сохранения состояний цифровых узлов | ![]() | REFDES=VEC? TEMPLATE=.VECTOR %#*1 ?FILE=“FILE” ?POS/POS=@POS/ ?RADIX/RADIX=@RADIX/ ?SIGNAMES/SIGNAMES=@SIGNAMES/ ?BIT/BIT=@BIT/ POS= FILE= RADIX= BIT= SIGNAMES= | |||
| VIEWPOINT, точка просмотра напряжения | ![]() | BIASVALUE= | |||
| WATCH1, метка переменной, включаемой в директиву .WATCH (1-я форма) | ![]() | REFDES=WATCH? TEMPLATE=.WATCH ?ANALYSIS|@ANALYSIS| ~ANALYSIS |TRAN| V([%1]) ?LO|@LO,@HI| ANALYSIS= LO= HI= | |||
| VPRINT1, вывод потенциала узла по директиве .PRINT | ![]() | REFDES=PRINT? TEMPLATE=~AC|~DC/~TRAN! ?PRINT*\n @PRINT* TRAN V([%1])!/ |?TRAN| ?PRINT/\n @PRINT/DC V([%1])| ?AC/?PRINT|AC ?MAG|\n+ VM([%1])| ?PHASE|\n+ VP([%1])| . . . PART=VPRINT1 PRINT=.PRINT DC= AC= TRAN= MAG= PHASE= REAL= IMAG= DB= | |||
| VPRINT2, вывод разности потенциалов узлов по директиве .PRINT | ![]() | REFDES=PRINT? TEMPLATE=~AC|~DC/~TRAN! ?PRINT*\n @PRINT* TRAN V([%1],[%2])!/ |?TRAN| ?PRINT/\n @PRINT/DC V([%1],[%2])| ?AC/?PRINT|AC ?MAG|\n+ VM([%1],[%2])| ?PHASE|\n+VP([%1])|... PART=VPRINT2 PRINT=.PRINT DC= AC= TRAN= MAG= PHASE= REAL= IMAG= DB= | |||
| VPLOT1, вывод потенциала узла по директиве .PLOT | ![]() | REFDES=PLOT? TEMPLATE=~AC|~DSC/~TRAN! ?PRINT*\n @PRINT* TRAN V([%1])!/ |?TRAN| ?PRINT/\n @PRINT/DC V([%1])| ?AC/?PRINT|AC ?MAG|\n+ VM([%1])| ?PHASE|\n+ VP([%1])| . . . PART=VPLOT1 PRINT=.PLOT DC= AC= TRAN= MAG= PHASE= REAL= IMAG= DB= | |||
| IPRINT, вывод тока ветви по директиве .PRINT | ![]() | REFDES=PRINT? TEMPLATE=V^@REFDES %1 %2 0V\n ~AC|~DC/~TRAN! ?PRINT*\n @PRINT* TRAN I(V^@REFDES)!/ |?TRAN| ?PRINT/\n @PRINT/DC I(V^@REFDES)| ?AC/?PRINT|AC ?MAG|\n+ IM(V^@REFDES)| ?PHASE|\n+ IP(V^@REFDES)| . . . PART=IPRINT PRINT=.PRINT DC= AC= TRAN= MAG= PHASE= REAL= IMAG= DB= | |||
| IPLOT, вывод тока ветви по директиве .PLOT | ![]() | REFDES=PLOT? TEMPLATE=V^@REFDES %1 %2 0V\n ~AC|~DC/~TRAN! ?PRINT*\n @PRINT* TRAN I(V^@REFDES)!/ |?TRAN| ?PRINT/\n @PRINT/DC I(V^@REFDES)| ?AC/?PRINT|AC ?MAG|\n+ IM(V^@REFDES)| ?PHASE|\n+ IP(V^@REFDES)| . . . PART=IPLOT PRINT=.PLOT DC= AC= TRAN= MAG= PHASE= REAL= IMAG= DB= | |||
| INCLUDE, задание имени файла, включаемого в задание на моделирование | ![]() | REFDES=IN? TEMPLATE=.INCLUDE “@FILENAME” FILENAME= – имя подключаемого файла | |||
| LIB, задание имени просматривае-мых библиотечных файлов | ![]() | REFDES=LIB? TEMPLATE=.LIB “@FILENAME” FILENAME= – имя файла библиотеки математических моделей | |||
| TITLEBLK, основная надпись на принци-пиальных схемах (может быть русифицирована) | ![]() | Revision= PageTitle=Mixed Analog/Digital PageNO=1 PageCount=1 PageSize=A CompanyName=MicroSim Corporation Line1=20 Fairbanks Line2=Irvine, CA 92718 Line3=714-770-3022 RevText=Revision: Date=January 1, 2000 PageText=Page of SizeText=Page Size: |
ПРИЛОЖЕНИЕ 2. СООБЩЕНИЯ ПРОГРАММЫ PSpice
Приведем краткую сводку важнейших сообщений программы PSpice и их перевод.
Информационные сообщения
Bias point calculated – завершен расчет режима по постоянному току.
Calculating bias point – рассчитывается режим по постоянному току.
Calculating of DC (AC, Transient) finished – завершен расчет передаточных функций по постоянному току (расчет в частотной области, переходных процессов).
Circuit has errors ... run aborted, see output file for details – в схеме имеются ошибки, выполнение программы прекращено, см. подробности в выходном файле с расширением .OUT.
Computing impulse response for <...> is non-causal. It should be delayed by at least <...> sec – в указанном компоненте не выполняется принцип причинности; необходимо ввести задержку не менее чем на <...> секунд.
Library file has changed since index file was created – после создания индексного файла файл библиотеки изменился.
Making new index file for library file – создание индексного файла для библиотечного файла.
No errors – в схеме нет ошибок.
Only xx columns can be printed at one listing – на одном листе можно печатать только xx
колонок.
PSpice aborted – выполнение программы PSpice прекращено.
Reading and checking circuit – чтение входного файла и проверка схемы.
This evaluation copy of xxx has past its expiration date – просрочено время пользования демонстрационной (evaluation) версией.
Two library files used by this circuit have the same index file – два файла библиотеки имеют один и тот же индексный файл.
Ошибки при моделировании
All terminals are grounded in the circuit – в схеме заземлены выводы всех компонентов.
Bad characters in func name – неверный символ в имени функции.
Bad digital data format – неверен формат цифровых данных.
Bad logic state – неверное логическое состояние.
Bad expression – ошибочное выражение.
Can't find parameter index – не найден индекс параметра.
Can' t use LIST with DEC or OCT sweeps – при вариации в масштабе DEC или OCT ключевое слово LIST недопустимо.
Character 'xx' not allowed – указанные символы недопустимы.
Convergence problem in Power supplies cut back to ... – возникла проблема сходимости режима по постоянному току при наращивании напряжения питания.
Coupling coefficient out of range: 0
CPU Time limit exceeded – превышено ограничение на время работы центрального процессора.
Duplicate Name: xx – указанное имя компонента встречается дважды.
Expression must fit on one line – выражение должно размещаться на одной строке.
Expression too complicated – выражение очень сложное.
File name too long – имя файла слишком длинное.
Filter order too high – порядок фильтра очень большой.
Func expansion too large – выражение функции очень велико.
Illegal name to func – недопустимое имя функции.
Invalid analysis type – неверен тип анализа.
Invalid global parameter name – неверное имя глобального параметра.
Invalid filter type – неверен тип фильтра.
Invalid Range – неверен диапазон.
Invalid Option – неверна опция.
Laplace expression for filter too large – выражение для передаточной функции фильтра слишком длинное.
Less then 2 connection at node xx – к указанному узлу подключено менее двух компонентов.
Less than two states defined for DINPUT model – в модели DINPUT указано менее двух логических состояний.
Missing or missmatched ( ) – пропущены или не согласованы скобки.
Model type unknown – тип модели неизвестен.
Must be 'I' or 'V' – должен быть компонент типа I или V.
Must be a voltage source name – должно быть имя источника напряжения.
Mutual inductance out of range – недопустимое значение взаимной индуктивности.
No model had tolerances (.MC or .WCASE ignored) – режимы .MC или .WCASE игнорируются, так как ни в одной модели компонента не указан разброс параметров.
No more than 10 args allowed – недопустимо более 10 аргументов.
Node xx is not present in the circuit file – в схеме отсутствует узел с указанным именем.
Node xx is floating -–указанный узел “плавающий”.
Node Table Overflow – таблица узлов переполнена.
Not valid for .WCASE (.MC) – не может использоваться при наличии директивы .WCASE (.MC).
Number of harmonics must be less then xx
– количество гармоник превышает указанный предел.
Only A-Z permitted – разрешены только символы A–Z.
Only one circuit allowed per file xx when using Parallel Analog/Digital Simulation – при выполнении аналого-цифрового моделирования во входном файле может быть описание только одной схемы.
Only one .PROBE and .PROBE/CSDF allowed per circuit file – в файле схемы может быть только одна директива .PROBE или .PROBE/CSDF.
Only one .TEMP value allowed with .STEP – при наличии директивы .STEP в директиве .TEMP можно указать значение только одной температуры.
Pivot not in DC – при итерационном расчете режима по постоянному току нет ведущего элемента при решении системы линейных уравнений.
Resistor has zero value – резистор имеет нулевое сопротивление.
Symbol Table Overflow – таблица символов переполнена.
Subcircuits xx is undefined – указанная подсхема не определена.
Text value must fit on one line – текстовая переменная должна размещаться на одной строке.
Time must not be negative – время должно быть положительным.
Time must be increasing – время должно увеличиваться.
The circuit matrix is singular and can't be solved. The diagonal entry fit xx is 0 – не может быть найдена обратная матрица для сингулярной матрицы схемы. Диагональный элемент матрицы равен нулю.
There are no devices in this circuit – в схеме нет компонентов.
Too many inductors – слишком много индуктивностей.
Too many parameters (limit=49) – слишком много параметров (максимальное значение равно 49).
Too many PWL corners – в описании функции PWL слишком много точек излома.
Transient Analysis must be at least 1/frequency second long.
Fourier analysis aborted – длительность переходного процесса должна быть по крайней мере больше периода первой гармоники спектра. Преобразование Фурье невозможно.
Transfer function too complicated – передаточная функция очень сложная.
Unable to finish bias point calculation (DC Analyses, AC Analyses, Transient Analyses) – невозможно завершить расчет по постоянному току (или другие виды анализа).
Unable to create mailbox to communicate with digital simulator – невозможно создать буферный блок для передачи данных цифровому моделировщику.
Undefined parameter – неопределенный параметр.
Value may not be 0 – значение не может быть равным нулю.
Values must be monotonic increasing – значения должны увеличиваться монотонно.
Voltage loop involving <имя компонента> – указанный компонент входит в состав контура из источников напряжения (см. ниже).
Voltage source and/or inductor loop involving. You may break the loop by addind a series resistance – источники напряжения и/или индуктивности образуют замкнутый контур. Его можно разорвать включением последовательного сопротивления.
ПРИЛОЖЕНИЕ 3. ВЫХОДНОЙ ФАЙЛ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ
Приведем основные фрагменты выходного файла band.out из примера разд. 3.4.1. В начале повторяется содержание файлов задания на моделирование, которое здесь опустим, а далее приведена информация о моделях компонентов и результаты моделирования.
BANDPASS FILTER
(Заглавие схемы)
**** RESISTORS (модели всех резисторов)
NAME NODES MODEL VALUE TC1 TC2 TCE
(Имя) (Узлы) (Модель) (Значение) (Температурные коэффициенты)
RG IN 10 1.00E+03
R1 2 1 MRES 4.50E+03 1.00E-02 0.00E+00 0.00E+00
R2 1 0 MRES 1.30E+03 1.00E-02 0.00E+00 0.00E+00
R3 2 3 1.00E+02
R4 4 0 MRES 2.00E+02 1.00E-02 0.00E+00 0.00E+00
RK1 5 0 2.31E+03
RK2 6 0 2.31E+03
RLOAD 9 0 1.00E+02
**** INDEPENDENT SOURCES (независимые источники)
NAME NODES DC VALUE AC VALUE AC PHASE
(Имя) (Узлы) (Режим DC) (Режим AC, модуль и фаза)
VS 2 0 6.00E+00 0.00E+00 0.00E+00 degrees
VIN 10 0 0.00E+00 1.00E+00 0.00E+00 degrees
TRANSIENT: SIN
(Переходные процессы, источник типа SIN)
Offset 0.00E+00 (Постоянная составляющая)
Amplitude 5.00E-02 (Амплитуда)
Freq 3.60E+07 (Частота)
Delay 0.00E+00 (Задержка)
Damping 0.00E+00 (Затухание)
Phase 0.00E+00 (Начальная фаза)
**** BIPOLAR JUNCTION TRANSISTORS (биполярные транзисторы)
NAME C B E S MODEL AREA
Q1 3 1 4 0 KT315A 1.00E+00
**** TEMPERATURE-ADJUSTED VALUES TEMPERATURE = -37.000 DEG C
(Температурно-зависимые параметры, температура -37

**** RESISTORS (резисторы)
NAME VALUE
(Имя) (Сопротивление)
R1 1.620E+03
R2 4.680E+02
R4 7.200E+01
**** BJT MODEL PARAMETERS (параметры модели биполярного транзистора)
NAME BF ISE VJE CJE RE RB
BR ISC VJC CJC RC RBM
IS ISS VJS CJS
KT315A 3.83E+01 4.14E-12 8.58E-01 8.06E-12 0.00E+00 0.000E+00
4.50E-01 0.00E+00 8.58E-01 1.60E-11 0.00E+00 0.00E+00
1.22E-20 0.00E+00 8.58E-01 0.00E+00
**** CURRENT MODEL PARAMETERS FOR DEVICES REFERENCING MRES
R1 R2 R4
R 1.0000E+00 1.0000E+00 1.0000E+00
**** DC TRANSFER CURVES TEMPERATURE = -37.000 DEG C
MONTE CARLO NOMINAL
(Передаточная функция по постоянному току при номинальных значениях случайных параметров)
VS V(1,4) I(R3) IB(Q1)
5.000E-01 1.121E-01 1.361E-12 3.817E-11
5.500E+00 8.253E-01 4.088E-03 2.600E-04
1.050E+01 8.596E-01 1.488E-02 9.709E-04
1.550E+01 8.752E-01 2.470E-02 1.885E-03
2.050E+01 8.854E-01 3.368E-02 2.953E-03
**** SMALL SIGNAL BIAS SOLUTION TEMPERATURE = -37.000 DEG C
MONTE CARLO NOMINAL
(Карта узловых потенциалов по постоянному току)
NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE
(Имя) (Напряжение) (Имя) (Напряжение) (Имя) (Напряжение) (Имя) (Напряжение)
( 1) 1.2284 ( 2) 6.0000 ( 3) 5.4803 ( 4) .3973
( 5) 0.0000 ( 6) 0.0000 ( 9) 0.0000 ( 10) 0.0000
( IN) 0.0000
VOLTAGE SOURCE CURRENTS (Токи источников напряжения)
NAME CURRENT
(Имя) (Ток)
VS -8.142E-03
VIN 0.000E+00
TOTAL POWER DISSIPATION 4.89E-02 WATTS
(Общая потребляемая мощность)
**** SMALL-SIGNAL CHARACTERISTICS
(Малосигнальные характеристики)
V(3)/VS = 7.781E-01 (Передаточная функция)
INPUT RESISTANCE AT VS = 3.669E+02 (Входное сопротивление)
OUTPUT RESISTANCE AT V(3) = 1.000E+02 (Выходное сопротивление)
**** DC SENSITIVITY ANALYSIS TEMPERATURE = -37.000 DEG C
MONTE CARLO NOMINAL
(Функция чувствительности по постоянному току)
DC SENSITIVITIES OF OUTPUT VBE(Q1) (Чувствительность выходного напряжения VBE(Q1) по постоянному току)
ELEMENT ELEMENT ELEMENT NORMALIZED
NAME VALUE SENSITIVITY SENSITIVITY
(VOLTS/UNIT) (VOLTS/PERCENT)
(Имя (Значение (Чувствительность, (Нормированная
элемента) параметра) В/ед. изм.) чувствительность, В/%)
RG 1.000E+03 0.000E+00 0.000E+00
R1 1.620E+03 -3.132E-05 -5.073E-04
. . .
VS 6.000E+00 1.063E-02 6.376E-04
VIN 0.000E+00 0.000E+00 0.000E+00
Q1
RB 3.000E+00 1.516E-04 4.549E–06
BF 3.838E+01 9.363E-05 3.594E–05
. . .
**** AC ANALYSIS TEMPERATURE = -37.000 DEG C
MONTE CARLO NOMINAL
(Расчет уровня внутреннего шума)
FREQ INOISE ONOISE
(Частота) (Вх. шум) (Вых. шум)
1.600E+07 5.514E-08 1.490E-10
1.700E+07 4.943E-08 1.632E-10
1.800E+07 4.449E-08 1.790E-10
. . .
*** OPERATING POINT INFORMATION TEMPERATURE = -37.000 DEG C
MONTE CARLO NOMINAL
**** BIPOLAR JUNCTION TRANSISTORS
(Параметры линеаризованной модели транзистора)
NAME Q1
MODEL KT315A
IB .21E-04
IC 5.20E-03
VBE 8.31E-01
VBC -4.25E+00
VCE 5.08E+00
BETADC 1.62E+01
GM 2.09E-01
RPI 8.61E+01
RX 0.00E+00
RO 6.40E+05
CBE 2.26E-10
CBC 8.85E-12
CBX 0.00E+00
CJS 0.00E+00
BETAAC 1.80E+01
FT 1.41E+08
**** FOURIER ANALYSIS TEMPERATURE = -37.000 DEG C
MONTE CARLO NOMINAL
(Спектральный анализ)
FOURIER COMPONENTS OF TRANSIENT RESPONSE V(9)
(Спектральные компоненты напряжения V(9))
DC COMPONENT = 3.065800E-06
(Постоянная составляющая)
HARMONIC FREQUENCY FOURIER NORMALIZED PHASE NORMALIZED
NO (HZ) COMPONENT COMPONENT (DEG) PHASE (DEG)
(Номер (Частота, (Амплитуда (Нормирован- (Фаза, (Нормированная
гармоники) Гц) спектра) ная амплитуда) град.) фаза, град.)
1 3.600E+07 6.503E-03 1.000E+00 -4.969E+00 0.000E+00
2 7.200E+07 1.036E-05 1.593E-03 1.152E+02 1.202E+02
3 1.080E+08 1.180E-05 1.814E-03 8.382E+01 8.878E+01
4 1.440E+08 6.456E-06 9.928E-04 1.879E+01 2.376E+01
5 1.800E+08 1.321E-05 2.031E-03 2.880E+01 3.376E+01
6 2.160E+08 3.721E-06 5.723E-04 4.638E+01 5.135E+01
7 2.520E+08 4.957E-06 7.622E-04 -1.222E+02 -1.172E+02
8 2.880E+08 1.244E-06 1.912E-04 1.641E+02 1.691E+02
9 3.240E+08 3.742E-06 5.754E-04 -8.227E-01 - 4.146E+00
TOTAL HARMONIC DISTORTION = 3.495378E-01 PERCENT
(Коэффициент гармоник, %)
**** SORTED DEVIATIONS OF V(9) TEMPERATURE = -37.000 DEG C
MONTE CARLO SUMMARY
(Статистический анализ напряжения V(9))
Mean Deviation = 583.8000E-06 (Среднее значение)
Sigma = 664.1100E-06 (Среднеквадратичное отклонение)
RUN MAX DEVIATION FROM NOMINAL
(Номер ( Максимальное отклонение от номинального значения)
испытания)
Pass 3 1.6134E-03 (2.43 sigma) higher at F = 30.0000E+06
( 102.66% of Nominal)
Pass 5 600.3200E-06 ( .90 sigma) higher at F = 32.0000E+06
( 100.61% of Nominal)
Pass 2 340.6000E-06 ( .51 sigma) higher at F = 31.0000E+06
( 100.43% of Nominal)
Pass 4 219.1200E-06 ( .33 sigma) lower at F = 32.0000E+06
( 99.779% of Nominal)
JOB CONCLUDED (Задание завершено)
**** JOB STATISTICS SUMMARY
(Статистика выполнения задания)
NUNODS NCNODS NUMNOD NUMEL DIODES BJTS JFETS MFETS GASFETS
10 10 10 21 0 1 0 0 0
NDIGITAL NSTOP NTTAR NTTBR NTTOV IFILL IOPS PERSPA
0 15 42 45 41 3 76 80.000
NUMTTP NUMRTP NUMNIT DIGTP DIGEVT DIGEVL MEMUSE
1353 467 4566 0 0 0 74296
SECONDS ITERATIONS
(Время, с) (Число итераций)
MATRIX SOLUTION .77 16
MATRIX LOAD 5.00
READIN .38
SETUP .06
DC SWEEP .22 106
BIAS POINT .06 56
AC and NOISE .71 41
TRANSIENT ANALYSIS 23.34 4566
OUTPUT 3.24
MONTE CARLO 1.70
OVERHEAD .06
TOTAL JOB TIME 29.77
Биполярный транзистор
В программе PSpice используется схема замещения биполярного транзистора в виде адаптированной модели Гуммеля–Пуна, которая по сравнению с исходной моделью позволяет учесть эффекты, возникающие при больших смещениях на переходах [4, 25, 33, 45, 47, 53]. Эта модель автоматически упрощается до более простой модели Эберса–Молла, если опустить некоторые параметры. Эквивалентные схемы этих моделей для n–p–n-структуры изображены на рис. 4.4. Параметры полной математической модели биполярного транзистора приведены в табл. 4.2.Таблица 4.2
| Имя параметра | Параметр | Значение по умолчанию | Единица измерения | ||||
| IS | Ток насыщения при температуре 27![]() | 10![]() | А | ||||
| BF | Максимальный коэффициент усиления тока в нормальном режиме в схеме с ОЭ (без учета токов утечки) | 100 | |||||
| BR | Максимальный коэффициент усиления тока в инверсном режиме в схеме с ОЭ | 1 | |||||
| NF | Коэффициент неидеальности в нормальном режиме | 1 | |||||
| NR | Коэффициент неидеальности в инверсном режиме | 1 | |||||
| ISE (C2) * | Ток насыщения утечки перехода база–эмиттер | 0 | А | ||||
| ISC (C4) * | Ток насыщения утечки перехода база–коллектор | 0 | А | ||||
| IKF (IK) * | Ток начала спада зависимости BF от тока коллектора в нормальном режиме | ![]() | А | ||||
| IKR* | Ток начала спада зависимости BR от тока эмиттера в инверсном режиме | ![]() | А | ||||
| NE* | Коэффициент неидеальности перехода база–эмиттер | 1,5 | |||||
| NC* | Коэффициент неидеальности коллекторного перехода | 1,5 | |||||
| NK | Коэффициент, определяющий множитель Qb | 0,5 | | ||||
| ISS | Обратный ток p–n-перехода подложки | 0 | A | ||||
| NS | Коэффициент неидеальности перехода подложки | 1 | |||||
| VAF (VA) * | Напряжение Эрли в нормальном режиме | ![]() | В | ||||
| VAR (VB) * | Напряжение Эрли в инверсном режиме | ![]() | В | ||||
| RC | Объемное сопротивление коллектора | 0 | Ом | ||||
| RE | Объемное сопротивление эмиттера | 0 | Ом | ||||
| RB | Объемное сопротивление базы (максимальное) при нулевом смещении перехода база–эмиттер | 0 | Ом | ||||
| RBM* | Минимальное сопротивление базы при больших токах | RB | Ом | ||||
| IRB* | Ток базы, при котором сопротивление базы уменьшается на 50% полного перепада между RB и RBM | ![]() | А | ||||
| TF | Время переноса заряда через базу в нормальном режиме | 0 | с | ||||
| TR | Время переноса заряда через базу в инверсном режиме | 0 | с | ||||
| QCO | Множитель, определяющий заряд в эпитаксиальной области | 0 | Кл | ||||
| RCO | Сопротивление эпитаксиальной области | 0 | Ом | ||||
| VO | Напряжение, определяющее перегиб зависимости тока эпитаксиальной области | 10 | В | ||||
| GAMMA | Коэффициент легирования эпитаксиальной области | 10![]() | - | ||||
| XTF | Коэффициент, определяющий зависимость TF от смещения база–коллектор | 0 | |||||
| VTF | Напряжение, характеризующее зависимость TF от смещения база–коллектор | ![]() | В | ||||
| ITF | Ток, характеризующий зависимость TF от тока коллектора при больших токах | 0 | А | ||||
| PTF | Дополнительный фазовый сдвиг на граничной частоте транзистора ![]() | 0 | град. | ||||
| CJE | Емкость эмиттерного перехода при нулевом смещении | 0 | пФ | ||||
| VJE (PE) | Контактная разность потенциалов перехода база–эмиттер | 0,75 | В | ||||
| MJE (ME) | Коэффициент, учитывающий плавность эмиттерного перехода | 0,33 | |||||
| CJC | Емкость коллекторного перехода при нулевом смещении | 0 | Ф | ||||
| VJC (PC) | Контактная разность потенциалов перехода база–коллектор | 0,75 | В | ||||
| MJC (MC) | Коэффициент, учитывающий плавность коллекторного перехода | 0,33 | |||||
| CJS (CCS) | Емкость коллектор–подложка при нулевом смещении | 0 | Ф | ||||
| VJS (PS) | Контактная разность потенциалов перехода коллектор–подложка | 0,75 | В | ||||
| MJS (MS) | Коэффициент, учитывающий плавность перехода коллектор-подложка | 0 | - | ||||
| XCJC | Коэффициент расщепления емкости база–коллектор | 1 | |||||
| FC | Коэффициент нелинейности барьерных емкостей прямосмещенных переходов | 0,5 | |||||
| EG | Ширина запрещенной зоны | 1,11 | эВ | ||||
| XTB | Температурный коэффициент BF и BR | 0 | | ||||
| XTI(PT) | Температурный коэффициент IS | 3 | | ||||
| TRE1 | Линейный температурный коэффициент RE | 0 | ![]() | ||||
| TRE2 | Квадратичный температурный коэффициент RE | 0 | ![]() | ||||
| TRB1 | Линейный температурный коэффициент RB | 0 | ![]() | ||||
| TRB2 | Квадратичный температурный коэффициент RB | 0 | ![]() | ||||
| TRM1 | Линейный температурный коэффициент RBM | 0 | ![]() | ||||
| TRM2 | Квадратичный температурный коэффициент RBM | 0 | ![]() | ||||
| TRC1 | Линейный температурный коэффициент RC | 0 | ![]() | ||||
| TRC2 | Квадратичный температурный коэффициент RC | 0 | ![]() | ||||
| KF | Коэффициент, определяющий спектральную плотность фликкер–шума | 0 | |||||
| AF | Показатель степени, определяющий зависимость спектральной плотности фликкер–шума от тока через переход | 1 | |||||
| T_MEASURED | Температура измерений | ![]() | |||||
| T_ABS | Абсолютная температура | ![]() | |||||
| T_REL_GLOBAL | Относительная температура | ![]() | |||||
| T_REL_LOCAL | Разность между температурой транзистора и модели-прототипа | ![]() |
* Для модели Гуммеля–Пуна.
Примечания. 1. В круглых скобках в левой графе таблицы указаны альтернативные обозначения параметров. Параметр RB для модели Эберса–Молла имеет смысл объемного сопротивления базы, не зависящего от тока базы. Остальные параметры имеют одинаковый смысл для моделей Эберса–Молла и Гуммеля–Пуна.

![]() ![]() Рис. 4.4. Схема замещения биполярного n–p–n-транзистора: а - модель Гуммеля–Пуна; б - передаточная модель Эберса–Молла |
Статический режим транзистора. Режим описывается следующими соотношениями (см.рис. 4.4, а):
Ib = Ibe1/BF + Ibe2 + Ibc1/BR + Ibc2;
Ic = Ibe1/Qb–Ibc1/Qb–Ibc1/BR–Ibc2;
Ibe1 =IS[exp(Vbe/(NF·Vt)) – 1];
Ibe2 =ISE[exp(Vbe/(NE·Vt)) – 1];
Ibc1 =IS[exp(Vbc/(NR·Vt)) – 1];
Ibc2 =ISC[exp(Vbc/(NC·Vt) – 1];
Qb =Q1[1 + (1 + 4Q2)

Q1=1/(1-Vbc/VAF-Vbe/VAR), Q2=Ibe1/IKF+Ibc1/IKR;
Is =ISS [exp(Vjs/(NS·Vt)) – 1].
На рис 4.4 приняты обозначения: Ib
– ток базы; Ic – ток коллектора; Ibe1 – ток коллектора в нормальном режиме; Ibc1 – ток коллектора в инверсном режиме; Ibe2, Ibc2 – составляющие тока перехода база–эмиттер, вызванные неидеальностью перехода; Is
– ток подложки; Vbe, Vbc
–
напряжения на переходе внутренняя база–эмиттер и внутренняя база–коллектор; Vbs – напряжение внутренняя база–подложка; Vbn – напряжение внутренняя база–подложка для режима квазинасыщения; Vbx – напряжение база–внутренний коллектор; Vce – напряжение внутренний коллектор–внутренний эмиттер; Vjs – напряжение внутренний коллектор–подложка для NPN транзистора, напряжение внутренняя подложка–коллектор для PNP транзистора или напряжение внутренняя база–подложка для LPNP транзистора.
Объемное сопротивление базы Rb
характеризуется двумя составляющими. Первая составляющая RB определяет сопротивление вывода базы и сопротивление внешней области базы, которое не зависит от тока базы Ib. Вторая составляющая RBM характеризует сопротивление активной области базы, находящейся непосредственно под эмиттером; это сопротивление зависит от тока Ib. Объемное сопротивление базы Rb определяется следующими выражениями в зависимости от значения параметра IRB
Rb =

где

Замечание. В программе PSpice токи, втекающие в транзистор, считаются положительными. Поэтому в активном нормальном режиме в n–p–n-структуре (рис. 4.4) Ic>0, Ib>0, Ie<0. Для структуры p–n–p все напряжения и токи имеют противоположный знак.
Динамические свойства переходов. Они учтены включением в модель емкостей коллектора, эмиттера и подложки, которые имеют диффузионные и барьерные составляющие. Емкость перехода база–эмиттер равна сумме диффузионной (Ctbe) и барьерной (Cjbe) составляющих:
Cbe = Ctbe + Cjbe,
где Ctbe = tf·Gbe; Gbe = dIbe/dVbe – дифференциальная проводимость перехода база–эмиттер в рабочей точке по постоянному току;
tf =TF[1+XTF(3x
-2x )exp(Vbc/(1,44VTF))], x=Ibe1/(Ibe1+ITF);

Емкость перехода база-коллектор расщепляется на две составляющие:
емкость между внутренней базой и коллектором Cbc,
Cbc = Ctbc
+ XCJC·Cjbc,
где Cbct = TR·Gbc, Gbc=dIbc1/dVbc;

и емкость между внешним выводом базы и коллектором Cbx,

Емкость коллектор-подложка равна

Режим квазинасыщения. Этот режим характеризуется прямым смещением перехода внутренняя база–коллектор, в то время как переход наружная база–коллектор остается смещенным в обратном направлении. В расширенной модели Гуммеля–Пуна этот эффект моделируется с помощью дополнительного управляемого источника тока Iepi и двух нелинейных емкостей, заряды которых на рис. 4.4,а
обозначены Qo и Qw. Эти изменения вносятся в модель, если задан параметр RCO [59 ]:

где

Температурная зависимость. Эта зависимость параметров элементов эквивалентной схемы биполярного транзистора устанавливается с помощью следующих выражений:
IS(T)=IS·exp[EG(T)/Vt(T) (T/Tnom–1)] (T/Tnom)

ISE(T)=(ISE/ bf)·exp[EG(T)/(NE·Vt(T)) (T/Tnom–1)] (T/Tnom)

ISC(T)=(ISC/ bf)·exp[EG(T)/(NC·Vt(T)) (T/Tnom–1)] (T/Tnom)

ISS(T)=(ISS/bf) ·exp[EG(T)/(NS·Vt(T)) (T/Tnom–1)] (T/Tnom)

BF(T)=BF·bf, BR(T)=BR·bf, bf=(T/Tnom)

RE(T)=RE [1+TRE1(T–Tnom)+TRE2 (T–Tnom)

RB(T)=RB [1+TRB1(T–Tnom)+TRB2 (T–Tnom)

RBM(T)=RBM [1+TRM1(T–Tnom)+TRM2(T–Tnom)

RC(T)=RC[1+TRC1(T–Tnom)+TRC2 (T–Tnom)

VJE(T)=VJE·T/Tnom–3Vt ·ln(T/Tnom) –EG(Tnom) ·T/Tnom+EG(T);
VJC(T)=VJC·T/Tnom–3Vt ·ln(T/Tnom) –EG(Tnom) ·T/Tnom+EG(T);
VJS(T)=VJS·T/Tnom–3Vt ·ln(T/Tnom) –EG(Tnom)·T/Tnom+EG(T);
CJE(T)=CJE{1+MJE [0,0004(T–Tnom)+1–VJE(T)/VJE]};
CJC(T)=CJC{1+MJC [0,0004(T–Tnom)+1–VJC(T)/VJC]};
CJS(T)=CJS{1+MJS [0,0004(T–Tnom)+1–VJS(T)/VJS]};
KF(T)=KF·VJC(T)/VJC, AF(T)=AF·VJC(T)/VJC.
Зависимость EG от температуры описана в разд. 4.2.
Линейная схема замещения биполярного транзистора. Схема приведена на рис. 4.5. В нее дополнительно включены источники флюктуационных токов. Тепловые шумы IшRB, IшRC
и IшRE , создаваемые резисторами Rb, RC и RE, имеют спектральные плотности
S



Источники тока Iшb, Iшc, характеризующие дробовой и фликкер–шумы в цепях базы и коллектора, имеют соответственно спектральные плотности:
Sb = 2qIb
+ KF·Ib


Рис. 4.5. Линейная схема замещения биполярного транзистора с включением источников шума |
IS=IS·Area, ISE=ISE·Area, ISC=ICS·Area, ISS=ISS·Area, IKF=IKF·Area, IKR=IKR·Area, IRB=IRB·Area, ITF=ITF·Area, CJC=CJC·Area, CJE=CJE·Area, CJS=CJS·Area, RBB=RBB/Area, RE=RE/Area, RC=RC/Area, QCO=QCO·Area.
Значение Area указывается в задании на моделирование при включении транзистора в схему, по умолчанию Area=1.
В качестве примера приведем список параметров модели Гуммеля-Пуна биполярного транзистора КТ316Д
.model KT316D NPN(IS=2.75f XTI=3 EG=1.11 VAF=96 BF=136.5
+ NE=2.496 ISE=12.8pA IKF=97.23m XTB=1.5 VAR=55 BR=.66
+ NC=2 ISC=15.5p IKR=.12 RB=70.6 RC=8.4 CJC=4.1pF VJC=.65
+ MJC=.33 FC=.5 VJE=.69 CJE=1.16pF MJE=.33 TR=27.8n
+ TF=79.0p ITF=.151 VTF=25 XTF=2)
Цифро-аналоговый интерфейс
Цифро-аналоговый интерфейс предназначен для преобразования логического уровня выходных сигналов цифровых компонентов (“0”, “1”, “X”, “R”, “F” или “Z”) в аналоговое напряжение, как показано на рис. 6.3, б. Эти устройства включают на входе аналоговых компонентов. Аналоговое напряжение образуется с помощью источника опорного напряжения и делителя на резисторах, сопротивления которых изменяются программно в соответствии с логическим уровнем цифрового сигнала. Информация о логическом уровне сигнала может быть получена из двух источников:– в процессе расчета временной диаграммы логических устройств с помощью программы PSpice;
– из файла, который создан предварительно вручную или образован в результате моделирования в предыдущем сеансе работы с программой.
В связи с этим цифро-аналоговый интерфейс описывается двояко. При взаимодействии аналоговых и цифровых компонентов в процессе моделирования его описание имеет вид (digital input: digital-to-analog):
Nxxx <узел интерфейса> <–узел источника опорного напряжения>
+ <+узел источника опорного напряжения> <имя модели Ц/А>
+ DGTLNET=<имя цифрового узла> <имя модели вход/выход>
+ [IS=<начальное состояние>]
При управлении из файла описание цифро-аналогового интерфейса имеет формат
Nxxx <узел интерфейса> <–узел источника опорного напряжения>
+ <+узел источника опорного напряжения> <имя модели Ц/А>
+ [SIGNAME=<имя цифрового сигнала>]
+ [IS=<начальное состояние>]
Например
N1 ANALOG DIGITAL_GND U_REF DIN_133 DGTLNET=13 IO_STD
N2 7 15 16 FROM_TTL ; Данные передаются из файла, имя которого
; указано в модели FROM_TTL
Модель цифро-аналогового интерфейса описывается предложением
.MODEL <имя модели Ц/А> DINPUT [<параметры модели>]
Параметры модели цифро-аналогового интерфейса приведены в табл. 6.2.
Таблица 6.2
|
Идентификатор |
Параметр |
Значение по умолчанию |
Единица измерения |
|
CLO |
Емкость между выходным узлом и “землей” |
0 |
Ф |
|
CHI |
Емкость между выходным узлом и источником питания |
0 |
Ф |
|
SONAME |
Имя состояния логический “0” |
||
|
SOTSW |
Время переключения в состояние “0” |
|
с |
|
SORLO |
Сопротивление между выходным узлом и "землей" в состоянии “0” |
Ом |
|
|
SORHI |
Сопротивление между выходным узлом и источником питания в состоянии “0” |
Ом |
|
|
S1NAME |
Имя состояния логическая “1” |
||
|
S1TSW |
Время переключения в состояние “1” |
с |
|
|
S1RLO |
Сопротивление между выходным узлом и “землей” в состоянии “1” |
Ом |
|
|
S1RHI |
Сопротивление между выходным узлом и источником питания в состоянии “1” |
Ом |
|
|
S19NAME |
Имя логического состояния “19” |
||
|
S19TSW |
Время переключения в состояние “19” |
с |
|
|
S19RLO |
Сопротивление между выходным узлом и “землей” в состоянии “19” |
Ом |
|
|
S19RHI |
Сопротивление между выходным узлом и источником питания в состоянии “19” |
Ом |
|
|
FILE |
Имя файла с цифровыми сигналами ( только при чтении из файла) |
||
|
FORMAT |
Код формата входного файла (только при чтении из файла) |
1 |
|
|
TIMESTEP |
Интервал времени между соседними отсчетами цифрового сигнала в файле (только при чтении из файла) |
10![]() |
с |
DGTLNET=<имя цифрового узла> <имя модели вход/выход>
указывает имя цифрового узла, к которому подсоединен интерфейс Ц/А, и имя модели входного/выходного сопротивления соответствующего цифрового компонента (см. ниже).
Начальное логическое состояние управляющего цифрового узла в момент времени t=0 определяется режимом схемы по постоянному току. Изменение этого состояния при необходимости производится с помощью необязательной опции
IS=<начальное состояние>
Параметры модели FILE, FORMAT и TIMESTEP
используются только при управлении из файла. При этом управление производится цифровым сигналом, имя которого указано в необязательной опции
SIGNAME=<имя цифрового сигнала>
В ее отсутствие управление осуществляется сигналом, имя которого образовано символами xxx, находящимися справа от префикса N имени цифро-аналогового интерфейса Nxxx.
На рис. 6.3, б изображена схема замещения выходного каскада цифровых ИС. Сопротивления резисторов изменяются в соответствии с логическим уровнем управляющего цифрового узла. При его изменении сопротивления резисторов плавно изменяются по экспоненциальному закону с постоянной времени, которая определяется длительностью переключения, указанной в модели DINPUT. Эти сопротивления рассчитываются по формулам
RLO=R







где R



К управляющему цифровому узлу не должны подключаться какие-либо аналоговые компоненты, так как в противном случае между ними автоматически будет включен аналого-цифровой интерфейс и цифровой узел отсоединится.
В процессе моделирования логические состояния управляющего цифрового узла получают имена “0”, “1”, “X”, “R”, “F” и “Z”. Моделирование прерывается, если хотя бы одно из этих состояний не указано в перечне спецификаций SnNAME, SnTSW, SnRLO
и SnRHI.
Логическое состояние входного цифрового сигнала можно просмотреть с помощью программы Probe на аналоговом экране, указывая в качестве имени переменной B(Nxxx). Значение B(Nxxx) равно 0.0, если текущее состояние есть S0NAME, равно 1.0 в состоянии S1NAME и т.д. до 19.0. Однако логические состояния входных цифровых узлов удобнее выводить на цифровой экран программы Probe.
Цифровые компоненты
Цифровые компоненты (примитивы) задаются по форматуUxxx <тип> [(<список параметров>*)]
+ <+узел источника питания> <–узел источника питания>
+ <список узлов>*
+ <имя модели динамики> <имя модели вход/выход>
+ [MNTYMXDLY=<выбор значения задержки>]
+ [IO_LEVEL=<уровень модели интерфейса>]
Параметр <тип> указывает тип логического устройства (их перечень приведен ниже, например AND, NOR); в круглых скобках указываются значения одного или более параметров через запятую (например, для схемы И указывается количество входов). После списка узлов подключения логического устройства следуют имена двух моделей. Первая модель описывает динамические свойства устройства, вторая – характеристики входных и выходных сопротивлений.
Модели динамики имеют следующие ключевые слова:
| Имя модели динамики | Тип компонента | ||
| UADC | Аналого-цифровой преобразователь | ||
| UDAC | Цифро-аналоговый преобразователь | ||
| UIO | Модель входа/выхода цифрового устройства | ||
| UGATE | Стандартный вентиль | ||
| UTGATE | Вентиль с тремя состояниями | ||
| UBTG | Двунаправленный переключающий вентиль | ||
| UEFF | Триггер с динамическим управлением | ||
| UGFF | Триггер с потенциальным управлением | ||
| UDLY | Цифровая линия задержки | ||
| UPLD | Программируемые логические матрицы | ||
| UROM | Постоянное запоминающее устройство | ||
| URAM | Оперативное запоминающее устройство |
Модели вход/выход имеют ключевое слово UIO (разд. 6.2.3).
Параметр MNTYMXDLY позволяет конкретному индивидуальному устройству назначить минимальное, типичное или максимальное значение времени задержки, указанное в спецификации модели его динамики:
0 – значение задержки, заданное параметром DIGMNTYMX директивы .OPTIONS (по умолчанию параметр равен 2);
1 – минимальное значение;
2 – типичное значение;
3 – максимальное значение;
4 – расчет наихудшего случая (минимум/максимум).
Параметр IO_LEVEL указывает тип цифро-аналогового и аналого-цифрового интерфейса данного цифрового устройства:
0 – в соответствии со значением параметра DIGIOLVL
директивы .OPTIONS (по умолчанию он равен 1);
1 – интерфейс AtoD1/DtoA1;
2 – интерфейс AtoD2/DtoA2;
3 – интерфейс AtoD3/DtoA3;
4 – интерфейс AtoD4/DtoA4.
Запаздывание сигнала в примитивах цифровых устройств определяется в двух моделях: динамики и вход/выход.
Модель динамики определяет задержки распространения и такие временные ограничения, как время установки (setup) и удерживания (hold). Модель вход/выход задает входные и выходные сопротивления и емкости и время переключения.
Когда выход примитива соединяется с другим примитивом, общее время задержки распространения первого примитива равно сумме времени установления напряжения на его нагрузке и времени распространения сигнала, указанного в модели динамики. Время установления напряжения на нагрузке (loading delay) рассчитывается по формуле



где R

или DRVL в зависимости от логического уровня на выходе; C

Когда цифровой примитив подключен к аналоговому устройству, задержка распространения уменьшается на величину, равную времени переключения, заданного в модели вход/выход.
Минимальная длительность сигнала на входе цифрового примитива, необходимая для изменения его логического состояния, должна превышать время задержки, приведенное в модели динамики (это ограничение не относится к цифровым линиям задержки). Более короткие входные импульсы не вызовут на выходе никакого эффекта.
Приведем описание смешанной цепи на рис. 6.2, а:
Analog/Digital Interface Example
.OPT ACCT LIST LIBRARY EXPAND RELTOL=.001
.LIB DIG.LIB
VSIN 1 0 SIN(0 5v 1MEG)
U1 STIM(1, 1) $G_DPWR $G_DGND 2 IO_STD TIMESTEP = 10ns
+ (0C, 1)
+ LABEL=BEGIN
+ (1C,0) (2C,1) (3C,X) (4C,0) (5C,Z)
+ 6C GOTO BEGIN –1 TIMES
X1 1 2 3 133LA3
RL 3 0 25k
CL 3 0 5pF
.TRAN 5ns 500ns
.PRINT TRAN V(1) D(2) V(3)
.PROBE
.END
Здесь имеется обращение к библиотечному файлу моделей цифровых отечественных компонентов dig.lib, фрагменты которого приведены в Приложении 5.
Обратим внимание, что цифровые ИС, даже простейшие, для которых имеются примитивы, представлены в библиотеке в виде макромоделей, имена которых совпадают с обозначением по ЕСКД (правда, в латинской транскрипции). Это позволяет пользователю не задумываться о правилах описания каждой конкретной ИС, предоставляя это разработчикам библиотек моделей.
Информация об автоматически включаемых в схему макромоделях устройств сопряжения, их именах и именах новых цифровых узлов помещается в выходном файле с расширением .out:
**** Generated AtoD and DtoA Interfaces ****
* Analog/Digital interface for node 1
* Moving X1.U1:IN1 from analog node 1 to new digital node 1$AtoD
X$1_AtoD1 1 1$AtoD AtoD
* Analog/Digital interface for node 3
* Moving X1.U1:OUT1 from analog node 3 to new digital node 3$DtoA
X$3_DtoA1 3$DtoA 3 DtoA
* Analog/Digital interface power supply subckt
X$DIGIFPWR 0 DIGIFPWR
В качестве примера расчета переходных процессов приведем фрагмент выдачи данных в табличной форме по директиве .PRINT:
TIME V(1) D(2) V(3)
0.000E+00 0.000E+00 1 3.551E+00
5.000E-09 1.570E-01 1 3.551E+00
1.000E-08 3.139E-01 0 3.551E+00
1.500E-08 4.704E-01 0 3.551E+00
2.000E-08 6.264E-01 1 3.551E+00
2.500E-08 7.820E-01 1 3.551E+00
3.000E-08 9.369E-01 X 3.551E+00
3.500E-08 1.091E+00 X 3.266E+00
Перейдем теперь к описанию цифровых компонентов различных типов, сгруппировав их по следующим категориям:
– многоразрядные АЦП и ЦАП;
– вентили;
– триггеры;
– программируемые логические матрицы;
– устройства памяти;
– источники постоянных логических сигналов;
– линии задержки;
– функциональное описание цифровых устройств.
6.4.1. Многоразрядные АЦП и ЦАП
Многоразрядные АЦП задаются по формату
Uxxx ADC(
+ <модель динамики> <модель вход/выход>
+ [MNTYMXDLY=<выбор значения задержки>]
+ [IO_LEVEL=<уровень модели интерфейса>]
Имена узлов перечисляются в <списке узлов> в следующем порядке (рис. 6.5):
<+узел источника питания>, <–узел источника питания>, <аналоговый вход>, <опорное напряжение>, <"земля">, <сигнал разрешения>, <сигнал преобразования>, <сигнал переполнения>,
Смысл остальных параметров такой же, что и для интерфейса А/Ц типа Oxxx.
![]() Рис. 6.5. Аналого-цифровой преобразователь |
.MODEL <имя модели> UADC [(параметры)]
Параметры этой модели приведены в табл. 6.4 (значение по умолчанию – 0, единица измерения – с).
Таблица 6.4
|
Идентификатор |
Параметр |
|
TPCSMN |
Время задержки запуска – запаздывание между передними фронтами импульсов разрешения и запуска, минимальное значение |
|
TPCSTY |
То же, типичное значение |
|
TPCSMX |
То же, максимальное значение |
|
TPSDMN |
Время цикла кодирования – интервал времени между передним фронтом импульса запуска и переходом выходного сигнала в новое состояние, минимальное значение |
|
TPSDTY |
То же, типичное значение |
|
TPSDMX |
То же, максимальное значение |
|
TPDSMN |
Запаздывание заднего фронта сигнала запуска относительно момента перехода выходного сигнала в новое состояние, минимальное значение |
|
TPDSMTY |
То же, типичное значение |
|
TPDSMX |
То же, максимальное значение |
Временная диаграмма АЦП показана на рис. 6.6. Выходной сигнал АЦП равен ближайшему целому выражения

где m – количество разрядов.
Если это выражение больше 2

Сигнал (импульс) разрешения (convert pulse) может иметь любую, в том числе и нулевую длительность. Если время цикла кодирования tpsd=0, то m разрядов данных и разряд переполнения, не принимая неопределенного состояния, сразу принимают новое значение. Между узлами <опорное напряжение> и <“земля”> включается резистор с сопротивлением, равным 1/GMIN.
![]() Рис. 6.6. Переходные процессы в АЦП |
Приведем пример описания 4-разрядного АЦП
U3 ADC(4) $G_DPWR $G_DGND1 10 0 conv stat over
+ out3 out2 out1 out0 DINAM IO_ADC
.MODEL DINAM UADC(
+ tpcsmn=5ns, tpcsty=8ns, tpcsmx=10ns,
+ tpsdmn=16ns, tpsdty=20ns, tpsdmx=22ns,
+ tpdsmn=4ns, tpdsty=5ns, tpdsmx=6ns)
.MODEL IO_ADC UIO(drvh=50 drvl=50)
Многоразрядный ЦАП задается по формату
Uxxx DAC(
+ <модель вход/выход>
+ [MNTYMXDLY=<выбор значения задержки>]
+ [IO_LEVEL=<уровень модели интерфейса>]
Имена узлов перечисляются в <списке узлов> в следующем порядке (рис. 6.7):
<+узел источника питания>, <–узел источника питания>, <аналоговый выход>, <опорное напряжение>, <“земля”>,
![]() Рис. 6.7. Цифро-аналоговый преобразователь |
Модель динамики ЦАП имеет вид
.MODEL <имя модели> UDAC [(параметры)]
Параметры этой модели приведены ниже (значение по умолчанию – 0, единица измерения – с):
|
Идентификатор |
Параметр |
|
TSWMN |
Время установления (от момента изменения входного кода до момента достижения выходным напряжением уровня 0,9 установившегося значения), минимальное значение |
|
TSWTY |
То же, типичное значение |
|
TSWMX |
То же, максимальное значение |
V(<опорное напряжение>, <“земля”>)

Опорное напряжение определяет диапазон выходного аналогового напряжения. Между узлом источника опорного напряжения и “землей” включается сопротивление, равное 1/GMIN.
Если какой-либо разряд входного цифрового сигнала не определен, выходное напряжение равно половине разности двух напряжений. Одно из них представляет собой выходное напряжение ЦАП, если все не определенные состояния “X” заменить на “1”, второе – если эти состояния заменить на логический “0”. При изменении состояний всех разрядов выходное напряжение линейно изменяется в течение интервала преобразования, как показано на рис. 6.8.
![]() Рис. 6.8. Переходные процессы в ЦАП |
Вентили подразделяются на элементарные и сложные. Элементарные вентили имеют один или несколько входов и только один выход. Сложные вентили (сборки) содержат в одном корпусе несколько простых вентилей (рис. 6.9). Кроме того, вентили подразделяются на два типа: стандартные вентили и вентили с тремя состояниями. Вентили с тремя состояниями управляются сигналами разрешения. Когда этот сигнал имеет уровень “0”, выходной сигнал вентиля имеет неопределенный уровень “X” при высоком выходном сопротивлении Z.
![]() Рис. 6.9. Стандартные вентили и их сборки |
Стандартные вентили
перечислены в табл. 6.5.
Таблица 6.5
|
Тип |
Параметр |
Порядок перечисления выводов |
Функциональное назначение |
|
BUF |
Нет |
Вх., вых. |
Буфер |
|
INV |
Нет |
Вх., вых. |
Инвертор |
|
AND |
N |
Вх.1, вх.2,..., вых. |
Логическое И |
|
NAND |
N |
Вх.1, вх.2,..., вых. |
Логическое И–НЕ |
|
OR |
N |
Вх.1, вх.2,..., вых. |
Логическое ИЛИ |
|
NOR |
N |
Вх.1, вх.2,..., вых. |
Логическое ИЛИ–НЕ |
|
XOR |
Нет |
Вх.1, вх.2, вых. |
Исключающее ИЛИ |
|
NXOR |
Нет |
Вх.1, вх.2, вых. |
Исключающее ИЛИ–НЕ |
|
BUFA |
L |
Вх.1, вх.2,..., вых.1, вых.2,... |
Сборка буферов |
|
INVA |
L |
Вх.1, вх.2,..., вых.1, вых.2,... |
Сборка инверторов |
|
ANDA |
N, L |
Вх.1, вх.2,..., вых.1, вых.2,... |
Сборка логики И |
|
NANDA |
N, L |
Вх.1, вх.2,..., вых.1, вых.2,... |
Сборка логики И–НЕ |
|
ORA |
N, L |
Вх.1, вх.2,..., вых.1, вых.2,... |
Сборка логики ИЛИ |
|
NORA |
N, L |
Вх.1, вх.2,..., вых.1, вых.2,... |
Сборка логики ИЛИ–НЕ |
|
XORA |
L |
Вх.1, вх.2,..., вых.1, вых.2,... |
Сборка логики исключающее ИЛИ |
|
NXORA |
L |
Вх.1, вх.2,..., вых.1, вых.2,... |
Сборка логики исключающее ИЛИ–НЕ |
|
AO |
N, L |
Вх.1, вх.2,..., вых. |
Сборка логики И–ИЛИ |
|
OA |
N, L |
Вх.1, вх.2,..., вых. |
Сборка логики ИЛИ–И |
|
AOI |
N, L |
Вх.1, вх.2,..., вых. |
Сборка логики И–ИЛИ–НЕ |
|
OAI |
N, L |
Вх.1, вх.2,..., вых. |
Сборка логики ИЛИ–И–НЕ |
Модель динамики вентилей имеет формат
.MODEL <имя модели> UGATE [(параметры)]
Параметры моделей вентилей типа UGATE приведены ниже (значение по умолчанию – 0, единица измерения – с):
|
Идентификатор |
Параметр |
|
TPLHMN |
Задержка при переходе от низкого уровня к высокому, минимальное значение |
|
TPLHTY |
То же, типичное значение |
|
TPLHMX |
То же, максимальное значение |
|
TPHLMN |
Задержка при переходе от высокого уровня к низкому, минимальное значение |
|
TPHLTY |
То же, типичное значение |
|
TPHLMX |
То же, максимальное значение |
Вентили с тремя состояниями
перечислены в табл. 6.6.
Таблица 6.6
|
Тип |
Параметр |
Порядок перечисления выводов |
Функциональное назначение |
|
BUF3 |
Нет |
Вх., разр., вых. |
Буфер |
|
INV3 |
Нет |
Вх., разр., вых. |
Инвертор |
|
AND3 |
N |
Вх.1, вх.2,..., разр., вых. |
Логика И |
|
NAND3 |
N |
Вх.1, вх.2,..., разр., вых. |
Логика И–НЕ |
|
OR3 |
N |
Вх.1, вх.2,..., разр., вых. |
Логика ИЛИ |
|
NOR3 |
N |
Вх.1, вх.2,..., разр., вых. |
Логика ИЛИ–НЕ |
|
XOR3 |
Нет |
Вх.1, вх.2, разр., вых. |
Исключающее ИЛИ |
|
NXOR3 |
Нет |
Вх.1, вх.2, разр., вых. |
Исключающее ИЛИ–НЕ |
|
BUF3A |
L |
Вх.1, вх.2,..., разр., вых.1, вых.2, ... |
Сборка буферов |
|
INV3A |
L |
Вх.1, вх.2,..., разр., вых.1, вых.2, ... |
Сборка инверторов |
|
AND3A |
N, L |
Вх.1, вх.2,..., разр., вых.1, вых.2, ... |
Сборка элементов логики И |
|
NAND3A |
N, L |
Вх.1, вх.2,..., разр., вых.1, вых.2, ... |
Сборка элементов логики И–НЕ |
|
OR3A |
N, L |
Вх.1, вх.2,..., разр., вых.1, вых.2, ... |
Сборка элементов логики ИЛИ |
|
NOR3A |
N, L |
Вх.1, вх.2,..., разр., вых.1, вых.2, ... |
Сборка элементов логики ИЛИ–НЕ |
|
XOR3A |
N, L |
Вх.1, вх.2,..., разр., вых.1, вых.2, ... |
Сборка элементов исключающее ИЛИ |
|
NXOR3A |
N, L |
Вх.1, вх.2,..., разр., вых.1, вых.2, ... |
Сборка элементов исключающее ИЛИ–НЕ |
Модель динамики этих вентилей имеет формат
.MODEL <имя модели> UTGATE [(параметры)]
Параметры моделей вентилей типа UTGATE приведены в табл. 6.7 (значение по умолчанию – 0, единица измерения – с):
Таблица 6.7
|
Идентификатор |
Параметр |
|
TPLHMN |
Задержка при переходе от низкого уровня к высокому, минимальное значение |
|
TPLHTY |
То же, типичное значение |
|
TPLHMX |
То же, максимальное значение |
|
TPHLMN |
Задержка при переходе от высокого уровня к низкому, минимальное значение |
|
TPHLTY |
То же, типичное значение |
|
TPHLMX |
То же, максимальное значение |
|
TPLZMN |
Задержка при переходе от низкого уровня к уровню Z, минимальное значение |
|
TPLZTY |
То же, типичное значение |
|
TPLZMX |
То же, максимальное значение |
|
TPHZMN |
Задержка при переходе от высокого уровня к уровню Z, минимальное значение |
|
TPHZTY |
То же, типичное значение |
|
TPHZMX |
То же, максимальное значение |
|
TPZLMN |
Задержка при переходе от уровня Z к низкому уровню, минимальное значение |
|
TPZLTY |
То же, типичное значение |
|
TPZLMX |
То же, максимальное значение |
|
TPZHMN |
Задержка при переходе от уровня Z к высокому уровню, минимальное значение |
|
TPZHTY |
То же, типичное значение |
|
TPZHMX |
То же, максимальное значение |
Двунаправленные вентили. Двунаправленный вентиль представляет собой пассивное устройство, которое соединяет или разъединяет два узла (версия Design Center 6.1 и более поздние). Коммутация этих узлов определяется логическим состоянием входного управляющего узла. Устройства типа NBTG соединяют два узла при подаче на вход логической “1” и разъединяют при подаче “0”. Устройства типа PBTG соединяют два узла при подаче на вход логического “0” и рассоединяют при подаче “1”. Эти устройства не имеют параметров, модель их динамики имеет вид
.MODEL <имя модели> UBTG
Параметры DRVH и DRVL модели вход/выход используются для управления ячейками запоминания заряда, сигналы с которых передаются через двунаправленные вентили. Если двунаправленный вентиль соединен с цепью, к которой подключен хотя бы один вход устройства, в модели вход/выход которого имеется параметр INLD со значением больше нуля, или выход устройства, в модели которого параметр OUTLD больше нуля, то эта цепь будет моделироваться как ячейка запоминания заряда.
Двунаправленные вентили имеют стандартный формат записи. Приведем пример
U4 NBTG $G_DPWR $G_DGND GATE SD1 SD2
+ BTG1 IO_BTG
.MODEL BTG1 UBTG
6.4.3. Триггеры
Триггеры имеют динамическое и потенциальное управление. Каждый компонент может содержать один или несколько триггеров в корпусе, у которых общими являются сигналы установки, сброса и тактовой синхронизации (рис. 6.10).
![]() Рис. 6.10. Триггеры: а – JK-триггер с отрицательным фронтом срабатывания и низким уровнем сигналов установки и сброса; б – D-триггер с положительным фронтом срабатывания и низким уровнем сигналов установки и сброса; в – синхронный двухтактный RS-триггер; г – синхронный однотактный D-триггер |
Таблица 6.8
|
Тип |
Параметры |
Порядок перечисления выводов |
Функциональное назначение |
|
Триггеры с динамическим управлением |
|||
|
JKFF |
Количество триггеров |
S, R, C, J1, J2, ..., K1, K2, ..., Q1, Q2, ..., ![]() ![]() |
JK-триггер с отрицательным фронтом срабатывания и низким уровнем сигнала установки и сброса |
|
DFF |
Количество триггеров |
S, R, C, D1, D2, ..., Q1, Q2, ..., ![]() ![]() |
D-триггер с положительным фронтом срабатывания и низким уровнем сигнала установки и сброса |
|
Триггеры с потенциальным управлением |
|||
|
SRFF |
Количество триггеров |
S, R, G, S1, S2, ..., R , R , ..., Q1, Q2,..., ![]() ![]() |
Двухтактный синхронный RS-триггер |
|
DLTCH |
Количество триггеров |
S, R, G, D1, D2, ..., Q1, Q2, ..., ![]() ![]() |
Однотактный синхронный D-триггер |
Модели динамики триггеров с динамическим управлением имеют формат
.MODEL <имя модели> UEFF [(параметры)]
Параметры модели триггеров с динамическим управлением типа UEFF приведены в табл. 6.9 (значение по умолчанию – 0, единица измерения – с).
Таблица 6.9
|
Идентификатор |
Параметр |
|
TPPCQLHMN |
Задержка перехода “0”![]() ![]() |
|
TPPCQLHTY |
То же, типичное значение |
|
TPPCQLHMX |
То же, максимальное значение |
|
TPPCQHLMN |
Задержка перехода “1”![]() ![]() |
|
TPPCQHLTY |
То же, типичное значение |
|
TPPCQHLMX |
То же, максимальное значение |
|
TWPCLMN |
Максимальная длительность сигнала “0” на входе S/R, минимальное значение |
|
TWPCLTY |
То же, типичное значение |
|
TWPCLMX |
То же, максимальное значение |
|
TPCLKQLHMN |
Задержка перехода “0”![]() ![]() ![]() |
|
TPCLKQLHTY |
То же, типичное значение |
|
TPCLKQLHMX |
То же, максимальное значение |
|
TPCLKQHLMN |
Задержка перехода “1”![]() ![]() ![]() |
|
TPCLKQHLTY |
То же, типичное значение |
|
TPCLKQHLMX |
То же, максимальное значение |
|
TWCLKLMN |
Минимальная длительность сигнала “0” на входе С/![]() |
|
TWCLKLTY |
То же, типичное значение |
|
TWCLKLMX |
То же, максимальное значение |
|
TWCLKHMN |
Минимальная длительность сигнала “1” на входе С/![]() |
|
TWCLKHTY |
То же, типичное значение |
|
TWCLKHMX |
То же, максимальное значение |
|
TSUDCLKMN |
Время подготовки к работе по входам J/K/D перед действием фронта синхроимпульса С/![]() |
|
TSUDCLKTY |
То же, типичное значение |
|
TSUDCLKMX |
То же, максимальное значение |
|
TSUPCCLKHMN |
Длительность сигнала “1” на входах S/R при действии фронта синхроимпульса С/![]() |
|
TSUPCCLKHTY |
То же, типичное значение |
|
TSUPCCLKHMX |
То же, максимальное значение |
|
THDCLKMN |
Длительность сигнала на входе J/K/D после действия фронта синхроимпульса С/![]() |
|
THDCLKTY |
То же, типичное значение |
|
THDCLKMX |
То же, максимальное значение |
Косая черта “/” означает “или”; например, запись S/R означает сигнал S или R.
Модель динамики триггеров с потенциальным управлением имеет формат
.MODEL <имя модели> UGFF [(параметры)]
Параметры моделей триггеров с потенциальным управлением типа UGFF приведены в табл. 6.10 (значение по умолчанию – 0, единица измерения – с).
Таблица 6.10
|
Идентификатор |
Параметр |
|
TPPCQLHMN |
Задержка перехода “0”![]() ![]() |
|
TPPCQLHTY |
То же, типичное значение |
|
TPPCQLHMX |
То же, максимальное значение |
|
TPPCQHLMN |
Задержка перехода “1”![]() ![]() |
|
TPPCQHLTY |
То же, типичное значение |
|
TPPCQHLMX |
То же, максимальное значение |
|
TWPCLMN |
Минимальная длительность сигнала “0” на входе S/R, минимальное значение |
|
TWPCLTY |
То же, типичное значение |
|
TWPCLMX |
То же, максимальное значение |
|
TPGQLHMN |
Задержка перехода “0”![]() ![]() |
|
TPGQLHTY |
То же, типичное значение |
|
TPGQLHMX |
То же, максимальное значение |
|
TPGQHLMN |
Задержка перехода “1”![]() ![]() |
|
TPGQHLTY |
То же, типичное значение |
|
TPGQHLMX |
То же, максимальное значение |
|
TPDQLHMN |
Задержка перехода “0”![]() ![]() |
|
TPDQLHTY |
То же, типичное значение |
|
TPDQLHMX |
То же, максимальное значение |
|
TPDQHLMN |
Задержка перехода “1”![]() ![]() |
|
TPDQHLTY |
То же, типичное значение |
|
TPDQHLMX |
То же, максимальное значение |
|
TWGHMN |
Минимальная длительность сигнала “1” на входе G, минимальное значение |
|
TWGHTY |
То же, типичное значение |
|
TWGHMX |
То же, максимальное значение |
|
TSUDGMN |
Время подготовки к работе по входам S/R/D перед действием фронта синхроимпульса G, минимальное значение |
|
TSUDGTY |
То же, типичное значение |
|
TSUDGMX |
То же, максимальное значение |
|
TSUPCGHMN |
Длительность сигнала “1” на входах S/R при действии фронта синхроимпульса G, минимальное значение |
|
TSUPCGHTY |
То же, типичное значение |
|
TSUPCGHMX |
То же, максимальное значение |
|
THDGMN |
Длительность сигнала на входе S/R/D после действия фронта синхроимпульса G, минимальное значение |
|
THDGTY |
То же, типичное значение |
|
THDGMX |
То же, максимальное значение |
По умолчанию в начальный момент времени выходные состояния триггеров приняты неопределенными (состояния X). Они остаются таковыми до подачи сигналов установки или сброса либо перехода триггера в определенное состояние. В Design Center 6.1 появилась возможность установить определенное начальное состояние с помощью параметра DIGINITSTATE
директивы .OPTIONS.
В моделях триггеров имеются параметры, характеризующие минимальные длительности сигналов установки и сброса и минимальную длительность импульсов. Если эти параметры больше нуля, то в процессе моделирования измеренные значения длительностей импульсов сравниваются с заданными данными и при наличии слишком коротких импульсов на экран выдаются предупреждающие сообщения (Warning messages), которые также передаются в программу Probe и заносятся в выходной файл с расширением .out.
6.4.4. Программируемые логические матрицы
Программируемые логические матрицы (ПЛМ, PLA – Programmable Logic Arrays) имеют ряд входов, которые формируют столбцы матрицы, и ряд выходов, образующих строки [10]. Каждый выход (строка) управляется одним логическим элементом. Совокупность управляющих сигналов составляет программу для ПЛМ, которая определяет, какие входы соединяются с логическими элементами. В состав примитивов ПЛМ входят только однотипные вентили (И, ИЛИ, И–НЕ и т. п.), поэтому реальные ИС ПЛМ составляются из нескольких примитивов в виде макромоделей.
Программа ПЛМ вводится в задание на моделирование двояко:
1) предварительно записывается в файл в формате JEDEC, имя файла указывается в описании примитива конкретной ПЛМ;
2) данные программы включаются непосредственно в описание ПЛМ (с использованием конструкции DATA=...), что менее удобно.
Однако при использовании библиотек, в которых ПЛМ оформлены в виде макромоделей, пользователю не нужно разбираться в деталях их моделей – достаточно указать имя модели ПЛМ, список узлов включения и с помощью опции TEXT указать имя JEDEC-файла, содержащего описание программы ПЛМ, как показано на следующем примере:
X1 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 IN9 IN10 IN11 IN12 IN13 IN14
+ OUT1 OUT2 OUT3 OUT4
+ PAL14H4
+ TEXT: JEDEC_FILE = "myprog.jed"
Здесь в схему включена ПЛМ типа PAL14H4, программируемая из файла “myprog.jed.
Примитивы ПЛМ вводятся в задание на моделирование предложением (рис. 6.11):
Uxxx <тип ПЛМ> (<количество входов>,<количество выходов>)
+ <+узел источника питания> <–узел источника питания>
+ <входной узел>* <выходной узел>*
+ <имя модели динамики> <имя модели вход/выход>
+ [FILE=<имя файла>]
+ [DATA=<флаг системы счисления>$<данные программы>$]
+ [MNTYMXDLY=<выбор значения задержки>]
+ [IO_LEVEL=<уровень модели интерфейса>]
![]() Рис. 6.11. Программируемая логическая матрица |
PLAND – матрица логики И;
PLOR – матрица логики ИЛИ;
PLXOR – матрица логики исключающее ИЛИ;
PLNAND – матрица логики И–НЕ;
PLNOR – матрица логики ИЛИ–НЕ;
PLNXOR – матрица логики исключающее ИЛИ–НЕ;
PLANDDC – матрица логики И, содержащая для каждого входа столбцы прямого и дополнительного кода;
PLORC – матрица логики ИЛИ, содержащая для каждого входа столбцы прямого и дополнительного кода;
PLXORC – матрица логики исключающее ИЛИ, содержащая для каждого входа столбцы прямого и дополнительного кода;
PLNANDC – матрица логики И–НЕ, содержащая для каждого входа столбцы прямого и дополнительного кода;
PLNORC – матрица логики ИЛИ–НЕ, содержащая для каждого входа столбцы прямого и дополнительного кода;
PLNXORC – матрица логики исключающее ИЛИ, содержащая для каждого входа столбцы прямого и дополнительного кода.
После ключевого слова FILE указывается имя файла
в формате JEDEC, в котором записана программа ПЛМ. Оно может быть указано как текстовая константа (и тогда заключается в кавычки " ") или как текстовое выражение (заключается между вертикальными черточками | |).
Если приведена опция FILE, то любые данные, приведенные после опции DATA, игнорируются. Способ адресации, принятый в файле JEDEC для расположения данных, определяется параметрами модели динамики.
Флаг системы счисления
принимает значения:
B – двоичная система счисления;
O – восьмеричная система счисления (бит старшего разряда расположен по младшему адресу);
X – шестнадцатиричная система счисления (бит старшего разряда расположен по младшему адресу).
Данные программы помещаются между знаками доллара $ и могут располагаться как слитно, так и разделяться одним или несколькими пробелами. Поток данных начинается с нулевого адреса, по которому программируется соединение первого входа с вентилем, управляющим первым выходом. Наличие “0” означает, что вход не подсоединен к вентилю, а “1” – наличие такого соединения (изначально все входы не подсоединены ни к каким выходам). Данные по следующему адресу управляют соединением дополнения первого входа к вентилю, управляющему первым выходом (только для ПЛМ с прямыми и дополнительными входами), или второго входа, подключенного к вентилю, управляющему первым выходом. Каждые дополнительные “1” или “0” программирует соединение следующего входа или его дополнения с вентилем, управляющим первым выходом, до тех пор, пока не переберут все входы (и их дополнения). Последующие данные программируют соединения входов со вторым выходом и т. д.
Модель динамики ПЛМ имеет формат
.MODEL <имя модели динамики> UPLD [(параметры модели динамики)]
Параметры этой модели приведены в табл. 6.11.
Таблица 6.11
|
Идентификатор |
Параметр |
Значение по умолчанию |
Единица измерения |
|
TPLHMN |
Время задержки на выход при переключении “0”![]() |
0 |
с |
|
TPLHTY |
То же, типичное значение |
0 |
с |
|
TPLHMX |
То же, максимальное значение |
0 |
с |
|
TPHLMN |
Время задержки на выход при переключении “1”![]() |
0 |
с |
|
TPHLTY |
То же, типичное значение |
0 |
с |
|
TPHLMX |
То же, максимальное значение |
0 |
с |
|
OFFSET |
Адрес данных, управляющих подключением первого входа к первому выходу (в файле JEDEC) |
0 |
|
|
COMPOFFSET |
Адрес данных, управляющих подключением дополнения первого входа к первому выходу (в файле JEDEC) |
1 |
|
|
INSCALE |
Количество адресов для программирования изменения состояния каждого входа (в файле JEDEC) |
1 |
|
|
OUTSCALE |
Количество адресов в файле JEDEC для программирования изменения состояния каждого выхода (вентиля) |
2 |
Приведем пример декодера 3-8 (рис. 6.12). Входные узлы обозначим IN1 (старший разряд), IN2, IN3 (младший разряд). Если все входы находятся в состоянии “0”, выход OUT1=“1”. Если IN1 и IN2 – в состоянии “1”, а IN3 – в состоянии “1”, OUT2=“1” и т. д. Данные программы для удобства чтения записаны в виде массива. В комментариях сверху от программы указаны имена входных узлов, находящихся в состоянии “1” – true (T) и “0” – false (F, дополнительный код); в комментариях в конце строк указаны имена выходных узлов, управляемых вентилем.
UDECODE PLANDC(3,8) ; 3 входа, 8 выходов
+ $G_DPWR $G_DGND ; Узлы источника питания и “земли”
+ IN1 IN2 IN3 ; Входы
+ OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 ; Выходы
+ PLD_MDL ; Имя модели динамики ПЛМ
+ IO_STD ; Имя модели вход/выход ПЛМ
+ DATA=B$ ; Данные программы ПЛМ
* IN1 IN2 IN3
* TF TF TF
+ 01 01 01 ; OUT1
+ 01 01 10 ; OUT2
+ 01 10 01 ; OUT3
+ 01 10 10 ; OUT4
+ 10 01 01 ; OUT5
+ 10 01 10 ; OUT6
+ 10 10 01 ; OUT7
+ 10 10 10 $ ; OUT8
.MODEL PLD_MDL UPLD(...) ; Определение модели динамики ПЛМ
![]() Рис. 6.12. Декодер 3-8, реализованный на ПЛМ |
Запоминающие устройства (ЗУ) подразделяются на постоянные ЗУ (ROM, Read Only Memories) и оперативные ЗУ (RAM, Random Access Read–Write Memories).
Постоянные запоминающие устройства (ПЗУ).
Существует два способа записи данных в ПЗУ для последующего моделирования:
1) обычно данные предварительно записываются в файл в формате Intel Hex и перед началом моделирования они из него считываются;
2) данные записываются непосредственно в описание ПЗУ c помощью конструкции DATA=...
Модель ПЗУ (рис. 6.13) задается по формату
Uxxx ROM (<количество адресных входов>,<количество выходов>)
+ <+узел источника питания> <–узел источника питания>
+ <вход разрешения чтения>
+ <старший разряд адреса> . . . <младший разряд адреса>
+ <старший разряд выхода> . . . <младший разряд выхода>
+ <имя модели динамики> <имя модели вход/выход>
+ [FILE=<имя файла>]
+ [DATA=<флаг системы счисления>$<данные программы>$]
+ [MNTYMXDLY=<выбор значения задержки>]
+ [IO_LEVEL=<уровень модели интерфейса>]
![]() Рис. 6.13. Постоянное запоминающее устройство |
в формате Intel Hex, в котором записаны данные ПЗУ. Оно может быть указано как текстовая константа (и тогда заключается в кавычки " ") или как текстовое выражение (заключается между вертикальными черточками | |). Если приведена опция FILE, то любые данные, приведенные после опции DATA, игнорируются.
Флаг системы счисления
принимает значения:
B – двоичная система счисления;
O – восьмеричная система счисления (бит старшего разряда расположен по младшему адресу);
X – шестнадцатиричная система счисления (бит старшего разряда расположен по младшему адресу).
Данные программы помещаются между знаками доллара $ и могут располагаться как слитно, так и разделяться одним или несколькими пробелами. Поток данных начинается с нулевого адреса, по которому размещается первый разряд данных. Следующий бит относится ко второму разряду данных, и так до тех пор, пока не будут определены состояния всех разрядов по этому адресу. После этого перечисляются данные по следующему адресу и т. д.
Модель динамики ПЗУ имеет формат:
.MODEL <имя модели динамики> UROM [(параметры модели динамики)]
Параметры этой модели приведены в табл. 6.12 (значение по умолчанию – 0, единица измерения – с).
Таблица 6.12
|
Идентификатор |
Параметр |
|
TPADHMN |
Время выборки адреса при переключении входных данных “0”![]() |
|
TPADHTY |
То же, типичное значение |
|
TPADHMX |
То же, максимальное значение |
|
TPADLMN |
Время выборки адреса при переключении входных данных “1”![]() |
|
TPADLTY |
То же, типичное значение |
|
TPADLMX |
То же, максимальное значение |
|
TPEDHMN |
Время выборки разрешения при переключении выходов “Z”![]() |
|
TPEDHTY |
То же, типичное значение |
|
TPEDHMX |
То же, максимальное значение |
|
TPEDLMN |
Время выборки разрешения при переключении выходов “Z”![]() |
|
TPEDLTY |
То же, типичное значение |
|
TPEDLMX |
То же, максимальное значение |
|
TPEDHZMN |
Время выборки разрешения при переключении выходов “1”![]() |
|
TPEDHZTY |
То же, типичное значение |
|
TPEDHZMX |
То же, максимальное значение |
|
TPEDLZMN |
Время выборки разрешения при переключении выходов “O”![]() |
|
TPEDLZTY |
То же, типичное значение |
|
TPEDLZMX |
То же, максимальное значение |
![]() Рис. 6.14. Переходные процессы в ПЗУ |


Приведем пример ПЗУ 8

UMULTIPLY ROM (8, 8) ; Модель ПЗУ 256

+ $G_DPWR $G_DGND ; Узлы источника питания и “земли”
+ ENABLE ; Вход разрешения чтения
+ AIN3 AIN2 AIN1 AIN0 ; Первые 4 бита адреса
+ BIN3 BIN2 BIN1 BIN0 ; Вторые 4 бита адреса
+ OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0 ; Выходы
+ ROM_MDL ; Имя модели динамики
+ IO_STD ; Имя модели вход/выход
+ DATA=X$
* Данные в двоичном коде:
* 0 1 2 3 4 5 6 7 8 9 A B C D E F
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; A=0
+ 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ; A=1
+ 00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E ; A=2
+ 00 03 06 09 0C 0F 12 15 18 1B 1E 21 24 27 2A 2D ; A=3
+ 00 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 38 3C ; A=4
+ 00 05 0A 0F 14 19 1E 23 28 2D 32 37 3C 41 46 4B ; A=5
+ 00 06 0C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A ; A=6
+ 00 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 58 62 69 ; A=7
+ 00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78 ; A=8
+ 00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 ; A=9
+ 00 0A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 ; A=A
+ 00 0B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5 ; A=B
+ 00 0C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 ; A=C
+ 00 0D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 ; A=D
+ 00 0E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 ; A=E
+ 00 0F 1E 2D 3C 48 5A 69 78 87 96 A5 B4 C3 D1 E1$ ; A=F
.MODEL ROM_MDL UROM (...)
Оперативные запоминающие устройства (ОЗУ).
Обычно в начальный момент времени в ОЗУ устанавливаются произвольные данные по всем адресам. Существует два способа записи начальных данных в ОЗУ при моделировании:
1) данные предварительно записываются в файл в формате Intel Hex и перед началом моделирования из него считываются;
2) данные записываются непосредственно в описание ОЗУ c помощью конструкции DATA=...
Модель ОЗУ (рис. 6.15) задается по формату
Uxxx RAM (<количество адресных входов>,<количество выходов>)
+ <+узел источника питания> <–узел источника питания>
+ <вход разрешения чтения> <вход разрешения записи>
+ <старший разряд адреса> . . . <младший разряд адреса>
+ <старший разряд входа данных>... <младший разряд входа данных>
+ <старший разряд выхода> . . . <младший разряд выхода>
+ <имя модели динамики> <имя модели вход/выход>
+ [FILE=<имя файла>]
+ [DATA=<флаг системы счисления>$<данные программы>$]
+ [MNTYMXDLY=<выбор значения задержки>]
+ [IO_LEVEL=<уровень модели интерфейса>]
![]() Рис. 6.15. Оперативное запоминающее устройство |
в формате Intel Hex, в котором записаны данные ЗУ. Оно может быть указано как текстовая константа (и тогда заключается в кавычки " ") или как текстовое выражение (заключается между вертикальными черточками | | ). Если приведена опция FILE, то любые данные, приведенные после опции DATA, игнорируются.
Флаг системы счисления
принимает значения:
B – двоичная система счисления;
O – восьмеричная система счисления (бит старшего разряда расположен по младшему адресу);
X – шестнадцатиричная система счисления (бит старшего разряда расположен по младшему адресу).
Данные программы помещаются между знаками доллара $ и могут располагаться как слитно, так и разделяться одним или несколькими пробелами. Поток данных начинается с нулевого адреса, по которому размещается первый разряд данных. Следующий бит относится ко второму разряду данных, и так до тех пор, пока не будут определены состояния всех разрядов по этому адресу.
После этого перечисляются данные по следующему адресу и т. д., как и в ПЗУ.
Модель ОЗУ состоит из двух секций записи и считывания данных, которые имеют различные выводы для подачи сигналов разрешения, различные выводы для записи и считывания данных и общие выводы адреса (рис. 6.15).
При записи данных в ОЗУ
необходимо сначала подать сигналы на адресные входы и входы данных и не изменять их в течение определенного времени – времени установления





Для чтения из ОЗУ на вход разрешения чтения необходимо подать “1”, а состояния узлов выходных данных изменяются от состояния высокого импеданса Z до соответствующего состояния спустя некоторое время


![]() Рис. 6.16. Переходные процессы в ОЗУ: а - запись, б - чтение |
В модели ОЗУ ничто не препятствует одновременно установить “1” на входах разрешения чтения и записи, хотя в большинстве реальных ОЗУ это не допускается. Новые считанные данные посылаются на выходы данных после перехода сигнала разрешения записи из “1” в “0”.
Модель динамики ОЗУ имеет формат
.MODEL <имя модели динамики> URAM [(параметры модели динамики)]
Параметры этой модели приведены в табл. 6.13 (значение по умолчанию – 0, единица измерения – с).
Таблица 6.13
|
Идентификатор |
Параметр |
|
TPADHMN |
Время выборки адреса при переключении выходов “0”![]() |
|
TPADHTY |
То же, типичное значение |
|
TPADHMX |
То же, максимальное значение |
|
TPADLMN |
Время выборки адреса при переключении выходов “1”![]() |
|
TPADLTY |
То же, типичное значение |
|
TPADLMX |
То же, максимальное значение |
|
TPERDHMN |
Время выборки разрешения при переключении выходов “Z”![]() |
|
TPERDHTY |
То же, типичное значение |
|
TPERDHMX |
То же, максимальное значение |
|
TPERDLMN |
Время выборки разрешения при переключении выходов “Z”![]() |
|
TPERDLTY |
То же, типичное значение |
|
TPERDLMX |
То же, максимальное значение |
|
TPERDHZMN |
Время выборки разрешения при переключении выходов “1”![]() |
|
TPERDHZTY |
То же, типичное значение |
|
TPERDHZMX |
То же, максимальное значение |
|
TPERDLZMN |
Время выборки разрешения при переключении выходов “0”![]() |
|
TPERDLZTY |
То же, типичное значение |
|
TPERDLZMX |
То же, максимальное значение |
|
TSUDEWMN |
Время установления данных относительно переднего фронта сигнала разрешения, минимальное значение |
|
TSUDEWTY |
То же, типичное значение |
|
TSUDEWMX |
То же, максимальное значение |
|
TSUAEWMN |
Время установления адреса относительно переднего фронта сигнала разрешения, минимальное значение |
|
TSUAEWTY |
То же, типичное значение |
|
TSUAEWMX |
То же, максимальное значение |
|
TWEWHMN |
Длительность сигнала разрешения при записи “1”, минимальное значение |
|
TWEWHTY |
То же, типичное значение |
|
TWEWHMX |
То же, максимальное значение |
|
TWEWLMN |
Длительность сигнала разрешения при записи “0”, минимальное значение |
|
TWEWLTY |
То же, типичное значение |
|
TWEWLMX |
То же, максимальное значение |
|
THDEWMN |
Время удержания входных данных относительно заднего фронта сигнала разрешения записи, минимальное значение |
|
THDEWTY |
То же, типичное значение |
|
THDEWMX |
То же, максимальное значение |
|
THAEWMN |
Время удержания адреса по отношению к заднему фронту сигнала разрешения записи, минимальное значение |
|
THAEWTY |
То же, типичное значение |
|
THAEWMX |
То же, максимальное значение |
6.4.6. Прочие устройства
Источники постоянных логических сигналов. Эти компоненты имеют выходы, но не имеют входов. Логический уровень выходного сигнала равен “1” для источников типа PULLUP и “0” для источников типа PULLDN.
Внутренние сопротивления источников задаются при описании модели вход/выход. Модель динамики эти источники не имеют. Приведем их описание:
|
Тип |
Параметр |
Порядок перечисления выводов |
Функциональное назначение |
|
PULLUP |
Количество источников логического сигнала “1” |
Вых.1, вых.2, ... |
Матрица источников |
|
PULLDN |
Количество источников логического сигнала “0” |
Вых.1, вых.2, ... |
Матрица источников |
U4 PULLUP(2) $G_DPWR $G_DGND ; Два источника “1”
+ PIN0 PIN1 R2K
U5 PULLDN(4) $G_DPWR $G_DGND ; Четыре источника “0”
+ BUS0, BUS1, BUS2, BUS3 R50
.MODEL R2K UIO (drvh=2K)
.MODEL R50 UIO (drvl=50)
Цифровые линии задержки. Они осуществляют задержку входного сигнала любой длительности (заметим, что вентили не пропускают импульсы, длительность которых меньше времени задержки). Линии задержки имеют тип DLYNE, в списке узлов после перечисления узлов подключения источника питания указываются <узел входа> и <узел выхода>.
Модель динамики линии задержки имеет форму
.MODEL <имя модели> UDLY [(параметры)]
Линия задержки имеет следующие параметры (значение по умолчанию – 0, единица измерения – с):
|
Идентификатор |
Параметр |
|
DLYMN |
Минимальная задержка |
|
DLYTY |
Типичная задержка |
|
DLYMX |
Максимальная задержка |
Демонстрация основных возможностей
![]() Рис. 1.1. Экран графического редактора Schematics |
Прежде чем переходить к систематическому изложению правил работы с Design Center, проиллюстрируем основные этапы моделирования на простейшем примере амплитудного детектора (рис. 1.1).
Графический редактор Schematics.
Позволяет создавать чертежи принципиальных схем в среде Windows и передавать управление другим программам (PSpice, Probe, StmEd, Parts, Polaris и Optimizer). Моделируемая схема может состоять из следующих типовых компонентов: резисторы, конденсаторы, индуктивности, трансформаторы (в том числе с магнитными сердечниками), диоды (включая стабилитроны и варикапы), биполярные, полевые и МОП-транзисторы, ключи, управляемые током и напряжением, линии передачи с потерями, аналого-цифровые и цифро-аналоговые преобразователи, цифровые элементы (вентили, триггеры, устройства контроля, запоминающие устройства и программируемые логические матрицы). Кроме того, из этих компонентов можно создать макромодели или иерархические структуры более сложных компонентов и устройств.
Графический редактор вызывается щелчком кнопки мыши по пиктограмме Psched (см. нижнюю часть рис. 1.1). В процессе его загрузки подключаются библиотеки графических символов и экран редактора приобретает вид, показанной на рис. 1.1. Редактор Schematics управляется с помощью системы ниспадающих меню и пиктограмм. Имеется встроенная помощь для получения краткой информации об основных правилах работы. Обратим внимание, что на схему можно наносить символы кириллицы – это открывает возможность выпуска технической документации по ЕСКД.
В верхней части экрана располагается горизонтальное меню, состав пунктов которого зависит от выбранного режима редактирования (редактирование принципиальных электрических схем либо редактирование символов, т. е. условных графических обозначений компонентов). Изучение основных команд редактора Schematics не займет много времени, особенно если имеется опыт работы с распространенными системами P-CAD или OrCAD.
Вначале нужно выбрать курсором команду File, после чего в ниспадающем меню выбрать строку New (или щелкнуть по пиктограмме

Символы компонентов наносятся на схему по команде Draw/Get New Part (или выбором пиктограммы


Позиционные обозначения компонентов проставляются автоматически (с возможностью редактирования), а имена цепей – вручную по команде Edit/Label. Однако достаточно проставить имена не всех цепей, а только тех, на которые будут сделаны ссылки при моделировании и графическом отображении результатов. Неименованным цепям по умолчанию присваиваются имена вида $N_0001, на которые делать ссылки достаточно неудобно. Однако, как будет указано ниже, при использовании специальных маркеров именовать цепи не обязательно – достаточно маркером пометить цепь или вывод компонента и на график будет выведена соответствующая характеристика.
Графический редактор Schematics позволяет именовать компоненты на схеме так, как это принято по ЕСКД, например транзисторы всех типов можно именовать как V1, V2 ... В то же время в текстовом задании на моделирование биполярные транзисторы автоматически получат префикс Q (например, Q_V1), полевые – префикс M (например, M_V7) и т. д., как это требуется по правилам PSpice.
![]() Рис. 1.2. Панель редактирования атрибутов компонента |
На рис. 1.2 в качестве примера приведен список атрибутов независимого источника синусоидального напряжения, который характеризуется величиной ЭДС при расчете режима по постоянному току (DC), комплексной амплитудой (AC) при анализе частотных характеристик и параметрами синусоидального сигнала (постоянная составляющая voff, амплитуда vampl, частота freq и т.
п.), применяемого при расчете переходных процессов.
Подготовка схемы к моделированию.
Для подготовки схемы к моделированию необходимо с помощью редактора Schematics под управлением пункта Analysis горизонтального меню выполнить три этапа.
1. Сначала по команде Analysis/Electrical Rule Check проверяется наличие в схеме неподсоединенных (плавающих) выводов компонентов, совпадающих позиционных обозначений и других ошибок. Полнота проверки тем больше, чем больше информации о типах компонентов и их выводов занесено в библиотеку символов. При обнаружении ошибок на экран выводится информационное сообщение и перечень ошибок с указанием координат.
2. Далее задаются директивы моделирования по команде Analysis/Setup (или нажатием пиктограммы

AC Sweep – расчет характеристик линеаризованной схемы в частотной области и уровня ее внутреннего шума;
Load/Save Bias Points – запоминание/чтение режима схемы по постоянному току;
DC Sweep – расчет режима по постоянному току при вариации входного напряжения, тока или температуры;
Monte Carlo/Worst Case – статистический анализ по методу Монте-Карло и расчет наихудшего случая;
Digital Setup – установка параметров цифровых устройств (тип задержек, тип аналого-цифрового интерфейса, установка начальных состояний триггеров);
Options – задание параметров, контролирующих точность результатов моделирования и характер вывода данных в текстовый файл результатов моделирования .out;
Parametric – задание варьируемых параметров;
Sensitivity – расчет малосигнальных чувствительностей в режиме по постоянному току;
Temperature – установка температуры (по умолчанию 27

Transfer Function – расчет малосигнальных передаточных функций по постоянному току;
Transient – расчет переходных процессов и спектральный анализ по Фурье.
В качестве примера на рис. 1.3 изображена панель задания параметров директив расчета переходных процессов и спектрального анализа.
![]() Рис. 1.3. Установка параметров директив моделирования переходных процессов |
По команде Setup задаются не все возможные директивы программы PSpice. Остальные директивы задаются с помощью атрибутов, присваиваемых на схеме специальным символам, при этом каждой директиве соответствует отдельный символ. Например, на рис. 1.1 помещен символ PARAMETERS, задающий директиву определения глобальных параметров .PARAM, и специальный символ OPTPARAM, задающий перечень варьируемых параметров и их начальные значения для программы PSpice Optimizer.
3. В заключение по команде Analysis/Create Netlist
создаются список соединений схемы и задание на моделирование, которые заносятся в три файла с расширениями имен .als, .net, .cir. На рис. 1.4 приведены эти файлы для схемы, изображенной на рис. 1.1.
|
Файл ampldet.net (список соединений) |
Файл ampldet.als (список соответствий) |
|
* Schematics Netlist * R_R3 0 4 {R} R_R2 0 2 1k R_R1 2 $N_0001 3k R_R4 0 5 100k C_C4 3 5 50nF C_C1 1 2 1uF C_C3 0 4 1u C_C2 3 $N_0001 25nF V_V1 1 0 AC 1 +SIN 0 0.1 10kHz 0 0 0 L_L1 3 $N_0001 {LK} Q_Q1 3 2 4 KT312B D_D1 5 0 KD220A V_V2 $N_0001 0 9V |
* Schematics Aliases * .ALIASES R_R3 R3(1=0 2=4 ) R_R2 R2(1=0 2=2 ) R_R1 R1(1=2 2=$N_0001 ) R_R4 R4(1=0 2=5 ) C_C4 C4(1=3 2=5 ) C_C1 C1(1=1 2=2 ) C_C3 C3(1=0 2=4 ) C_C2 C2(1=3 2=$N_0001 ) V_V1 V1(+=1 -=0 ) L_L1 L1(1=3 2=$N_0001 ) Q_Q1 Q1(c=3 b=2 e=4 ) D_D1 D1(1=5 2=0 ) V_V2 V2(+=$N_0001 -=0 ) .ENDALIASES |
* D:\MSIM62\EXAMPLES\WORK1\AMPLDET.SCH
* Schematics Version 6.2a - May 1995
* Fri Jan 05 08:58:15 1996
.WATCH TRAN V([5])
.INC "AMPLDET.par"
.PARAM LK=10mH
** Analysis setup **
.ac DEC 101 100 100k
.STEP LIN TEMP -50 100 10
.tran/OP 10us 1ms
.four 10kHz 12 V([3])
.OP
* From [SCHEMATICS NETLIST] section of msim.ini:
.lib D:\MSIM62\LIB\RUS.LIB
.lib D:\MSIM62\LIB\nom.lib
.INC "AMPLDET.net"
.INC "AMPLDET.als"
.probe
.END
Рис. 1.4. Пример файлов описания схемы и задания на моделирование
Замечание. Из перечисленных выше пунктов обязательно выполнить только п. 2 – установку параметров моделирования. Остальные пункты выполняются автоматически после запуска режима моделирования. Однако их имеет смысл выполнять автономно в следующих случаях:
– при отладке сложных схем;
– при внесении изменений в текстовые библиотеки моделей компонентов, потому что текстовые файлы описания схемы автоматически обновляются после запуска режима моделирования только при наличии изменений в схеме.
![]() Рис. 1.5. Экран программы PSpice |

Графический постпроцессор Probe. Программа Probe выводит на экран графики результатов моделирования, производит их математическую обработку и выводит на экран в табличной форме их важнейшие характеристики, наносит на графики поясняющие надписи и позволяет получать жесткие копии результатов моделирования в графической форме.
Математические преобразования над графиками заключаются в выполнении арифметических операций, вычислении различных функций, взятии интегралов, расчете спектров, измерении параметров формы графиков, построении зависимостей любой характеристики графика от любого варьируемого параметра схемы.
![]() Рис. 1.6. Многооконный экран |

Важнейшее свойство программы Probe – возможность обработки графиков и построение зависимостей любых характеристик схемы от варьируемых параметров. Так, на рис. 1.7 построены зависимости полосы пропускания и резонансной частоты избирательного усилителя (рис. 1.1) от температуры. Эти характеристики рассчитываются с помощью целевых функций, записанных в файл msim.prb. Приведем пример целевой функции для расчета полосы пропускания по уровню -3 дБ:
Bandwidth(1,db_level) = x2-x1
{
1|Search forward level(max-db_level,p) !1
Search forward level(max-db_level,n) !2;
}
![]() Рис. 1.7. Характеристики многовариантных расчетов |
Для переключения в режим построения зависимостей характеристик от варьируемого параметра выполняется команда Plot/X Axis Settings/Performance (пиктограмма


Чтобы избежать ввода длинных имен целевых и других функций используются макрокоманды, определяемые по команде Trace/Macro. Введем, например, макрокоманду B= Bandwidth(Vdb(3),3), тогда для расчета полосы пропускания напряжения в узле 3 достаточно по команде Trace/Add указать имя макрокоманды B. Отметим, что если в обычном режиме построения графиков (не выполняя команду Plot/X Axis Settings/Performance) указать имя целевой функции или макрокоманды, то ее значение отображается на поле графика в текстовом виде, как на рис. 1.6.
Замечание. В программе Probe имеется возможность оперативного вывода на экран графиков текущих результатов моделирования (эта возможность появилась в Design Center 6.1). Для этого в меню Analysis в режиме Probe Setup выбирается опция Monitor Waveforms – после начала моделирования автоматически запустится программа Probe и будут выведены графики переменных, помеченных маркерами или указываемых по команде Trace/Add. Графики выводятся на экран порциями в соответствии с размером кэш-памяти компьютера.
![]() Рис. 1.8. Экран редактора сигналов StmEd |
Диод
Схема замещения полупроводникового диода (рис. 4.1) состоит из идеального диода, изображенного в виде нелинейного зависимого источника тока I(V), емкости p–n-перехода C и объемного сопротивления RS [1, 33]. Параметры математической модели диода (см. разд. 3.2.6) приведены в табл. 4.1.Таблица 4.1
| Имя параметра | Параметр | Значение по умолчанию | Единица измерения | ||||
| IS | Ток насыщения при температуре 27![]() | 10![]() | А | ||||
| RS | Объемное сопротивление | 0 | Ом | ||||
| N | Коэффициент инжекции | 1 | |||||
| ISR | Параметр тока рекомбинации | 0 | А | ||||
| NR | Коэффициент эмиссии для тока ISR | 2 | |||||
| IKF | Предельный ток при высоком уровне инжекции | ![]() | А | ||||
| TT | Время переноса заряда | 0 | с | ||||
| CJO | Барьерная емкость при нулевом смещении | 0 | Ф | ||||
| VJ | Контактная разность потенциалов | 1 | В | ||||
| M | Коэффициент лавинного умножения | 0,5 | |||||
| EG | Ширина запрещенной зоны | 1,11 | эВ | ||||
| FC | Коэффициент нелинейности барьерной емкости прямосмещенного перехода | 0,5 | |||||
| BV | Обратное напряжение пробоя (положительная величина) | ![]() | В | ||||
| IBV | Начальный ток пробоя, соответствующий напряжению BV (положительная величина) | 10![]() | А | ||||
| NBV | Коэффициент неидеальности на участке пробоя | 1 | |||||
| IBVL | Начальный ток пробоя низкого уровня | 0 | А | ||||
| NBVL | Коэффициент неидеальности на участке пробоя низкого уровня | 1 | |||||
| XTI | Температурный коэффициент тока насыщения | 3 | |||||
| TIKF | Линейный температурный коэффициент IKF | 0 | ![]() ![]() | ||||
| TBV1 | Линейный температурный коэффициент BV | 0 | ![]() ![]() | ||||
| TBV2 | Квадратичный температурный коэффициент BV | 0 | ![]() ![]() | ||||
| TRS1 | Линейный температурный коэффициент RS | 0 | ![]() ![]() | ||||
| TRS2 | Квадратичный температурный коэффициент RS | 0 | ![]() ![]() | ||||
| KF | Коэффициент фликкер-шума | 0 | |||||
| AF | Показатель степени в формуле фликкер-шума | 1 | |||||
| T_MEASURD | Температура измерений | ![]() | |||||
| T_ABS | Абсолютная температура | ![]() | |||||
| T_REL_GLOBAL | Относительная температура | ![]() | |||||
| T_REL_LOCL | Разность между температурой диода и модели-прототипа | ![]() |
![]() Рис. 4.2. ВАХ идеального диода |
![]() Рис. 4.1. Нелинейная модель полупроводникового диода |

Зависимость

аппроксимирует ВАХ диода при положительном напряжении на переходе V. Здесь





Ток диода при отрицательном напряжении на переходе


где






– абсолютная температура p–n-перехода. Вид ВАХ диода показан на рис. 4.2.
Емкость перехода C
равна

где




Линеаризованная схема замещения диода. Схема приведена на рис. 4.3, а. Ее можно дополнить источниками шумовых токов, как показано на рис. 4.3, б. В диоде имеются следующие источники шума: объемное сопротивление RS, характеризующееся тепловым током




– текущая частота.
![]() Рис. 4.3. Линеаризованная схема замещения диода (а) с включением источников внутреннего шума (б) |
IS(T) = IS·exp{EG(T)/[N·Vt(T)]T/Tnom–1)}(T/Tnom)

ISR(T)=ISR·exp{EG(T)/[N·Vt(T)](T/Tnom–1)}(T/Tnom)

IKF(T)=IKF [1+TIKF (T–Tnom)];
BV(T)=BV [1+TBV1(T–Tnom)+TBV2(T–Tnom)

RS(T)=RS [1+TRS1(T–Tnom)+TRS2(T–Tnom)

VJ(T) = VJ·T/Tnom–3Vt(T)ln(T/Tnom) –EG(Tnom)T/Tnom+EG(T);
CJO(T)= CJO{1+M[0,0004 (T–Tnom)+1–VJ(T)/VJ]};
KF(T) = KF·VJ(T)/VJ, AF(T) = AF·VJ(T)/VJ;
EG(T) = EGo –
aT

где EG(Tnom) - ширина запрещенной зоны при номинальной температуре (1,11 эВ для кремния; 0,67 эВ для германия; 0,69 эВ для диодов с барьером Шотки при температуре 27


Приведенные выше выражения описывают диоды с p–n-переходом, включая и стабилитроны. Диоды с барьером Шотки также характеризуются этими зависимостями, но они обладают пренебрежимо малым временем переноса TT~0 и более чем на два порядка большими значениями тока диода I
[33]. При этом ток насыщения определяется зависимостью IS = = K·T·exp(-


Скалярный множитель Area. Указываемый при включении диода в схему (разд. 3.2.6), он позволяет в программе PSpice определить эквивалентный диод, характеризующий параллельное включение нескольких одинаковых приборов или прибор, занимающий большую площадь. С его помощью изменяются значения параметров IS, IRS, IBV, IBVL, RS и CJO
IS=IS·Area, ISR=ISR·Area, IBV=IBV·Area, IBVL=IBVL·Area, RS=RS/Area, CJO=CJO·Area.
По умолчанию скалярный множитель Area=1.
В качестве примера приведем описание параметров модели диода Д104А
.model D104A D (IS=5.81e-12 RS=8.1 N=1.15 TT=8.28nS
+ CJO=41.2pF VJ=0.71 M=0.33 FC=0.5 EG=1.11 XTI=3)
Директивы моделиpования
Программа PSpice рассчитывает следующие характеристики электронных цепей:– режим цепи по постоянному току в “рабочей точке”;
– режим по постоянному току при вариации источников постоянного напряжения или тока, температуры и других параметров цепи;
– чувствительность характеристик цепи к вариации параметров компонентов в режиме по постоянному току;
– малосигнальные передаточные функции в режиме по постоянному току;
– характеристики линеаризованной цепи в частотной области при воздействии одного или нескольких сигналов;
– спектральная плотность внутреннего шума;
– переходные процессы при воздействии сигналов различной формы;
– спектральный анализ;
– статистические испытания по методу Монте-Карло в любых режимах.
Кроме того, производится многовариантный анализ любых характеристик при вариации температуры или любого параметра схемы. С помощью модуля Optimizer выполняется параметрическая оптимизация (см. разд. 7.4).
Каждому виду расчета соответствует определенная директива. Большинство директив задается с помощью панели меню команды Analysis/Setup программы Schematics (рис. 2.16). Для таких директив в скобках после их названия (см. ниже) указываются имена кнопок на этой панели. Остальные директивы вводят в задание на моделирование, размещая на схеме специальные символы из библиотеки special.slb (см. Приложение 1). Приведем описание всех директив, систематизируя их по разделам. С математической реализацией алгоритмов моделирования можно познакомиться в [1, 26].
Функциональное описание цифровых устройств
При составлении моделей сложных цифровых компонентов удобно применять следующие примитивы:Logic Expression – составление логических выражений (примитив LOGICEXP);
Pin-to-Pin Delay – задание задержек распространения сигналов (примитив PINDLY);
Constraint Cheker – правила проверки временных соотношений, таких, как минимальное время установки/сброса, минимальная длительность импульсов и т. п. (примитив CONSTRAINT). При нарушении этих ограничений в процессе моделирования выдаются предупреждающие соотношения (в PSpice 4 в этих целях использовались два отдельных примитива WDTHCK и SUHDCK).
6.5.1. Логические выражения
Примитив LOGICEXP задается по формату
Uxxx LOGICEXP (<количество входов>,<количество выходов>)
+ <+узел источника питания> <–узел источника питания>
+ <входной узел 1> . . . <входной узел n>
+ <выходной узел 1> . . . <выходной узел n>
+ <имя модели динамики> <имя модели вход/выход>
+ [IO_LEVEL=<уровень модели интерфейса>]
+ [MNTYMXDLY=<выбор значения задержки>]
+ LOGIC:
+ <логическое назначение>*
Логическое назначение записывается двояко:
<номер выходного узла> = {<логическое выражение >}
<промежуточная переменная> = {<логическое выражение >}
Каждый упомянутый в спецификации выходной узел должен иметь одно логическое выражение. Назначенные один раз промежуточные переменные могут использоваться в последующих логических выражениях. Промежуточным переменным присваиваются имена по тем же правилам, что именам узлов.
Логические выражения заключаются в фигурные скобки { }. Они записываются на одной или более строках, строки продолжения имеют символ “+” в первой позиции. Приведем перечень логических операторов в порядке их старшинства:
~ – логическое отрицание;
& – логическое И;
^ – логическое исключающее ИЛИ;
| – логическое ИЛИ.
В качестве операндов могут быть:
– входные узлы;
– предварительно определенные временные переменные;
– предварительно определенные выходные узлы;
– логические константы “0”, “1”, “X”, “R”, “F”.
При записи выражений можно применять круглые скобки для группирования операндов. Все эти логические выражения могут использоваться также и в программе Probe.
Модель динамики примитива LOGICEXP имеет такой же формат, как стандартные вентили:
.MODEL <имя модели> UGATE [(параметры)]
Логические выражения вычисляются в процессе моделирования в порядке их следования. Задержка появления сигналов на выходных узлах определяется в модели динамики. Внутренние обратные связи в логических выражениях не допускаются, однако внешние обратные связи по-прежнему возможны.
Приведем пример описания логики функционирования арифметико-логического устройства 74181. Временные задержки будут заданы ниже с помощью примитивов PINDLY и CONSTRAINT:
U74181 LOGICEXP( 14, 8) DPWR DGND
+ A0BAR A1BAR A2BAR A3BAR B0BAR B1BAR B2BAR
+ B3BAR S0 S1 S2 S3 M CN LF0BAR LF1BAR LF3BAR
+ LAEQUALB LBAR LGBAR LCN+4
+ D0_GATE IO_STD
+
+ LOGIC:
*
*Промежуточные переменные
*
+ I31 = { ~((B3BAR & S3 & A3BAR) | (A3BAR & S2 & ~B3BAR)) }
+ I32 = { ~((~B3BAR & S1) | (S0 & B3BAR) | A3BAR) }
+
+ I21 = { ~((B2BAR & S3 & A2BAR) | (A2BAR & S2 & ~B2BAR)) }
+ I22 = { ~((~B2BAR & S1) | (S0 & B2BAR) | A2BAR) }
+
+ I11 = { ~((B1BAR & S3 & A1BAR) | (A1BAR & S2 & ~B1BAR)) }
+ I12 = { ~((~B1BAR & S1) | (S0 & B1BAR) | A1BAR) }
+
+ I01 = { ~((B0BAR & S3 & A0BAR) | (A0BAR & S2 & ~B0BAR)) }
+ I02 = { ~((~B0BAR & S1) | (S0 & B0BAR) | A0BAR) }
+
+ MBAR = {~M}
+ P = { I31 & I21 & I11 & I01 }
*
* Выходные переменные
*
+ LF3BAR = { (I31 & ~I32) ^
+ ~( (I21 & I11 & I01 & Cn & MBAR) | (I21 & I11 & I02 & MBAR ) |
+ ( I21 & I12 & MBAR) | (I22 & MBAR) ) }
+
+ LF2BAR = { (I21 & ~I22) ^
+ ~( (I11 & I01 & Cn & MBAR) | (I11 & I02 & MBAR ) | ( I12 & MBAR) | )}
+
+ LF1BAR = { (I11 & ~I12) ^~( (Cn & I01 & MBAR) | (I02 & MBAR) ) }
+
+ LF0BAR = { I01 & ~I02) ^~(MBAR & Cn) }
+
+ LGBAR = { ~( I32 | (I31 & I22) | (I31 & I21 & I12) | (I31 & I22 & I11 & I02) ) }
+
+ LCN+4 = { ~LGBAR | (P & Cn) }
+ LPBAR = { ~P }
+ LAEQUALB = { LF3BAR & LF2BAR & LF1BAR & LF0BAR }
6.5.2. Задание задержек распространения
Примитив PINDLY позволяет назначить задержки распространения сигналов сложным устройствам. Один единственный примитив PINDLY позволяет моделировать временные соотношения и выходные характеристики целой интегральной схемы, имеющей в своем составе, в частности, тристабильные вентили. Кроме того, в описание примитива PINDLY допускается включить спецификации контроля длительностей импульсов SETUP, HOLD, WIDTH, FREQ и GENERAL, которые используются в примитиве CONSTRAINT (см. ниже).
Примитив PINDLY задается по формату
Uxxx PINDLY (<количество путей>,
+ <количество входов разрешения> <количество дополнит. узлов>)
+ <+узел источника питания> <–узел источника питания>
+ <входной узел 1> . . . <входной узел n>
+ [<узел разрешения 1> . . . < узел разрешения n>]
+ [<внутренний узел 1> . . . < внутренний узел n>]
+ <выходной узел 1> . . . <выходной узел n>
+ <имя модели вход/выход>
+ [ IO_LEVEL=<уровень модели интерфейса>]
+ [ MNTYMXDLY=<выбор значения задержки>]
+ [ BOOLEAN:
+ <булевское назначение>*]
+ PINDLY:
+ <назначение задержек>*
+ [TRISTATE:
+ ENABLE LO | HI <узел разрешения>
+ <назначение задержек>*]
+ [ SETUP_HOLD: <спецификация времен установки/удержания>]
+ [ WIDTH: <спецификация ширины импульса>]
+ [ FREQ: <спецификация частоты повторения>]
+ [ GENERAL: <общая спецификация>]
Здесь приняты следующие обозначения:
<количество путей> – количество путей распространения сигналов от входных к выходным узлам; при этом количество входов путей должно быть равно количеству выходов. С каждым путем вход–выход ассоциируется задержка, вычисляемая по определенным правилам;
<количество входов разрешения> – спецификация тристабильных узлов, имеющихся в примитиве (может быть равным нулю). Тристабильные узлы используются в секциях TRISTATE;
<количество внутренних узлов> – внутренние узлы используются в выражениях, определяющих задержки, но они не входят в пути вход–выход (может быть равным нулю).
Проиллюстрируем взаимосвязь различных узлов на примере следующего примитива (рис. 6.17):
U1 PINDLY(4, 0, 3) $G_DPWR $G_DGND
+ IN1 IN2 IN3 IN4
+ REF1 REF2 REF3
+ OUT1 OUT2 OUT3 OUT4
+ IO_MODEL D0_GATE
+ PINDLY:
+ . . . .
![]() Рис. 6.17. Правила назначения задержек |
Секция BOOLEAN. С помощью <булевского назначения> определяются промежуточные переменные, которые могут быть использованы в <определении задержки>. Секция BOOLEAN может быть включена на любой строке в описании примитива PINDLY. Выражение <булевское назначение> имеет вид
<булевская переменная> = { <булевское выражение> }
Имя <булевская переменная> составляется по тем же правилам, что имя узла.
Выражение <булевское выражение> принимает значение TRUE (логическая “1”) или FALSE (логический “0”). Подобно всем остальным выражением оно должно быть заключено в фигурные скобки { }. Перечислим булевские операторы в порядке убывания их старшинства:
|
Оператор |
Название |
|
~ |
Логическое отрицание |
|
== |
Равно |
|
!= |
Не равно |
|
& |
Логическое И |
|
^ |
Логическое исключающее ИЛИ |
|
| |
Логическое ИЛИ |
– предварительно определенные <булевские переменные>;
– функции дополнительных узлов (см. ниже);
– функции изменений (см. ниже);
– <булевские константы> TRUE и FALSE.
Дополнительно операторы “==“ и “!=“ могут быть применены к логическим значениям <входные узлы> и <логические константы>. Это позволяет проанализировать логические состояния узлов, например, выражение CLEAR==1 принимает значение TRUE, если узел CLEAR имеет значение логической “1”, и FALSE – в противоположном случае.
Управляющие функции используются для определения изменений состояний <внутренних узлов> или <выходных узлов>. Все управляющие функции принимают логические значения и поэтому могут входить в состав <булевских выражений>. Приведем список этих функций и их аргументов:
CHANGED (<узел>,<интервал времени>)
CHANGED_LH (<узел>,<интервал времени>)
CHANGED_HL (<узел>,<интервал времени>)
Функция CHANGED принимает значение TRUE, если указанный <узел> изменял свое состояние из 0 в 1 на указанном <интервале времени>, предшествующем текущему моменту времени, в противном случае – FALSE.
Аналогично функция CHANGED_LH принимает значение TRUE, если указанный <узел> изменял свое состояние на указанном <интервале времени>, предшествующем текущему моменту времени, в противном случае – FALSE. Отметим, что CHANGED_LH контролирует только самое последнее изменение.
Наконец, функция CHANGED_HL принимает аналогичные значения, контролируя переходы из “1” в “0”.
Если <интервал времени> задать равным нулю, то рассматриваемые функции примут значение TRUE, если в данный момент времени состояние узла изменяется. Это дает возможность разбивать модель цифровых компонентов на две части: первая моделирует логику функционирования с нулевыми задержками, а вторая учитывает реальные задержки.
Функции изменений предназначены для контроля за изменением состояний <выходных узлов>, для которых вычисляются <выражения для задержек>. Подобно дополнительным функциям они принимают значения логического “0” или “1”. Однако в отличие от них они не имеют аргументов и просто фиксируют изменение состояний выходных узлов в текущий момент времени. Они имеют вид
TRN_pn
Здесь p – значение предыдущего состояния, а n – нового состояния. Логические значения состояний обозначаются символами L (низкий уровень), H (высокий уровень) Z (большое выходное сопротивление) и $ (любой уровень). Так, например, функция TRN_H$ контролирует переход из состояния логическая “1” в любое другое состояние.
Замечание. Функции TRN_pZ и TRN_Zn
принимают значение TRUE, только если они используются в секции TRISTATE, описываемой ниже. Хотя выходные узлы устройств с открытым коллектором переходят в состояние высокого импеданса Z (вместо H), в справочниках обычно приводятся значения задержек TPLH и TPHL. Поэтому в математических моделях устройств с открытым коллектором необходимо использовать функции TRN_LH и TRNHL, а в тристабильных устройствах – TRN_LZ, TRN_HZ, TRN_ZL и TRN_ZH.
Секция PINDLY. Ключевое слово PINDLY отмечает начало секции, содержащей одно или несколько <назначений задержек>, которые имеют формат
<выходной узел>* = { <выражение для задержек> }
Каждый <выходной узел>, перечисленный в спецификации примитива, должен иметь одно выражение для определения задержек. Причем несколько выходных узлов могут иметь общее <выражение для задержек> (на рис. 6.17 <выражение для задержек> обозначено как “Правило”), тогда в левой части назначения задержек помещается список их имен, разделяемых пробелами или запятыми.
<Выражение для задержек> заключается в фигурные скобки и может располагаться на нескольких строках. Это выражение имеет три значения задержек: минимальное, типичное и максимальное. В простейшем случае <выражение для задержек> представляет собой <значение задержек> вида
DELAY(
где
Для спецификации неизвестной величины используется –1. Например, DELAY(20ns, –1,35ns) задает минимальную задержку 20 нс, устанавливаемую программой по умолчанию типичную задержку и максимальную задержку 35 нс.
В более сложных <выражениях для задержек> используются функции CASE вида
CASE
(
<булевское выражение>,< выражение для задержек>, ;Правило 1
<булевское выражение>,< выражение для задержек>, ;Правило 2
. . .
<выражение для задержек> ;Задержки по умолчанию
)
Аргументами функции CASE являются пары <булевское выражение>, <выражение для задержек>, замыкаемые финальным <выражением для задержек>, определяющим значение задержки по умолчанию. При вычислении функции CASE вычисляются <булевские выражения> в порядке их следования до тех пор, пока не будет получен результат TRUE. После этого задержкам присваиваются значения из соответствующего выражения. Если ни одно из выражений не имеет значения TRUE, задержкам присваиваются значения из последнего выражения.
Приведем пример:
. . .
+ BOLEAN:
+ CLOCK = { CHANGED_LH( CLK, 0 ) }
+ PINDLY:
+ QA QB QC QD = {
+ CASE (
+ CLOCK & TRN_LH, DELAY(–1, 13ns, 24ns),
+ CLOCK & TRN_HL, DELAY(–1, 18ns, 27ns),
+ CHANGED_HL(CLBAR,0), DELAY(–1,20ns,28ns),
+ DELAY(–1, 20ns, 28ns) ; По умолчанию
+ )
+ }
В этом примере рассматривается четырехразрядный счетчик. Вводится булевская переменная CLOCK, которая принимает значение TRUE, когда дополнительный узел CLK изменяет свое состояние из “0” в “1” в текущий момент времени. Четыре выхода QA, ..., QD имеют одно и то же правило определения задержек. Функция CASE позволяет назначить разные задержки в процессе счета или обнуления. Первые два правила определяют задержки в процессе счета (CLK изменяется из состояния “0” в “1”). Первое правило применяется при изменении состояний выходов из “0” в “1”, второе – из “1” в “0”. Третье правило непосредственно определяет задержки, когда изменяется состояние узла CLRBAR.
Секция TRISTATE содержит одно или более <назначений задержек>. В отличие от секции PINDLY здесь состояния выходных узлов контролируются с помощью специальных узлов разрешения (enable). Непосредствено после ключевого слова TRISTATE указываются имена узлов разрешения и их полярность с помощью ключевого слова ENABLE по формату
ENABLE HI <узел разрешения> ; Разрешение в состоянии “1”
ENABLE LO <узел разрешения> ; Разрешение в состоянии “0”
Указанный <узел разрешения> управляет назначениям всех выходных узлов текущей секции. Отметим, что <выражения для задержек> в секции TRISTATE может содержать функции изменений, связанных с состоянием высокого импеданса, например TRN_ZL и TRN_HZ.
Приведем пример, демонстрирующий применение узлов разрешения для контролирования более чем одного выхода. Здесь также показано, что некоторые выходы могут быть обычными (PINDLY), а другие тристабильными (значения задержек опущены):
U1 PINDLY(3, 1, 2) $G_DPWR $G_DGND
+ IN1 IN2 IN3
+ ENA
+ REF1 REF2
+ OUT1 OUT2 OUT3
+ IO_MODEL
+ TRISTATE:
+ ENABLE LO = ENA
+ OUT1 = {
+ CASE (
+ CHANGED (REF1, 0) & TRN_LH, DELAY(. . .),
+ CHANGED (REF2, 0) DELAY(. . .),
+ TRN_ZL, DELAY(. . .),
+ . . .
+ )
+ }
+ OUT3 = {
+ CASE (
+ TRN_LZ, DELAY(. . .),
+ TRN_HZ, DELAY(. . .),
+ . . .
+ )
+ }
+ PINDLY:
+ OUT2 = {
+ CASE (
+ CHANGED (REF1, 0), DELAY(. . .),
+ . . .
+ )
+ }
![]() Рис. 6.18. Управление задержками с помощью узлов разрешения |
Функционирование примитива PINDLY. Состояния выходных узлов примитива PINDLY изменяются при изменении состояний любого входного узла или узла разрешения. Каждому входному узлу соответствует выходной узел. Сначала определяются состояния внутренних переменных в секции BOOLEAN, затем вычисляются <выражения для задержек> в секциях PINDLY или TRISTATE. После этого изменившееся состояние входного узла присваивается соответствующему ему выходному узлу с задержкой.
Приведем пример реального счетчика 74LS160A:
ULS160ADLY PINDLY (5,0,10) DPWR DGND
+ RCO QA QB QC QD ; Входы
+ CLK LOADBAR ENT CLRBAR ; Внутренние узлы
+ RCO_O QA_O QB_O QC_O QD_O ; Выходы
+ IO_LS MNTYMXDLY = {MNTYMXDLY} IO_LEVEL = {IO_LEVEL}
+
+ BOOLEAN:
+ CLOCK = { CHANGED_LH (CLK, 0) }
+ CNTENT = { CHANGED (ENT, 0) }
+
+ PINDLY:
+ QA_O QB_O QC_O QD_O = {
+ CASE (
+ CLOCK & TRN_LH, DELAY( -1, 13NS, 24NS),
+ CLOCK & TRN_HL, DELAY( -1, 18NS, 27NS),
+ CHANGED_HL ( CLRBAR, 0), DELAY( -1, 20NS, 28NS),
+ DELAY( -1, 20NS, 28NS) ; По умолчанию
+ )
+ }
+ RCO_O = {
+ CASE (
+ CNTENT, DELAY( -1, 9NS, 14NS),
+ CLOCK & TRN_LH, DELAY( -1, 20NS, 35NS),
+ CLOCK & TRN_HL, DELAY( -1, 18NS, 35NS),
+ DELAY( -1, 20NS, 35NS) ; По умолчанию
+ )
+ }
6.5.3. Контроль временных соотношений
Примитив CONSTRAINT выполняет проверку соблюдения временных соотношений в процессе моделирования. Контролируется минимальное время установки/сброса, минимальная длительность импульсов, частота переключений и предусмотрен общий механизм проверки условий, формулируемых пользователем. Примитив CONSTRAINT только сообщает о нарушении временных сообщений и не изменяет логические состояния узлов и задержки. Он задается по формату
Uxxx CONSTRAINT ( <количество входов> )
+ <+узел источника питания> <–узел источника питания>
+ <входной узел 1> . . . <входной узел n>
+ <имя модели вход/выход>
+ [ IO_LEVEL=<уровень модели интерфейса>]
+ [ BOOLEAN: <булевское назначение> * ] ...
+ [ SETUP_HOLD: <спецификация времен установки/удержания>] ...
+ [ WIDTH: <спецификация ширины импульса> ] ...
+ [ FREQ: <спецификация частоты повторения> ] ...
+ [ GENERAL: <общая спецификация> ] ...
Секция BOOLEAN содержит одно или несколько <булевских назначений> вида
<булевская переменная> = { <булевское выражение> }
Секции BOOLEAN могут включаться в любом порядке при описании примитива CONSTRAINT. Синтаксис <булевских выражений> такой же, что и в примитиве PINDLY, за исключением того, что не могут быть использованы функции изменений.
Секция SETUP_HOLD выполняет проверку времен установки/сброса, она имеет формат
+ SETUP_HOLD:
+ CLOCK <определение типа перехода>=<входной узел>
+ DATA (<кол-во входов данных>)=<входной узел j>...< входной узел k>
+ [ SETUPTIME=<значение интервала времени>]
+ [ HOLDTIME=< значение интервала времени
> ]
+ [ RELEASETIME = < значение интервала времени > ]
+ [ WHEN { <булевское выражение> } ]
+ [ MESSAGE=“<текст дополнительного сообщения>“]
+ [ ERRORLIMIT=<значение> ]
+ [ AFFECTS_ALL | AFFECTS_NONE |
+ AFFECTS (#OUTPUTS)=<список выходных узлов>]
CLOCK задает узел, относительно которого выполняется измерение длительности времен установки/удержания/отпускания. Параметр <определения типа перехода> принимает значения LH или HL, он указывает, от какого фронта импульса (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
ток через индуктивность


Уравнение такого контура относительно переменной x
имеет вид

![]() |
Отсюда вытекают условия эквивалентности этого уравнения уравнению генератора Ван-дер-Поля


Последовательно с индуктивностью 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
![]() |
Обратим внимание, что в директиве .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”).
Параметр <описание формы сигнала> представляет собой произвольную комбинацию одной или нескольких следующих строк:
LABEL=<имя метки>
REPEAT FOREVER
REPEAT
ENDREPEAT
FILE=<имя файла>
Каждая цифра переменной <данные> представляет собой логический уровень соответствующего выходного сигнала, который представлен в системе счисления 2m, где m – соответствующая цифра переменной <формат>.
Количество узлов в <списке узлов> должно быть равно значению переменной <количество сигналов>.
Переменная
Переменная <данные> состоит из символов “0”, “1”, “X”, “R”, “F” или “Z”, интерпретируемых в заданном формате.
Переменная
Переменная <имя метки> используется при организации цикла с помощью оператора перехода GOTO, который передает управление на строку, следующую за оператором LABEL=<имя метки>.
REPEAT FOREVER – начало бесконечно повторяющегося цикла (эквивалентно конструкции REPEAT –1 TIMES).
REPEAT
ENDREPEAT – конец цикла REPEAT.
FILE – указание имени файла, в котором находится описание одного или нескольких входных сигналов.
Приведем пример:
USIGNAL STIM(2,11) $G_DPWR $G_DGND 1 2 IO_STM
+ TIMESTEP=1ns
+ 0C 00 ; В момент времени t=0 состояния обоих узлов равны "0"
+ LABEL=M
+ 1C 01 ; При t=1 нс состояние узла 1 равно "0, узла 2 - "1"
+ 2C 11 ; При t=2 нс состояние обоих узлов равны "1"
+ 3С GOTO M 3 TIMES; В момент времени t=3 нс переход на
+ ; метку M и выполняется первая инструкция без
+ ; дополнительной задержки. Цикл повторяется 3 раза
2. Считывание временной диаграммы цифрового сигнала из файла (устройства FSTIM). Устройства FSTIM задаются по формату:
Uxxx FSTIM(<количество выходов>)
+ <+узел источника питания> <–узел источника питания>
+ <список узлов>*
+ <имя модели вход/выход>
+ FILE=<имя файла сигналов>
+ [IO_LEVEL=<номер макромодели интерфейса вход/выход>]
+ [STIMULUS=<имя воздействия>]
Параметр <количество выходов> определяет количество узлов, к которым подключаются сигналы. Остальные параметры имеют тот же смысл, что в п. 1. Обратим внимание, что задание с помощью параметра FILE имени файла, в котором описаны сигналы, обязательно.
Файл цифрового сигнала может быть получен путем редактирования файла результатов моделирования или составлен вручную с помощью любого текстового редактора.
Файл цифрового сигнала имеет две секции:
1) заголовок (header), содержащий список имен сигналов;
2) список значений сигнала (transitions), содержащий на одной или более строках моменты времени изменений сигналов и колонки их значений.
Приведем сначала пример файла цифровых сигналов:
* Заголовок: содержит имена сигналов
CLOCK, RESET, IN1, IN2; имена 4-х сигналов
*Начало описания сигналов; отделяется от заголовка пустой строкой
0 0000 ; двоичные коды сигналов
10ns 1100
20ns 0101
30ns 1110
40ns 0111
Заголовок имеет следующий формат:
[TIMESCALE=<значение>]
<имя сигнала 1>...<имя сигнала n>...
OCT(<3-й бит сигнала>...<1-й бит сигнала>)...
HEX(<4-й бит сигнала>...<1-й бит сигнала>)...
Имена сигналов могут разделяться запятыми или пробелами. Они располагаются на одной или нескольких строках, но строки продолжения не имеют в начале знака “+”. Максимальное количество сигналов 255, на одной строке могут размещаться не более 300 символов. Имена сигналов перечисляются в том же порядке, в котором их значения приводятся во временных диаграммах.
Если перед именем сигнала не указывается название системы счисления, он считается двоичным. Имена сигналов, записанных в восьмеричном коде, предваряются кодом OCT и группируются по 3 сигнала (имена групп сигналов заключаются в круглые скобки). Шестнадцатеричные сигналы имеют код HEX и группируются по 4 сигнала.
Приведем еще один пример файла сигналов:
Clock Reset In1 In2
HEX(Addr7 Addr6 Addr5 Addr4) HEX(Addr3 Addr2 Addr1 Addr0)
ReadWrite
0 0000 00 0 ; Для наглядности между группами
10n 1100 4E 0 ; можно включать пробелы
20n 0101 4E 1
30n 1110 4E 1
40n 0111 FF 0
Здесь в начале приведены имена четырех двоичных сигналов, затем две группы сигналов, задаваемых в шестнадцатеричном виде, и затем еще один бинарный сигнал.
В последующем списке значений сигналов даны 7 колонок, соответствующих приведенным в заголовке сигналам.
Список значений имеет формат:
<время> <значение сигнала>*
Список значений отделяется от заголовка пустой строкой. Моменты времени и список значений сигналов должны быть разделены по крайней мере одним пробелом. Для моментов времени изменений сигналов указываются их абсолютные значения (в секундах), например 25ns, 1.2E-9, 5.8, или приращение относительно предыдущего момента времени. Признак приращения – знак “+” перед значением момента времени, например +5ns. Каждое значение сигнала соответствует одиночному бинарному сигналу или группе сигналов, имена которых помещены в группы с указателями системы счисления OCT или HEX. Общее количество значащих цифр в значениях сигналов должно быть равно общему количеству бинарных сигналов и групп сигналов, помеченных символами OCT и HEX. Разряды данных сигнала могут принимать следующие значения:
|
Двоичные |
Восьмеричные |
Шестнадцатиричные |
|
|
Логические/цифровые |
0, 1 |
0...7 |
0...F |
|
Неопределенные |
X |
X |
X |
|
Высокого импеданса |
Z |
Z |
Z |
|
Передний фронт |
R |
R |
R |
|
Задний фронт |
F |
F |
- |
Приведем примеры генераторов цифровых сигналов типа FSTIM.
1. Пусть имеется файл dig1.stm, в котором описана временная диаграмма сигнала IN1. Тогда в задание на моделирование можно включить следующее описание генератора:
U1 FSTIM(1) $G_DPWR $G_DGND
+ IN1 IO_STM FILE=DIG1.STM
2. Пусть имеется файл flipflop.stm следующего содержания:
J K PRESET CLEAR CLOCK
0 0 0 010
10ns 0 0 111
. . . . .
В задание на моделирование включим описание генератора сигнала
U2 FSTIM(4) $G_DPWR $G_DGND
+ CLK PRE J K
+ IO_STM
+ FILE=FLIPFLOP.STM
+ SIGNAMES = CLOCK PRESET
В этом примере первым двум узлам CLK и PRE соответствуют сигналы CLOCK и PRESET из файла сигналов, это соответствие устанавливается с помощью опции SIGNAMES. Последним узлам J и K соответствуют одноименные сигналы из файла сигналов, поэтому их имена нет необходимости включать в опцию SIGNAMES. Сигнал CLEAR в данном примере не используется (но на него можно сослаться в другом генераторе FSTIM).
Графический постпроцессор Probe
Общие сведения о программе Probe.
Результаты моделирования, полученные с помощью программы PSpice, заносятся в файлы данных (имеют расширения имени .dat или .txt). Перечень переменных, данные которых заносятся в этот файл, устанавливается по команде Analysis/Probe Setup программы Schematics. Программа Probe не только отображает графики полученных результатов, но и может выполнять их обработку, включая сложные арифметические и алгебраические вычисления, взятие интегралов, преобразование Фурье, измерение параметров импульсов, частотных характеристик и т. п. При моделировании аналого-цифровых устройств графики переходных процессов в цифровой и аналоговой части схемы выводятся на одном экране с одинаковым масштабом по времени. На графики можно наносить произвольные надписи и графические символы и выводить их на принтер или плоттер.
При вводе переменных в программе Probe соблюдаются следующие правила. Символы в верхнем и нижнем регистрах не различаются, за исключением суффиксов m=10


Кроме того, в программе Probe пользуются следующими суффиксами для простановки единиц размерности на осях координат:
V - вольты; d - градусы;
А - амперы; s - секунды;
W - ватты; H - герцы.
В программе Probe также определено, что W=V·A, V=W/A, A=W/V. Так что если построить график выражения V(5)*ID(M13), то ось ординат автоматически будет размечена в ваттах.
Вызов программы. Программа Probe вызывается автоматически после завершения моделирования, одновременно с началом моделирования (см. разд. 2.2) или автономно из оболочки Windows.
В верхней части экрана программы Probe помещается имя файла данных, на следующей строке – горизонтальное меню команд, а ниже – набор пиктограмм для быстрого вызова наиболее употребительных подкоманд (табл. 7.2), пиктограммы впервые появились в версии Design Center 6.2.
После выбора команды из меню команд вниз разворачивается подменю со списком подкоманд, ряд которых имеет опции для ее настройки, устанавливаемые в диалоговых окнах. Выбор пункта меню осуществляется с помощью клавиатуры или манипулятора мышь. При использовании клавиатуры для выбора пункта горизонтального меню нажимается клавиша Alt и одновременно клавиша с буквой, подчеркнутой в имени команды (см. рис. 1.7). Для вызова команды из выпадающего меню просто нажимается клавиша с подчеркнутой буквой.
Таблица 7.2
|
Пиктограмма |
Эквивалентная команда |
Пиктограмма |
Эквивалентная команда |
![]() |
File/ Open |
![]() |
Trace/Add |
![]() |
File/Append |
![]() |
Trace/Eval Goal Function |
![]() |
Немедленный вывод на принтер |
![]() |
Tools/Label/Text |
![]() |
Edit/Cut |
![]() |
Tools/Cursor/Display |
![]() |
Edit/Copy |
![]() |
Tools/Cursor/Peak |
![]() |
Edit/Past |
![]() |
Tools/Cursor/Trough |
![]() |
View/In |
![]() |
Tools/Cursor/Slope |
![]() |
View/Out |
![]() |
Tools/Cursor/Min |
![]() |
View/Area |
![]() |
Tools/Cursor/Max |
![]() |
View/Fit |
![]() |
Tools/Cursor/Point |
![]() |
Plot/X Axis Settings/Linear (Log) |
![]() |
Tools/Cursor/Search Commands |
![]() |
Plot/X Axis Settings/Fourier |
![]() |
Tools/Cursor/Next Transition |
![]() |
Plot/X Axis Settings/Performance Analysis |
![]() |
Tools/Cursor/Previous Transition |
![]() ![]() |
Plot/Y Axis Settings/Linear (Log) |
![]() |
Tools/Options/Mark Data Points |
Таблица 7.3
|
“Горячие” клавиши |
Эквивалентные команды меню |
|
Ctrl+F12 |
File/Open |
|
Ctrl+Shift+F12 |
File/Open |
|
Alt+F4 |
File/Exit |
|
Ctrl+X |
Edit/Cut |
|
Ctrl+C |
Edit/Copy |
|
Ctrl+V |
Edit/Paste |
|
Del |
Edit/Delete |
|
Insert |
Trace/Add |
|
Ctl+Y |
Plot/Add Y Axis |
|
Shift+Ctrl+Y |
Plot/Delete Y Axis |
|
Ctrl+N |
View/Fit |
|
Ctrl+I |
View/In |
|
Ctrl+O |
View/Out |
|
Ctrl+A |
View/Area |
|
Ctrl+P |
View/Previous |
|
Ctrl+L |
View/Redraw |
|
Shift+Ctrl+C |
Toois/Cursor/Toggle |
|
Shift+Ctrl+P |
Tools/Cursor/Peak |
|
Shift+Ctrl+T |
Tools/Cursor/Trough |
|
Shift+Ctrl+M |
Tools/Cursor/Min |
|
Shift+Ctrl+X |
Tools/Cursor/Max |
|
Shift+Ctrl+S |
Tools/Cursor/Slope |
|
Shift+Ctrl+N |
Tools/Cursor/Next Transition |
|
Shift+Ctrl+R |
Tools/Cursor/Previous Transition |

Краткое описание команд программы Probe приведено в табл. 7.4.
Таблица 7.4
|
Команда |
Назначение |
||
|
Меню File |
|||
|
Open... (Ctrl+F12) |
Открытие нового окна построения графиков и загрузка файла данных с результатами моделирования. Если в файле данных имеется несколько секций, выбор одной из них производится на панели диалога |
||
|
Append |
Добавление к текущему окну данных из файла (при этом загружаются данные из той же секции, которая открыта в текущем окне: DC, AC или Transient) |
||
|
Close |
Закрытие текущего окна (если данные из текущего файла используются в других окнах, выводится предупреждающее сообщение) |
||
|
Print... (Ctrl+Shift+F12) |
Вывод твердой копии одного или нескольких активных окон |
||
|
Page Setup... |
Настройка параметров страницы: |
||
|
Margins |
Размеры четырех полей в дюймах |
||
|
Plots Per Page |
Количество графиков на странице |
||
|
Orientation |
Горизонтальная (Landscape) или вертикальная (Portrait) ориентация |
||
|
Cursor Information |
Ориентация расположения информации относительно курсора (Top, Bottom, Left, Right, None) |
||
|
Draw Border |
Заключение графика в рамку |
||
|
Draw Plot Title |
Вывод заголовка графика |
||
|
Header and Footer |
Вывод текущей даты, времени и номера страницы |
||
|
Set Default |
Сохранение информации Header and Footer для установки по умолчанию |
||
|
Reset Default |
Задание типа принтера по умолчанию |
||
|
Log Commands... |
Включение/выключение режима составления файла протокола команд (расширение имени .cmd) |
||
|
Run Commands... |
Выполнение файла протокола команд |
||
|
Printer Select... |
Установка параметров принтера: разрешающая способность, размер бумаги, горизонтальное (Landscape) или вертикальное (Portrait) расположение изображения на бумаге |
||
|
Exit ( Alt+F4) |
Завершение работы |
||
|
Файл 1, ... , Файл 4 |
Список последних четырех загруженных файлов |
||
|
Меню Edit |
|||
|
Cut (Ctrl+X) |
Удаление выбранного объекта (объектов) из текущего окна. Удаленные объекты заносятся в окно буфера обмена и могут быть использованы по команде Past для переноса из одного окна в другое. Если выбрать курсором имя графика, например V(5), и выполнить команду Cut, то вставив содержимое буфера обмена в текстовый редактор типа Notepad, получим таблицу отсчетов графика в текстовом виде |
||
|
Copy (Ctrl+C) |
Копирование выбранного объекта (объектов) в текущее окно (см. команду Cut) |
||
|
Past (Ctrl+V) |
Размещение одной или нескольких копий содержимого буфера обмена |
||
|
Delete (Del) |
Удаление выбранного графика или метки. Проще всего выбрать объект щелчком мыши и удалить нажатием клавиши Del. Для удаления нескольких объектов они выбираются щелчком мыши при нажатой клавише Shift |
||
|
Modify Object ... |
Разрешение модификации выбранного объекта – имени переменной графика или метки в виде текста или эллипса |
||
|
Modify Title ... |
Разрешение модификации заголовка текущего окна |
||
|
Меню Trace |
|||
|
Add... (Insert) |
Добавление графиков одной или нескольких аналоговых или цифровых переменных в текущее окно. Имена переменных выбираются из списка доступных переменных, помещенных в файл данных. Допускается выполнение математических преобразований |
||
|
Macro... |
Определение макрокоманд. Введенные макрокоманды помещаются в файл msim.prb и выводятся на экран в виде списка, доступного для редактирования |
||
|
Eval. Goal Function... |
Вычисление целевых функций (или выражений, содержащих целевые функции) одного или нескольких графиков из одной секции файла данных .dat. При необходимости вычислить целевые функции при многовариантном анализе выполняется команда Performance Analysis |
||
|
Меню Plote |
|||
|
X Axis Settings... |
Задание диапазонов значений по оси X, выбор линейной или логарифмической шкалы, выполнение преобразования Фурье или построение зависимости от варьируемого параметра: |
||
|
Data Range |
Автоматическая установка диапазона значений (Auto Range) или по указанию пользователя (User Defined) |
||
|
Scale |
Установка линейной (Linear) или логарифмической (Log) шкалы |
||
|
Use Data |
Установка диапазона переменных по оси X для вычисления преобразования Фурье и других функций, таких, как s(x), AVG(x), RMS(x), MIN(x) и MAX(x) (Restricted) или отмена этого ограничения (Full) |
||
|
Processing Options |
Вычисление преобразования Фурье (Fourier) или построение зависимости от варьируемой переменной (Performance Analysis) |
||
|
Axis Variable ... |
Выбор переменной, откладываемой по оси X |
||
|
Y Axis Settings... |
Задание диапазонов значений по оси Y, выбор линейной или логарифмической шкалы |
||
|
Add Y Axis (Ctrl+Y) |
Добавление еще одной оси Y на график |
||
|
Delete Y Axis (Shift+Ctrl+Y) |
Удаление выбранной оси Y |
||
|
Add Plot |
Добавление нового окна графиков в верхней части текущего окна |
||
|
Delete Plot |
Удаление текущего окна (помеченого символом SEL>>) |
||
|
Unsync Plot |
Задание собственной оси X для каждого окна |
||
|
Digital Size... |
Размер окна построения временных диаграмм логических устройств: |
||
|
|
Percentage of Plot to be Digital |
Задание размера окна для построения временных диаграмм в процентах (по умолчанию 33%) |
|
|
|
Length of Digital Trace Name |
Длина отображаемого на экране имени цифрового сигнала |
|
|
AC... |
Загрузка данных анализа AC |
||
|
DC... |
Загрузка данных анализа DC |
||
|
Transient... |
Загрузка данных анализа Transient |
||
|
Меню View |
|||
|
Fit (Ctrl+N) |
Изменение масштаба изображения так, чтобы на полном экране разместились все графики |
||
|
In (Ctrl+I ) |
Увеличение масштаба изображения в 2 раза (центр поля зрения указывается курсором) |
||
|
Out (Ctrl+O) |
Уменьшение масштаба изображения в 2 раза (центр поля зрения указывается курсором) |
||
|
Area (Ctrl+A ) |
Вывод на весь экран окаймленной части изображения |
||
|
Previous (Ctrl+P) |
Возвращение к предыдущему масштабу изображения |
||
|
Redraw ( Ctrl+L) |
Перечерчивание экрана |
||
|
Pan–New Center |
Расположение схемы симметрично относительно точки расположения курсора без изменения масштаба |
||
|
Меню Tools |
|||
|
Label |
Нанесение на графики текстовых и графических символов: |
||
|
Text |
Текст |
||
|
Line |
Отрезок линии |
||
|
Poly-line |
Линейно-ломаная линия |
||
|
Arrow |
Стрелка |
||
|
Box |
Прямоугольник |
||
|
Circle |
Окружность |
||
|
Ellips |
Эллипс |
||
|
Mark |
Вывод на экран координат точки, помеченной курсором в режиме Tools/Cursor |
||
|
Cursor |
Выбор координат определенных точек на графиках с помощью электронного курсора: |
||
|
Display (Ctrl+Shift+C) |
Включение/выключение режима электронного курсора |
||
|
Peak (Ctrl+Shift+P) |
Перемещение курсора к следующему локальному максимуму на графике |
||
|
Trough (Ctrl+Shift+T) |
Перемещение курсора к следующему локальному минимуму на графике |
||
|
Slope (Ctrl+Shift+L) |
Перемещение курсора к следующей точке с максимальной по модулю производной |
||
|
Min (Ctrl+Shift+M) |
Перемещение курсора к точке с минимальным значением Y |
||
|
Max (Ctrl+Shift+X) |
Перемещение курсора к точке с максимальным значением Y |
||
|
Point (Ctrl+Shift+I) |
Перемещение курсора к точке следующего отсчета |
||
|
Search Command (Ctrl+Shift+S) |
Ввод одной или нескольких команд поиска |
||
|
Next Transition (Ctrl+Shift+N) |
Перемещение курсора к точке следующего изменения состояния на временной диаграмме |
||
|
Previous Transition (Ctrl+Shift+R) |
Перемещение курсора к точке предыдущего изменения состояния на временной диаграмме |
||
|
Simulation Messages... |
Открытие окна с сообщениями программы моделирования |
||
|
Display Control... |
Сохранение конфигурации текущего окна программы Probe для последующего построения |
||
|
Copy to Clipboard... |
Копирование содержания текущего окна в буфер обмена |
||
|
Options... |
Установка дополнительных параметров программы Probe: |
||
|
Display Status Line |
Видимая/невидимая строка состояний |
||
|
Mark Data Points |
Отображение на графиках точек отсчетов |
||
|
Display Evaluation |
Включение/выключение режима отображения результатов расчета целевых функций в дополнительных окнах |
||
|
Display Statistics |
Включение/выключение режима отображения на экране результатов статистических испытаний |
||
|
Number of Histogram Divisions |
Количество градаций при построении гистограмм |
||
|
Use Symbols |
Разрешение нанесения на графики специальных значков (Auto – при необходимости различить большое количество графиков, Never – никогда, Always – всегда) |
||
|
Trace Color Scheme |
Выбор цвета раскраски графиков |
||
|
Use Scrollbars |
Разрешение прокрутки графиков |
||
|
Auto-Update Interval |
Выбор режима обновления графиков |
||
|
Reset |
Установка конфигурации по умолчанию |
||
|
Save |
Сохранение текущей настройки в файле msim.ini |
||
|
Меню Window |
|||
|
New |
Открытие нового окна |
||
|
Close |
Закрытие текущего окна |
||
|
Arrange... |
Упорядочение размещения открытых окон |
||
|
1 <заголовок окна> |
Список открытых окон |
||
|
. . . . |
|||
|
[9 <заголовок окна>] |
|||
|
[Дополнительные окна] |
|||
|
Меню Help |
|||
|
|
|||
|
About Probe... |
Вывод номера версии программы и ее регистрационного номера |
||

Обсудим основные фазы работы с программой Probe.
1. Загрузка. Программа Probe загружается под управлением Schematics или автономно. В последнем случае после появления основного экрана программы по команде File/Open загружается файл данных с результатами моделирования. При моделировании нескольких режимов предлагается выбрать один из них (рис. 7. 4). Если в выбранном режиме проводился многовариантный анализ (варьировалась температура или другой параметр, выполнялся статистический анализ по Монте-Карло), на панели Available Sections приводится их перечень и предлагается выбрать одну или несколько секций (рис. 7.5). По умолчанию устанавливается режим All – выбор всех секций; для выбора одной или нескольких секций нажимается кнопка None (ничего) и затем курсором помечают нужные строки и нажимают кнопку OK. Нажатие кнопки Cancel возвращает в предыдущее меню без выбора какой-нибудь секции.
![]() Рис. 7.4. Выбор режима моделирования |
![]() Рис. 7.5. Панель выбора секции данных |
![]() Рис. 7.6. Диалоговая панель сообщения об ошибках |
![]() Рис. 7.7. Сообщения об ошибках моделирования |
|
Тип сообщения |
Текст сообщения |
Диагностика ошибки |
|
FATAL (фатальные) |
ZERO DELAY, OSCILLATION |
Ошибка расчета режима по постоянному току |
|
SERIUS (серьезные) |
PERSISTENT HAZARDS, VOLTAG OUT OF RANGE |
Ошибка расчета переходного процесса |
|
WARNING (предупреждения) |
SETUP, HOLD, RELEASE, . . . |
Предупреждения об ошибках, не нарушающих расчет переходных процессов |
|
INFO (информационные) |
GENERAL |
Сообщения информационного характера |
2. Построение графиков. Поcле выбора команды Trace/Add (или щелчком по пиктограмме

Analog – аналоговые переменные;
Digital – цифровые переменные;
Voltages – напряжения;
Currents – токи;
Alias Names – псевдонимы;
Internal Subcircuit Nodes – внутренние узлы макромоделей (только напряжения);
Goal Functions – целевые функции.
![]() Рис. 7.8. Окно выбора переменных |
На экран выводится координатная сетка графика, по горизонтальной оси которого откладывается независимая переменная, соответствующая выбранному режиму, например Time (эта переменная изменяется в последующем по желанию пользователя). На экране может располагаться несколько окон, в каждом из которых строится несколько графиков. Активное окно (в котором в данный момент строятся графики) помечается слева символами “SEL>>”. В каждом окне может быть от 1 до 3 осей Y с разными масштабами.
Укажем на особенности построения графиков аналоговых и цифровых переменных.
Аналоговые переменные
На одном графике можно поместить несколько кривых, которые на цветном мониторе выделяются цветом, а при выводе на черно-белый монитор, принтер или графопостроитель – различными значками. Формат переменных такой же, как в программе PSpice (п. 3.3.5), за небольшими исключениями:
1) не допускается выводить падение напряжения на компонентах в форме V(<имя>) или Vxy(<имя>), необходимо указывать имена (номера) узлов, например V(5) или V(21,3). Однако по-прежнему допустима форма Vx(<имя>), например VE(Q1) – потенциал эмиттера транзистора Q1; V1(R5) – потенциал вывода 1 резистора R5; V(C5:2) – потенциал вывода 2 конденсатора С5;
2) по формату B(Kxxx) выводится магнитная индукция сердечника трансформатора (в гауссах) и по формату H(Kxxx) – напряженность магнитного поля (в эрстедах), где Kxxx – имя магнитного сердечника;
3) при выводе спектральной плотности напряжения выходного шума вместо имени переменной ONOISE следует указать V(ONOISE), аналогично при выводе спектральной плотности напряжения входного шума вместо INOISE указывается V(INOISE), а при выводе спектральной плотности тока входного шума – I(INOISE);
4) в дополнение к напряжениям и токам доступны варьируемые переменные. В режиме DC это имя варьируемого источника напряжения или тока. В режиме AC – частота, имеющая имя “Frequency”. В режиме TRAN – время “Time”.
В строке можно указать имя одной или нескольких переменных или выражений. При вводе имени только одной переменной на оси Y автоматически проставляются единицы измерений в соответствии с типом переменной. Например, в режиме AC при построении графика модуля напряжения V(1) ось Y получит размерность в вольтах, фазы этого напряжения VP(1) – в градусах, а группового времени запаздывания VG(1) – в секундах.
На график можно вывести не только значения отдельных переменных, но и математические выражения, в которых допускаются следующие операции:
+, –, *, / – арифметические операции;
ABS(x) – |x|, абсолютное значение x;
SGN(x) – знак числа x (+1 при x>0, 0 при х=0 и –1 при x<0);
SQRT(x) –

EXP(x) – exp(x), экспонента числа х;
LOG(x) – ln(x), натуральный логарифм x;
LOG10(x) – log(x), десятичный логарифм x;
M(x) – модуль комплексной переменной x;
P(x) – фаза комплексной переменной x (в градусах);
R(x) – действительная часть комплексной переменной x;
IMG(x) – мнимая часть комплексной переменной x;
G(x) – групповое время запаздывания комплексной переменной x (в секундах);
PWR(x,y) – |x|

SIN(x) – sin(x), синус x (x в радианах);
COS(x) – cos(x), косинус x (x в радианах);
TAN(x) – tg(x), тангенс x (x в радианах);
ATAN(x), ARCTAN(x) – acrtg(x), арктангенс x (x в радианах);
d(y) – производная от переменной y по переменной, откладываемой по оси X;
s(y) – интеграл от переменной y по переменной, откладываемой по оси X;
AVG(y) – текущее среднее значение переменной y;
AVG(y,d) – текущее среднее значение переменной y на отрезке оси X длины d;
RMS(y) – текущее среднеквадратическое отклонение переменной y;
DB(x) – значение переменной x в децибелах;
MIN(х) – минимальное значение вещественной части переменной x;
MAX(x) – максимальное значение вещественной части переменной x.
Например, можно вывести графики переменных V(5), V(INOISE) или выражений SIN(V(5))/7.536, V(3,5)*I(D2), RMS(V(R1)*I(R1)).
Математические выражения могут редактироваться в процессе их ввода в командной строке или после обнаружения программой Probe ошибки. Текст вставляется в отмеченное курсором место и удаляется клавишами Del и Backspace. Нажатие клавиш Shift+Home выделяет часть строки, начиная от начала строки до первого символа перед курсором, Shift+End – от конца строки до первого символа после курсора. Выделенные части удаляются клавишей Del.
В режиме AC программа Probe поддерживает вычисления с комплексными числами и по умолчанию без добавления какого-либо суффикса выводит модуль результата. Если при этом выражение чисто действительное, например P(V(5)/V(1)), то результат может быть и отрицательным. Если же выражение комплексное, например V(5)/V(1), то выводится его модуль, который всегда неотрицательный. При добавлении суффикса DB модуль выводится в децибелах, суффикса P – выводится фаза в градусах (в этом единственное отличие от разд. 3.3.5), G – групповое время запаздывания, R или I – действительная или мнимая часть. Например, для построения графиков модуля и фазы комплексного сопротивления указываются выражения типа V(10)/I(RG) и VP(10)–IP(RG).
При задании переменной, выводимой на график, можно использовать имя переменной уже построенного графика.
Пусть построен график напряжения V(3), тогда спецификация переменной второго графика в виде #1*5 приведет к построению графика функции V(3)*5, где #1 – номер первого графика. При этом при попытке удалить первый график программа проверит, не входит ли его переменная в выражения для других графиков, и выдаст предупреждающее сообщение. При подтверждении удаления будут удалены все эти графики и нумерация графиков изменится.
При построении графиков можно также пользоваться определенными ранее макросами (см. ниже). Пусть, например, определен макрос
NORM(A)=(A - MIN(A))/(MAX(A) - MIN(A)).
Тогда задание выражения NORM(V(3)) вызовет построение нормированного графика переменной V(3).
Для вычисления производных и интегралов простых переменных (не выражений) используется укороченная запись без заключения переменных в круглые скобки. Например, запись dV(3) эквивалентна d(V(3)), а sIC(Q3) эквивалентна s(IC(Q3)).
Для одновременного построения двух и более графиков их переменные перечисляют на одной строке, разделяя их пробелом или запятой. Например, задание строки V(3) V(7),IC(Q3), RMS(I(VIN)) приведет к построению сразу четырех графиков (их можно построить и по очереди).
Еще одна особенность команды Trace/Add
связана c многовариантными расчетами. Если в меню выбора секций отмечено несколько вариантов, то при задании только имени переменной, например V(5), будет построено семейство графиков для каждого варианта. Указание же номера варианта n c добавлением к имени переменной суффикса @n, например V(5)@2, выведет на экран график только указанного n-го варианта. Номера вариантов можно указывать и в выражениях. Так, согласно выражению V(4,5)@2-V(4,5)@1 будет построен график разности напряжений V(4,5) во втором и первом вариантах. Если в выражении хотя бы для одной переменной не указан номер варианта @n, например V(4)-V(5)@2, то будет построено семейство графиков.
Файлы данных .dat, полученные от разных прогонов программы PSpice, средствами DOS можно объединить в один файл.
Например, команда
COPY/B test1.dat+test2.dat+test3.dat test.dat
объединит 3 файла данных в один файл test.dat. Тогда при загрузке его в программу Probe можно строить семейства зависимостей.
Цифровые переменные
![]() Рис. 7.9. Обозначения логических состояний |
Всего можно вывести до 75 временных диаграмм, однако одновременно на экране помещается меньшее их количество. Размер окна построения цифровых сигналов зависит от количества окон на аналоговом экране, его первоначальные размеры устанавливаются по команде Plot/Digital Size/Percentage of Plot to be Digital. Знак + в верхней и (или) нижней части экрана показывает, что часть графиков находится вне экрана.
Имя переменной, вводимой по запросу команды Trace/Add, может быть именем цифрового узла или булевым выражением, содержащим имена таких узлов. Шина (многоразрядное число) формируется в виде заключенного в фигурные скобки списка цифровых узлов, разделенных пробелами или запятыми, например
{ D3 D2 D1 D0 }
В начале списка помещается старший разряд шины, в конце – младший.
Шины могут с помощь логических и арифметических операторов образовывать выражения. В выражениях для цифровых сигналов и для шин допустимы следующие операции (их старшинство убывает сверху вниз):
{ } – объединение в группу;
~ – логическое отрицание;
* / – умножение и деление (только для шин);
+ – – сложение и вычитание (только для шин);
& – логическое И;
^ – логическое исключающее ИЛИ;
| – логическое ИЛИ.
Результат арифметических или логических операций с двумя шинами представляется в виде шины с достаточным количеством разрядов.
Результат арифметических или логических операций с шиной и цифровым сигналом представляется в виде шины с тем же количеством разрядов.
В записи операций с цифровыми сигналами могут содержаться следующие логические константы:
'0 – сигнал низкого уровня;
'1 – сигнал высокого уровня;
'F – нарастающий фронт;
'R – спадающий фронт;
'X – неопределенное состояние;
'Z – состояние высокого импеданса.
Выражения с шинами могут содержать многоразрядные числа, записываемые в виде текстовой переменной в форме r'ddd, где r – указатель системы счисления (x, h, d, o или b), ddd – последовательность цифр в указанной системе счисления. Приведем примеры:
x'3FFFF – шестнадцатеричная;
h'5a – шестнадцатеричная;
d'79 – десятичная;
o'177400 – восьмеричная;
b'100110 – двоичная.
Многоразрядное число эквивалентно определению шины, которая содержит столько сигналов, сколько необходимо разрядов для представления этого числа в двоичном коде. Например, число d'11 эквивалентно шине {'1 '0 '1 '1}.
Логические переменные вводятся в одной строке по формату
<описание цифрового сигнала> [; [<имя графика>] [;<указатель системы счисления>]]
Здесь <указатель системы счисления> применяется только при операциях с шинами. Он принимает значения H или X для шестнадцатеричной, D – для десятичной, O – для восьмеричной и B – для двоичной системы счисления. По умолчанию без его указания шина представляется в шестнадцатеричной системе. Параметр <имя графика> обозначает имя, выводимое на экране слева от графика; по умолчанию в качестве имени графика отображается выражение, заданное при его вводе.
Имена графиков могут выравниваться по правой или левой границе. По умолчанию устанавливается правая привязка. Для ее изменения в секции Probe файла конфигурации msim.ini включается строка
DGTLNAMELEFTJUSTIFY=ON.
3. Макросы. По команде Trace/Macro открывается окно для создания новых и редактирования существующих макросов (рис. 7.10).
![]() Рис. 7.10. Окно редактирования макросов |
Макрос имеет стандартную форму
<имя макроса>[(аргумент[,аргумент]*)] = <определение>
Аргументы, если они есть, описываются непосредственно вслед за именем макроса в круглых скобках без пробелов (квадратные скобки, как обычно, не указываются). Макросы могут содержать ссылки на другие макросы, однако рекурсивные вызовы не допускаются. Приведем несколько примеров макросов:
SUB(A,B) = A–B
F1(A) = 10*A
F2(A,B) = SIN(A*F1(B))
PI = 3.14159
YR(x,y)=(R(x)*R(y)+Img(x)*Img(y))/(y*y)
Введенные в этом окне макроcы по команде Save или Save To записываются в текстовый файл с расширением имени .prb, который может также редактироваться с помощью любого текстового редактора. Описание одного макроса, включая его имя, аргументы и определение, должно располагаться на одной строке длиной не более 80 символов. Строка, начинающаяся со “*”, воспринимается как комментарий. Комментарии можно помещать также в конце строк после “;”. Пустые строки игнорируются.
4. Целевые функции. По команде Trace/Eval Goal Function (или щелчком мыши по пиктограмме

Значения целевых функций отображаются на экране двояко. Eсли в меню Tools/Options не включена опция Display Evaluation, то значение целевой функции помещается в изображенном на рис. 7.11 окне.
![]() Рис. 7.11. Результаты расчета целевой функции при выключенной опции Display Evaluation |
![]() Рис. 7.12. Результаты расчета целевой функции при включении параметра Display Evaluation |
Имя_целевой_функции(1, 2,..., N, параметр1,..., параметрM)=выражение
{
1|Команды_поиска_и_выделения_точек_для_выражения_1;
2|Команды_поиска_и_выделения_точек_для_выражения_2;
. . . . . . . . . . . . . .
N|Команды_поиска_и_выделения_точек_для_выражения_N;
}
Здесь приняты следующие обозначения.
Имя_целевой_функции состоит из алфавитно-цифровых символов (A– Z, 0– 9) и символа подчеркивания (_), но не может начинаться с цифры. Длина имени не более 50 символов, строчные и прописные буквы не различаются. Это имя указывается в командной строке Trace/Add.
Аргументы выражения (1, 2, ..., N)
– первые N аргументов ассоциируются с N командами поиска и выделения точек. Аргумент 1 ассоциируется с командами, помещенными после символов 1|, и т. д. При вводе в командной строке целевой функции эти аргументы заменяются именами переменных и выражениями по правилам, принятым в Probe.
Список параметров (параметр1, ..., параметрM) помещается вслед за аргументами выражения. Параметры используются при определении целевой функции и представляют собой алфавитно-цифровые переменные (A– Z, 0– 9), которые могут включать в себя символы подчеркивания (_), но не могут начинаться с цифры. При вводе целевой функции указываются численные значения этих параметров.
Выражение – математическое выражение, описывающее операции с выделенными точками. В результате определяется число, откладываемое по оси Y графика. Выражения составляются по обычным правилам программы Probe за небольшими исключениями. Выражение может включать в себя символы арифметических операций +, –, *, /, (, ) и функции одного аргумента ABS, SGN, SIN, SQRT... Отличия от правил составления выражений программы Probe состоят в следующем.
1. Вместо обычных переменных PSpice, например V(4), I(R2), в выражениях приводятся координаты выделенных точек x1, y3...
2. Добавлена одна функция MPAVG, вычисляющая среднее значение по оси Y между двумя выделенными точками
MPAVG(p1,p2[,диапазон])
Здесь p1, p2 – координаты выделенных точек по оси X, например x1, x3, ограничивающих диапазон усреднения. Необязательный параметр диапазон уточняет интервал диапазона усреднения. Величина диапазона усреднения, средняя точка которого совмещена со средней точкой между p1 и p2, умножается на значение этого параметра; по умолчанию он равен 1.
Приведем пример расчета величины выброса первого импульса. Отметим точкой 1 первое пересечение с положительной производной уровня 50% от амплитуды импульса, точкой 2 отметим следующее пересечение уровня 50% с отрицательной производной, точкой 3 – следующее пересечение этого уровня с положительной производной:
SLEV(50%,P)!1 SLEV(50%,N)!2 SLEV(50%,P)!3
Максимум первого импульса пометим точкой 4, который будем отыскивать начиная от точки 1:
S/x1/(x1,x2)MAX!4
Здесь x1, x2 – координаты по оси X отмеченных выше точек 1 (!1) и 2 (!2). Затем вычислим величину выброса в процентах от амплитуды импульса. Для этого используем функцию MPAVG для расчета среднего значения нижней и верхней части импульса
overshoot = ((y4 - MPAVG(x1,x2,0.5))/(MPAVG(x1,x2,0.5)) -
+ MPAVG(x2,x3,0.5)))*100
3. Нельзя использовать функции нескольких переменных, таких, как d( ), s( ), AVG( ), RMS( ), MIN( ) и MAX( ).
4. Нельзя использовать функции комплексных переменных M( ), P( ), R( ), IMG( ), G( ).
Команды_поиска_и_выделения_точек_для_выражения_N
– комбинация одной или нескольких команд поиска, в которых имеются ссылки на одну или несколько выделенных точек. Описание команд поиска Search_commands приведено ниже в меню Cursor. Дадим их примеры:
Полная форма:
search forward for peak !1 search backward for trough !2;
Краткая форма:
sfpe!1 sbtr!2;
Замечание. Каждое выражение для команд поиска и выделения точек заканчивается символом “;”.
Выделенные точки – отмечаются как !n, где n – произвольное число, назначаемое для идентификации точки. Выражение !n может быть помещено после завершения любой команды поиска.
Продолжения строк – любая строка (за исключением строк комментариев) может быть перенесена на следующую строку без указания каких-либо специальных символов. Любая строка, начинающаяся с символа * в первой позиции, считается комментарием.
Приведем ряд примеров.
Пример 1. Целевая функция для расчета задержки распространения сигнала имеет вид
prop_delay(1,2) = x2 - x1
{
1|sf/b/#3#le(3,p)!1;
2|sf/b/#3#le(3,p)!2;
}
Ее вызов по команде Trace/Add может иметь вид
prop_delay(v(4),v(5))
Здесь V(4) и V(5) – колебания, между которыми измеряется запаздывание.
Пример 2. Целевая функция для измерения длительности импульса имеет вид
pulsewidth(1,NPTS) = x2 - x1
{
1|sf/b/#NPTS#le(3,p)!1 sf#NPTS#le(3,n)!2;
}
Ее вызов по команде Trace/Add может иметь вид
pulsewidth(sqrt(v(4)),3)
Пример 3. Целевая функция для расчета первого выброса импульса имеет вид
overshoot(1) = ((y4 – MPAVG(x1,x2,0.5))/(MPAVG(x1,x2,0.5)) –
+ MPAVG(x2,x3,0.5)))*100
{
1|slev(50%,p)!1 slev(50%,n)!2 slev(50%,p)!3
s/x1/(x1,x2)max!4
}
Ее вызов по команде Trace/Add может иметь вид
overshoot(v(out))
Пример 4. Полоса пропускания АЧХ по уровню –3 дБ измеряется с помощью целевой функции
Bandwidth(1,db_level) = x2-x1
{
1|Search forward level(max–db_level,p) !1
Search forward level(max–db_level,n) !2;
}
Ее вызов может иметь вид
Bandwidth(Vdb(5))
Сначала определяется частота, на которой частотная характеристика пересекает уровень max-db_level с положительной производной, затем – с отрицательной производной, их разность равна искомой ширине полосы пропускания. Обратим внимание, что уровень напряжения V задается в децибелах, для чего к его имени добавляется суффикс db.
Замечание. Не следует слепо полагаться на результаты расчетов целевых функций. Дело в том, что при составлении выражения для целевой функции имеется в виду вполне определенная форма колебаний, однако в результате моделирования с помощью PSpice может быть получено по разным причинам колебание совершенно другой формы, что может исказить результаты расчетов. Поэтому рекомендуется проверять результаты расчетов целевых функций, визуально анализируя графики исследуемых зависимостей.
![]() Рис. 7.13. Задание имени файла целевой функции |
5. Электронный курсор. Координаты точек на графиках считываются с помощью двух электронных курсоров. Дисплей переключается в режим считывания координат по команде Tools/Cursor/Display (или щелчком по пиктограмме

Первый курсор перемещается вдоль выбранной кривой с помощью клавиш 4 и 6 (или

Манипулятор мышь также может управлять курсорами: левая кнопка управляет первым курсором, правая – вторым. Нажатие кнопки перемещает электронный курсор к ближайшей по оси X точке на выбранном графике. Если график при данном значении X имеет несколько значений Y, то электронный курсор переключается в точку Y, ближайшую к положению курсора мыши. С помощью мыши можно также выбрать график, отмечая курсором его имя. Однако точность позиционирования электронного курсора при управлении с клавиатуры выше.
При наличии на экране семейства кривых перемещение курсора в конец одного графика приведет к его перескоку в начало следующего.
В меню Cursor имеются команды управления положением курсора: Peak, Trough, Slope, Min, Max, Point и Search Commands. Эти команды изменяют положение того курсора, который с помощью функциональных клавиш или мыши перемещался последним. Если до их выполнения оба курсора не перемещались, то эти команды изменяют положение первого курсора. Большинство команд перемещает курсор только в одном направлении, совпадающем с направлением его последнего перемещения. Если курсор был неподвижен, то он перемещается вперед. Исключение составляют команды поиска Search Commands, которые могут изменить направление поиска, и команды Min и Max, которые не обращают внимание на направление перемещения по умолчанию. За исключением команд Min и Max остальные команды перемещают курсор от его текущего положения в направлении, заданном по умолчанию. Приведем определения этих команд.
Peak (

Trough (

Slope (

Min (

Max (

Point (

Search Commands (

Приведем сначала несколько примеров команд поиска:
1) Search backward for peak – поиск следующего пика в обратном направлении;
2) sbpe – сокращенная форма предыдущей команды;
3) Search forward #4# (1n,5n) for 5:level(3,positive) – поиск вперед пятого пересечения уровня 3 В по оси Y (положительное значение), причем должно иметься по крайней мере 4 последовательные точки данных, имеющих это же или большее значение на отрезке времени от 1 до 5 нс по оси X;
4) sf#4#(1n,5n)5:le(3,p) – сокращенная форма предыдущей команды.
Команды поиска имеют следующий формат (квадратные скобки [ ] обозначают необязательные аргументы, строчные и прописные буквы не различаются):
Search [направление] [/начальная_точка/] [#последующие_точки#]
+ [(диапазон X)[,(диапазон Y)]] [FOR] [повторение:]<условие>
Входящие сюда аргументы имеют следующий смысл (их можно записывать сокращенно, указывая только строчные буквы в приведенных ниже определениях):
[направление] – Forward (вперед) или Backward (назад). Определяет направление поиска. Ключевое слово “Forward” означает поиск в направлении возрастания координаты X (обычно это движение слева направо, а при инверсии оси X по команде X Axis Settings/User Defined – в обратном направлении). По умолчанию устанавливается направление Forward;
[/начальная_точка/] – начальная точка, от которой начинается поиск, задается следующими ключевыми словами:
^ – первая точка диапазона поиска по оси X;
Begin – первая точка диапазона поиска по оси X;
$ – последняя точка диапазона поиска по оси X;
End – последняя точка диапазона поиска по оси X;
xn – номер точки, например x1 (только при использовании целевых функций Goal Functions при выполнении команды Performance Analysis меню X Axis Settings);
[#последующие_точки#] – задание количества последовательного выполнения заданных условий. По умолчанию равно единице. Применение зависит от конкретных условий. Приведем пример: обычно пик определяется как точка, слева и справа от которой имеется по одной точке с меньшим значением Y. Если задать параметр [#последующие_точки#] равным 2 и в качестве <условия> принять PEak, то пик будет определяться как точка, слева и справа от которой имеются по две точки с меньшим значением Y;
[(диапазон X[,диапазон Y])] – задание диапазона поиска по осям X, Y. Каждый диапазон может задаваться абсолютными значениями координат граничных точек или их относительными значениями в процентах от полного диапазона изменения переменных. По умолчанию оба диапазона устанавливаются равными диапазону изменения каждой переменной на видимой части графика. Приведем примеры:
(1n,200n) – по оси X установлен диапазон от 1 до 200 нс, по оси Y по умолчанию принят полный диапазон;
(1.5n,20e-9,0,1m) – указаны диапазоны по обеим осям;
(5m,1,10%,90%) – указаны диапазоны по обеим осям;
(0%,100%,1,3) – полный диапазон по оси X и ограниченный диапазон по оси Y;
(,,1,3) – полный диапазон по оси X и ограниченный диапазон по оси Y;
(x1,x2) – диапазон по оси X ограничен точками x1 и x2 (только при использовании целевых функций Goal Functions при выполнении команды Performance Analysis меню X Axis Settings);
(,30n) – диапазон по оси X ограничен только сверху;
[повторение:] – задание количества выполнения заданных далее условий.
Например, конструкция “2:Level” устанавливает, что необходимо найти второе пересечение уровня;
<условие> – задание одного из перечисленных ниже условий. Если это условие не выполняется, то курсор не перемещается. Каждое условие задается по крайней мере двумя символами, например условие LEvel сокращенно записывается как LE. Приведем перечень условий:
LEvel<(значение[знак])> – задание уровня, значение которого представляет собой абсолютное значение или относительное значение в процентах от полного диапазона по оси Y, заданную точку, величину в децибелах относительно Min или Max, отношение уровня к Min или Max, относительное значение уровня в децибелах и обычных единицах. Приведем примеры задания значения уровня в ключевых словах LEVEL(значение), используемых в командах поиска при определении целевой функции Goal Function:
– числа, например 1e5, 100n, 1...,
– проценты, например 50%,
– отмеченные точки, например y1, y2...,
– значение в децибелах относительно максимального или минимального значения переменной, например
max–3db или –3db – на 3 дБ ниже максимальной границы,
min+3db или 3db – на 3 дБ выше минимальной границы,
– значение, отсчитываемое от максимального или минимального значения диапазона, например
max-3 – максимальная граница минус 3,
min+3 – минимальная граница плюс 3,
– значение, отсчитываемое от текущего значения переменной, в децибелах, например,
.-3db – на 3 дБ меньше последнего значения,
.+3db – на 3 дБ больше последнего значения,
– относительное значение, например
.-3 – последнее значение минус 3,
.+3 – последнее значение плюс 3.
Ключевое слово [знак] принимает значения Positive (положительное), Negative (отрицательное) или Both (знакопеременное). По умолчанию принимается значение Both.
По команде LEVEL определяется следующая точка пересечения графиком заданного уровня путем интерполяции данных моделирования. Считается, что наступило событие пересечения уровня, если по крайней мере [#последующие_точки#]-1 точек данных, следующих за точкой пересечения уровня, расположены по ту же сторону уровня, что и первая точка.
SLope[(знак)] – построение касательной к графику. По этой команде определяется следующий максимальный наклон графика при поиске в заданном направлении. Наклон графика может иметь положительную или отрицательную крутизну в зависимости от параметра (знак), принимающего значения Positive, Negative или Both. По умолчанию этот параметр принимает значение Positive. Если ряд точек, число которых задано параметром [#последующие_точки#], имеют нулевой наклон или наклон противоположного знака, то дальнейшее выполнение команды прекращается.
PEak – поиск ближайшего “пика”. Количество точек с меньшим значением Y по обеим сторонам “пика” должно быть не меньше, чем значение параметра [#последующие_точки#].
TRough – поиск ближайшей впадины. Количество точек с большим значением Y по обеим сторонам впадины должно быть не меньше, чем значение параметра [#последующие_точки#].
MAx – определение максимального значения графика в заданной области изменения X. Если имеется несколько максимумов с равными значениями Y, определяется ближайший в заданном направлении. На определение максимума параметры [#последующие_точки#] и [повторение:] влияния не оказывают.
MIn – определение минимального значения графика в заданной области изменения X. Если имеется несколько минимумов с равными значениями Y, определяется ближайший в заданном направлении. На определение минимума параметры [#последующие_точки#] и [повторение:] влияния не оказывают.
XValue<(значение)> – производится поиск первой точки на графике, имеющей заданное значение переменной X. Приведем примеры заданий значения X, используемых в командах поиска при определении целевой функции Goal Function:
– числа, например 1e5, 100n, 1...,
– проценты, например 50%,
– отмеченные точки, например x1, x2... (используются только при задании целевых функций Goal Functions в режиме Performance Analysis),
– значение, отсчитываемое от максимального или минимального значения диапазона, например
max–3 – максимальная граница минус 3,
min+3 – минимальная граница плюс 3,
– относительное значение, например
. –3 – последнее значение минус 3,
.+3 – последнее значение плюс 3.
Определяется первая точка на графике, имеющая заданное значение X. Параметры задания направления [#последующие_точки#], [(диапазон X[,диапазон Y])] и [повторение:] на ее определение влияния не оказывают.
![]() Рис. 7.14. Задание расчета преобразования Фурье |

После щелчка по клавише OK производится вычисление быстрого преобразования Фурье (БПФ) всех функций, графики которых выведены на экран дисплея. Отметим, что в программе PSpice имеется специальная директива .FOUR для расчета спектра процесса по последнему периоду его реализации, т. е. спектра процесса в стационарном или близком к стационарному режиме; при этом результаты расчета амплитуды и фазы спектра выводятся в табличной форме. Спектр процесса представляет собой комплексную величину, модуль, фаза, действительная и мнимая части которой выводятся на экран программы Probe. Если на экран выведен график частотной характеристики, то рассчитывается обратное преобразование Фурье (т. е. импульсная характеристика). Перед вычислением БПФ программа Probe интерполирует отсчеты переменных так, чтобы количество отсчетов было кратно степени 2. Масштабирование спектра производится таким образом, чтобы получить те же результаты, что и при выполнении директивы .FOUR. Так, в результате расчета спектра гармонического сигнала с амплитудой 1 В будет построен график спектра в виде импульса с амплитудой 1 В, причем амплитуда импульса не зависит от длительности интервала анализа T. Разрешающая способность по частоте равна 1/T. Если, например, T=100 мкс, то разрешающая способность равна 10 кГц.
Установка границ диапазона переменных по оси X (т. е. интервала анализа для вычисления преобразования Фурье) выполняется по команде Use Data/Restricted (см. рис. 7.14).
7. Изменение имени переменной, откладываемой по оси X. По умолчанию по оси X откладывается независимая переменная. Изменение ее имени производится в меню Plot по команде X Axis Settings с помощью опции Axis Variable. Имя переменной вводится по приглашению программы по тем же правилам, что и в режиме Trace/Add. Команда очень полезна, так как позволяет построить зависимость любой переменной, откладываемой по оси Y, от любой переменной, откладываемой по оси X (так, например, построен показанный на рис. 3.23 фазовый портрет динамической системы).
8. Параметрические зависимости. Графики изменения заданной характеристики цепи от варьируемого параметра строятся при выборе опции Performance Analysis команды X Axis Settings меню Plot (вызывается также щелчком мыши по пиктограмме


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
































































































































































































































































































































































































































































































































































































































































































































































Инновации: Менеджмент - Моделирование - Софт