Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
Устройства питания | Учебники

Главная > OrCAD > Устройства питания


Устройства питания

Устройства питания
В программе PSpice принято, что макромодель источника питания имеет имя DIGIFPWR и на нее автоматически делается ссылка при наличии в схеме макромоделей аналого-цифровых интерфейсов. Конкретное содержание макромодели
источника питания определяется пользователем, а ее текст помещается в библиотеку цифровых устройств. Приведем в качестве примера макромодель источника напряжения, принимающего по умолчанию значение 5 В:
.subckt DIGIFPWR AGND optional:
DPWR=$G_DPWR DGND=$G_DGND
+ params: VOLTAGE=5.0v REFERENCE=Ov
VDPWR DPWR DGND {VOLTAGE}
R1 DPWR AGND 1MEG
VDGND DGND AGND {REFERENCE}
R2 DGNDAGND 1MEG
.ends
Здесь узлам цифрового питания и цифровой «земли» присвоены глобальные имена $G_DPWR, $G_DGND (при желании их можно изменить здесь и одновременно в моделях всех цифровых устройств). Узел AGND — общий узел источника питания, который при включении его в общую схему соединяется с узлом аналоговой «земли» 0. Для создания макромодели источника другого напряжения необходимо в задании на моделирование (в файле *.CIR) включить предложение вызова макромодели источника питания, задав с помощью параметра VOLTAGE нужное значение напряжения питания, и указать после номера узла «земли» 0 имена (номера) узлов его выводов, например:
XMYPOWER О MY_PWR MY_GND DIGIFPWR params: VOLTAGE=9.0v
Здесь вызывается источник напряжения 9 В, выводы которого имеют имена MY_PWR и MY_GND (эти имена указываются в моделях примитивов цифровых устройств, подключаемых к этому источнику, см. ниже). Усложнив макромодель, можно создать источник нескольких напряжений.
Генераторы цифровых сигналов
Генераторы цифровых сигналов можно задать двумя способами.
1. Определение формы цифрового сигнала в задании на моделирование по формату (устройства STIM):
Uxxx STIM(< количество сигналов>,<формат>)
+ <+узел источника питания> <-узел источника питания>
+ <список узлов>* <имя модели вход/выход>
+ [IO_LEVEL-< номер макромодели интерфейса вход/выход>]
+ [ STIMULUS =<имя воздействия>] [TIMESTEP=< шаг по времени>]
+ <команды описания формы сигнала>*
Переменная <количество сигналов> определяет количество выходов генератора, равное количеству генерируемых разных цифровых сигналов.
Переменная <формат> — это спецификация формата переменной <данные>, в которой представлены логические уровни сигналов генератора. Эта переменная представляет собой последовательность цифр, общее число которых равно значению переменной <количество сигналов>. Каждая цифра принимает значения 1, 3 или 4, что означает двоичную, восьмеричную и шестнадцатеричную систему счисления.
Подключение источника питания задается номерами узлов <+ узел источника питания>, <-узел источника питания>.
Номера подключения выходов генератора к схеме задаются <списком узлов>.
Имя модели вход/выход задается параметром <имя модели вход/ выход>, как для любого цифрового устройства.
STIMULUS — необязательный параметр, обозначающий имя сигнала;
IO_LEVEL — необязательный параметр для выбора одной из четырех макромоделей интерфейса вход/выход (по умолчанию 0);
TIMESTEP — не обязательный параметр для задания периода квантования (или шага). При задании моментов времени номером шага (имеют суффикс «С») он умножается на величину шага. По умолчанию устанавливается TIMESTEP=0. Этот параметр не принимается во внимание, если заданы абсолютные значения моментов времени (имеют суффикс «S»).
Параметр <описание формы- сигнала> представляет собой произвольную комбинацию одной или нескольких следующих строк:
<t>, <логический уровень>
LABEL=<UMH метки>
<t> GOTO <имя‘#етки> <п> TIMES
<t> GOTO <имяметки> UNTIL GT <данные>
<t> GOTO <имяметки> UNTIL GE <данные>
<t> GOTO <имяметки> UNTIL LT <данные>
<t> GOTO <имяметки> UNTIL LE <данные>
<t> INCR BY <данные>
<t> DECR BY <данные>
REPEAT FOREVER
REPEAT <n> TIMES
ENDREPEAT
FILЕ=<имя файла>
Каждая цифра переменной <данные> представляет собой логический уровень соответствующего выходного сигнала, который представлен в системе счисления 2т, где т — соответствующая цифра переменной <формат>.
Количество узлов в <списке узлов> должно быть равно значению переменной <количество сигналов>.
Переменная <t> определяет моменты времени, в которые задаются логические уровни сигнала. Если перед значением переменной <t> имеется символ «+», то эта переменная задает приращение относительно предыдущего момента времени; в противном случае она определяет абсолютное значение относительно начала отсчета времени t = 0. Суффикс «S» указывает размерность времени в секундах (допускается суффикс «nS» — наносекунды и т.п.). Суффикс «С» означает измерение времени в количестве циклов, размер которых определяется параметром TIMESTEP (переменная <шаг по времени>).
Переменная <данные> состоит из символов «0», «1», «X», «R», «F» или «Z», интерпретируемых в заданном формате.
Переменная <п> задает количество повторяющихся циклов GOTO; значение п = -1 задает бесконечное повторение цикла.
Переменная <имя метки> используется при организации цикла с помощью оператора перехода GOTO, который передает управление на строку, следующую за оператором LABEL=<имя метки>.
REPEAT FOREVER — начало бесконечно повторяющегося цикла (эквивалентно конструкции REPEAT -1 TIMES).
REPEAT <n> TIMES — повторение п раз.
ENDREPEAT — — конец цикла REPEAT.
FILE — указание имени файла, в котором находится описание одного или нескольких входных сигналов.
Приведем пример:
USIGNAL STIM(2,11) $G_DPWR $G_DGND 1 2 IO_STM TIMESTEP=1ns
+ ОС 00 ; В момент времени t=0 состояния обоих узлов равны «О»
+ LABEL=M
+ 1C 01 ; При t=1 не состояние узла 1 равно «0», узла 2 — «1»
+ 2С 11 ; При t=2 не состояние обоих узлов равны «1»
+ ЗС GOTO M 3 TIMES; В момент времени t=3 не переход на метку М и выполняется
+ первая инструкция без дополнительной задержки. Цикл повторяется 3 раза
2. Считывание временной диаграммы цифрового сигнала из файла (устройства FSTIM). Устройства FSTIM задаются по формату:
Uxxx FSTIM(< количество выходов>) <+узел источника питания>
+ <-узел источника питания> <список узлов>*
+ <имя модели вход/выход> FIL Е=<имя файла сигналов>
+ [IO_LEVEL=<ножер макромодели интерфейса вход/выход>]
+ [SIGNАМЕS=<имя воздействия>]
Параметр <количество выходов> определяет количество узлов, к которым подключаются сигналы. Остальные параметры имеют тот же смысл, что в п. 1. Обратим внимание, что задание с помощью параметра FILE имени файла, в котором описаны сигналы, обязательно.
Файл цифрового сигнала может быть получен путем редактирования файла результатов моделирования или составлен вручную с помощью любого текстового редактора.
Файл цифрового сигнала имеет две секции:

  • заголовок (header), содержащий список имен сигналов;
  • список значений сигнала (transitions), содержащий на одной или более строках моменты времени изменений сигналов и колонки их значений.

Приведем сначала пример файла цифровых сигналов:

  • Заголовок: содержит имена сигналов CLOCK, RESET, IN1, IN2 ; имена 4-х сигналов

*Начало описания сигналов; отделяется от заголовка пустой строкой
0 0000 ; двоичные коды сигналов
10ns 1100
20ns 0101
30ns 1110
40ns 0111
Заголовок имеет следующий формат:
Переменная <имя метки> используется при организации цикла с помощью оператора перехода GOTO, который передает управление на строку, следующую за оператором LAEEL=<uмя метки>.
REPEAT FOREVER — начало бесконечно повторяющегося цикла (эквивалентно конструкции REPEAT -1 TIMES).
REPEAT <n> TIMES — повторение п раз.
ENDREPEAT — конец цикла REPEAT.
FILE — указание имени файла, в котором находится описание одного или нескольких входных сигналов.
Приведем пример:
USIGNAL STIM(2,11) $G_DPWR $G_DGND 1 2 IO_STM TIMESTEP=1ns
+ ОС 00 ; В момент времени t=0 состояния обоих узлов равны «О»
+ LABEL=M
+ 1C 01 ; При t=1 не состояние узла 1 равно «О», узла 2 — «1»
+ 2С 11 ; При t=2 не состояние обоих узлов равны «1»
+ ЗС GOTO M 3 TIMES; В момент времени t=3 не переход на метку М и выполняется
+ первая инструкция без дополнительной задержки. Цикл повторяется 3 раза
2. Считывание временной диаграммы цифрового сигнала из файла (устройства FSTIM). Устройства FSTIM задаются по формату:
Uxxx FSTIM(< количество выходов>) <+узел источника питания>
+ <-узел источника питания> <список узлов>*
+ <имя модели вход/выход> FILЕ=<имя файла сигналов>
+ [IO_LEVEL=< номер макромодели интерфейса вход/выход>]
+ [ SIGN AMES =<имя воздействия>]
Параметр <количество выходов> определяет количество узлов, к которым подключаются сигналы. Остальные параметры имеют тот же смысл, что в п. 1. Обратим внимание, что задание с помощью параметра FILE имени файла, в котором описаны сигналы, обязательно.
Файл цифрового сигнала может быть получен путем редактирования файла результатов моделирования или составлен вручную с помощью любого текстового редактора.
Файл цифрового сигнала имеет две секции:

  • заголовок (header), содержащий список имен сигналов;
  • список значений сигнала (transitions), содержащий на одной или более строках моменты времени изменений сигналов и колонки их значений.

Приведем сначала пример файла цифровых сигналов:

  • Заголовок: .содержит имена сигналов CLOCK, RESET, IN1, IN2 ; имена 4-х сигналов

*Начало описания сигналов; отделяется от заголовка пустой строкой
0 0000 ; двоичные коды сигналов
10ns 1100
20ns 0101
30ns 1110
40ns 0111
Заголовок имеет следующий формат:
[ТIМЕSСАLЕ=<значение>] <имя сигнала 1>…<имя сигнала п>… ОСТ(<3-й бит сигнала>…<1-й бит сигнала>)… НЕХ(<4-й бит сигнала>…<1-й бит сигнала>}…
Имена сигналов могут разделяться запятыми или пробелами. Они располагаются на одной или нескольких строках, но строки продолжения не имеют в начале знака «+». Максимальное количество сигналов 255, на одной строке могут размещаться не более 300 символов. Имена сигналов перечисляются в том же порядке, в котором их значения приводятся во временных диаграммах.
Если перед именем сигнала не указывается название системы счисления, он считается двоичным. Имена сигналов, записанных в восьмеричном коде, предваряются кодом ОСТ и группируются по 3 сигнала (имена групп сигналов заключаются в круглые скобки). Имена шестнадцатеричных сигналов имеют код HEX и группируются по 4 сигнала.
Приведем еще один пример файла сигналов:
Clock Reset In1 In2
HEX(Addr7 Addr6 Addr5 Addr4) HEX(Addr3 Addr2 Addrl Addr0)
ReadWrite
0 0000 00 0 ; для наглядности между группами можно включать пробелы
10п 1100 4Е 0
20п 0101 4Е 1
ЗОп 1110 4Е 1
40п 0111 FF 0
Здесь сначала приведены имена четырех двоичных сигналов, затем две группы сигналов, задаваемых в шестнадцатеричном виде, и затем еще один бинарный сигнал. В последующем списке значений сигналов даны 7 колонок, соответствующих приведенным в заголовке сигналам.
Список значений имеет формат:
<время> <значение сигнала>*
Список значений отделяется от заголовка пустой строкой. Моменты времени и список значений сигналов должны быть разделены по крайней мере одним пробелом. Для моментов времени изменений сигналов указываются их абсолютные значения (в секундах), например 25ns, 1.2E-9, 5.8 или приращение относительно предыдущего момента времени. Признак приращения — знак «+» перед значением момента времени, например +5ns. Каждое значение сигнала соответствует одиночному бинарному сигналу или группе сигналов, имена которых помещены в группы с указателями системы счисления ОСТ или HEX. Общее количество значащих цифр в значениях сигналов должно быть равно общему количеству бинарных сигналов и групп сигналов, помеченных символами ОСТ и HEX. Разряды данных сигнала могут принимать значения, приведенные в табл. 4.29.
Значения сигналов

Сигналы

Двоичные

Восьмеричные

Шестнадцатеричные

Логические /цифровые

0, 1

0…7

0…F

Неопределенные

X

X

X

 

Сигналы

Двоичные

Восьмеричные

Шестнадцатеричные

Высокого импеданса

Z

Z

Z

Передний фронт

R

R

Задний фронт

F

F

Заметим, что задний фронт не может в шестнадцатеричной системе обозначаться как F, потому что этот символ занят под численное значение. Приведем примеры генераторов цифровых сигналов типа FSTIM.
1. Пусть имеется файл digl .stm, в котором описана временная диаграмма сигнала IN1. Тогда в задание на моделирование можно включить следующее описание генератора:
U1 FSTIM(1) $G_DPWR $G_DGND IN1 IO_STM FILE=DIG1.STM
2. Пусть имеется файл flipflop.stm следующего содержания:
J К PRESET CLEAR CLOCK 0 0 0 010
10ns 0 0 111
В задание на моделирование включим описание генератора сигнала
U2 FSTIM(4) $G_DPWR $G_DGND CLK PRE J К IO_STM + FILE=flipflop.stm SIGNAMES = CLOCK PRESET

В этом примере первым двум узлам CLK и PRE соответствуют сигналы CLOCK и PRESET из файла сигналов, это соответствие устанавливается с помощью опции SIGNAMES. Последним узлам J и К соответствуют одноименные сигналы из файла сигналов, поэтому их имена нет необходимости включать в опцию SIGNAMES. Сигнал CLEAR в данном примере не используется (но на него можно сослаться в другом генераторе FSTIM).

Статьи по теме

Комментарии запрещены.