Как принято в этой библиотеке, уровни имеют следующие определения:
IO_LEVEL Описание 1 AtoD генерирует X, R и F в промежутке от VIL max до VTH min 2 AtoD переходит непосредственно от 0 к 1 при уровне Vt 3 Неиспользуемый (такой же, как уровень 1) 4 Неиспользуемый (такой же, как уровень 2)
Отметим, что входы, на которых сигнал поступает на встроенные в микросхему триггеры Шмитта, всегда переходят непосредственно от 0 к 1. Например, чтобы определить базисный интерфейс без промежуточного значения X, необходимо использовать
X1 in out 74LS04 PARAMS: IO_LEVEL=2
Если значение IO_LEVEL для компонента не определено, используется значение, заданное по умолчанию. Заданный по умолчанию уровень управляется параметром DIGIOLVL директивы .OPTION, значение которого по умолчанию равно 1.
Времена переключения
Модели I/O включают параметры времени переключения с низкого уровня на высокий и обратно (TSWLHN и TSWHLN). Имеются различные пары TSWLHN и TSWHLN для каждого значения IO_LEVEL. Эти временные интервалы вычитаются из времени задержки распространения для устройств, которые имеют подсхему DtoA, созданную при их выводе. Под временем переключения понимается время, необходимое DtoA, чтобы изменить выходное напряжение от установившегося состояния до логического порога.
Значения времени переключения выбраны так, чтобы вставка пары DtoA/AtoD на пути логического сигнала не изменяла полную задержку распространения. (Считается, что выход аналогового сигнала не нагружен).
Источники питания
Модели I/O также определяют имя подсхемы источника питания цифровых компонентов. Эти подсхемы вызываются в случае создания любых интерфейсов AtoD/DtoA.
Цифровые источники питания
PSpice автоматически вызывает подсхему источника питания при создании интерфейсов AtoD или DtoA. Возникающие в результате цифровые узлы источника питания используются интерфейсами AtoD/DtoA. Определение имени подсхемы источника питания является частью алгоритма моделей I/O. В настоящее время эти источники питания имеют следующие параметры:
Тип компонента Имя подсхемы Создаваемые узлы ТТЛ DIGIFPWR $G_DPWR $G_DGND
PSpice всегда использует узел 0 как необходимый опорный аналоговый узел «GND» (земля). По умолчанию, узлы, созданные обращением подсхемы — это глобальные узлы ($G_xxx), которые используются всеми библиотеками компонентов данного семейства. Заданное по умолчанию напряжение источника питания для компонентов ТТЛ (и совместимых с ними CMOS) составляет 5,0 В.
Источники питания для TTL/CМОS
.subckt DIGIFPWR AGND
+ optional: DPWR=$G_DPWR DGND=$G_DGND
+ params: VOLTAGE=5.0v REFERENCE=0v
VDPWR DPWR DGND {VOLTAGE}
R1 DPWR AGND 1MEG
VDGND DGND AGND {REFERENCE}
R2 DGND AGND 1MEG
.ends
Форма выходного напряжения для моделей компонентов и подсхем I/O
Форма выходного напряжения моделей I/O
.model IC_STM uio (
+ drvh= 0 drvl = 0
+ DtoA1 = "DtоA_SТМ" DtoA2 = "DtoA_STM"
+ DtoA3 ="DtoA_STM" DtoA4 = "DtoA_STM"
+ DIGPOWER="DIGIFPWR"
.model IO_STM_OC uio (
+ drvh = 1MEG drv1 = 0
+ DtoA1="DtoA_STM_OC"
+ DtoA3 = "DtoA_STM_OC"
+ DIGPOWER= "DIGIFPWR"
DtoA2="DtoA_STM_OC"
DtoA4="DtoA_STM_ОС"
Форма выходного напряжения подсхем DtoA
.subckt DtoA_STM D A DPWR DGND
+ params: DRVL=0 DRVH=0 CAPACITANCE=1
N1 A DGND DPWR DINSTM DGTLNET=D IO_STM
C1 A DGND {CAPACITANCE+0.1pF}
.ends
Форма выходного напряжения подсхем DtoA с открытым коллектором
.subckt DtoA_STM_OC + params: DRVL=0
D A DPWR DGND DRVH=0 CAPACITANCE=1
N1 A DGND DPWR DINSTM_OC DGTLNET = DIO_STM_OC
C1 A DGND {CAPACITANCE + 0.1pF}
.ends
Форма выходного напряжения цифровых моделей I/O
Мы используем по умолчанию сопротивление 0,5 Ом и время переключения 500 пс при условии, что это будет «мощный» источник сигнала с «быстрым» временем переключения для большинства систем, которые используют эту библиотеку. Измените значения параметров tsws, rlow и rhi, если считаете, что они должны быть другими для вашей системы.
.model DINSTM dinput (
+ s0name = "0" s0t s0rlo=.5 s0rhi=1k
+ s1name="1" s1tsw=0.5ns s1rlo=1k s1rhi=.5
+ s2name="X" s2tsw=0.5ns s2rlo=0.429 s2rhi=1.16; 313ohm, 1.35v
+ s3name="R" s3tsw=0.5ns s3rlo=0.429 s3rhi=1.16; 313ohm, 1.35v
+ s4name="F" s4tsw=0.5ns s4rlo=0.429 s4rhi=1.16; 313ohm, 1.35v
+ s5name="Z" s5tsw=0.5ns s5rlo=1MEG s5rhi = 1MEG
+ )
.model DINSTM ОС dinput (
+ s0name="0" s0tsw=0.5ns s0rlo=.5 s0rhi=1k
+ s1name="1" s1tsw=0.5ns s1rlo=1MEG s1rhi=1MEG
+ s2name="X" s2tsw=0.5ns s2rlo=0.429 s2rhi = 1.16; .313ohm, 1.35v
+ s3name="R" s3tsw=0.5ns s3rlo=0.429 s3rhi=1.16; .313ohm, 1.35v
+ s4name="F" s4tsw=0.5ns s4rlo=0.429 s4rhi=1.16; .313ohm, 1.35v
+ s5name="Z" s5tsw=0.5ns s5rlo=1MEG s5rhi=1MEG
+ )
Модели по умолчанию и модели подсхем I/O по умолчанию
.model IO_DFT uio (
+ drvh = 50 drvl = 50
+ AtoD1 = "AtoD_STD" AtoD2 ="AtoD_STD_Nx"
+ AtoD3 = "AtoD_STD" AtoD4="AtoD_STD_fX"
+ DtoA1 = "DtoA_STD" DtoA2="DtoA_STD"
+ DtoA3 = "DtoA_STD" DtoA4="DtoA_STD"
+ DIGPOWER="DIGIFPWR"
.model IO_DFT_OC uio (
+ drvh=1MEG drvl=50
+ AtoD1="AtoD_STD" AtoD2="AtoD_STD
+ AtoD3="AtoD_STD" AtoD4="AtoD_STD"
+ DtoA1 ="DtoA_STD_ОС" DtoA2 = "DtoA_STD_OC"
+ DtoA3 ="DtoA_STD_ОС"
+ DtoA4 = "DtoA_STD_OC"
+ DIGPOWER="DIGIFPWR"
+ )
Форма для подсхемы AtoD по умолчанию
. subckt AtoDDEFAULT A D DPWR DGND
+ params: CAPACITANCE=0
A DGND D074 DGTLNET=D IO_DFT
. ends
Форма для подсхемы DtoA по умолчанию
.subckt DtoADEFAULT D A DPWR DGND params: DRVL=0 DRVH=0 CAPACITANCE=0
N1 A DGND DPWR DIN74 DGTLNET=D IO_DFT
C1 A DGHD {CAPACITANCE=0.1pF}
.ends
Семейство 74/54 (стандартные микросхемы TTL) 7400 модели I/O
.model 10 STD uio (
+ drvh= 96.4 drvl = 104
+ AtoD1 ="AtoD_STD" AtoD2="AtoD_STD_NX"
+ AtoD3="AtoD_STD" AtoD4="AtoD_STD_NX"
+ DtoA1="DtoA_STD" DtoA2 ="DtoA_STD"
+ DtoA3="DtoA_STD" DtoA4="DtoA_STD"
+ tswhl1=1.373ns tswlh1=3.382ns
+ tswhl2=1.346ns tswlh2=3.424ns
+ tswhl3=1.511ns tswlh3=3.517ns
+ tswhl4=1.487ns tswlh4=3.564ns
+ DIGPOWER="DIGIFPWR"
+ )
.model IO_STD_ST uio (
+ drvh=96.4 drvl=104
+ AtoD1="AtoD_STD_ST" AtoD2="AtoD_STD_ST"
+ AtoD3="AtoD_STD_ST" AtoD4="AtoD_STD_ST"
+ DtoA1="DtoA_STD" DtoA2 ="DtoA_STD"
+ DtoA3="DtoA_STD" DtoA4="DtoA_STD"
+ tswhl1=1.373ns tswlh1=3.382ns
+ tswhl2=1.346ns tswlh2=3.424ns
+ tswhl3=1.511ns tswlh3=3.517ns
+ tswhl4=1.487ns tswlh4=3.564ns
+ DIGPOWER="DIGIFPWR"
+ )
.model 10 STD ОС uio (
+ drvh = 1MEG drv1 = 104
+ AtoD1="AtoD_STD" AtoD2="AtoD_STD_NX"
+ AtoD3="AtoD_STD" AtoD4="AtoD_STD_NX"
+ DtoA1="DtoA_STD_OC" DtoA2="DtoA_STD_OC"
+ DtoA3="DtoA_STD_OC" DtoA4="DtoA_STD_OC"
;tsw values measured with 33 0 ohm pull up
+ tswhl1=2.617ns tswlh1=1.432ns
+ tswhl2=2.598ns tswlh2=1.460ns
+ tswhl3=2.747ns tswlh3=1.589ns
+ tswhl4=2.732ns tswlh4=1.615ns
+ DIGPOWER="DIGIFPWR"
+ )
7400 стандартная подсхема AtoD
.subckt AtoD STD A D DPWR DGND params; CAPACITANCES
CO A DGND D074 DGTLHET IO_STD
C1 A DGND {CAPACITANCE=0.1pF}
DO DGND a D74CLMP
D 1 2 D74
D2 2 DGND D74
R1 DPWR 3 4k
Q1 1 3 A 0 Q74 ; substrate should be DGND
.ends
.subckt AtoD_STD_NX A D DPWR DGND params: CAPACITANCE = 0
CO A DGND D074_NX DGTLNET = D IO_STD
C1 A DGND {CAPACITANCE+0.1pF}
D0 DGND a D74CLMP
D1 1 2 D74
D2 2 DGND D74
R1 DPWR 3 4k
Q1 1 3 A 0 Q74 ; substrate should be DGNC
.ends
7400 стандартная подсхема DtoA
.subckt DtoA_STD D A DPWR DGND
+ params: DRVL=0 DRVH=0 CAPACITANCE=0
M1 A DGND DPWR DIH74 DGTLNET=DIO_STD
C1 A DGND {CAPACITANCE=0.1pF}
.ends
7400 подсхема DtoA с открытым коллектором
.subckt DtoA_STD_OC D A DPWR DGND
+ params: DRVL=0 DRVH=0 CAPACITANCE=0
N1 A DGND DPWR DIN74_ОС DGTLNET=D IO_STD_OC
C1 A DGND {CAPACITANCE=0.1pF}
.ends
7400 Модели цифровых входов/выходов (I/O)
.model DIN74 dinput (
+ s0name="0" s0tsw=3.5ns s0rlo=7.13 s0rhi = 389 ; 7ohm, 0.09v
+ s1name ="1" s1tsw=5.5ns s1rlo = 467 s1rhi = 200; 140ohm, 3.5v
+ s2name="X" s2tsw=3.5ns s2rlo=42.9 s2rhi = 116 ;31.3011m, 1.35v
+ s3name="R" s3tsw=3.5ns s3rlo=42.9 s3rhi = 116 ; 31.3ohm, 1.35v
+ s4name="F" s4tsw=3.5ns s4rlo=42.9 s4rhi=116 ; 31.3ohm, 1.35v
+ s5name="Z" s5tsw=3.5ns s5rlo=200K s5rhi=200K
+ )
.model DIN74_OC dinput (
+s0name="0" s0tsw=3.5ns s0rlo=7.13 s0rhi=389 ; 7ohm, 0.09v
+ s1name="l" s1tsw=5.5ns s1rlo=200K s1rhi=200K
+ s2name="X" s2tsw=3.5ns s2rlo=42.9 s2rhi = 116 ;31.3ohm, 1.35v
+ s3name="R" s3tsw = 3.5ns s3rlo = 42.9 s3rhi = 116; 31.3011m, 1,35v
+ s4name="F" s4tsw = 3.5ns s4rlo = 42.9 s4rhi = 116 ; 31.3ohm, 1.35v
+ s5name="Z" s5tsw=5.5ns s5rlo=200K s5rhi=200K
+ )
.model D074 doutput (
+ s0narae="X" s0vlo = 0 .8 s0vhi=2.0
+ s1name="0" s1vlo = -1.5 s1vhi = 0.8