Цифровые компоненты
Цифровые компоненты (примитивы) задаются по формату
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) рассчитывается по формуле
= 0,69RC,
где R – выходное сопротивление устройства, равное DRVH
или DRVL в зависимости от логического уровня на выходе; C – сумма входных и выходных емкостей цифровых устройств INLD, OUTLD, подключенных к данному выводу.
Когда цифровой примитив подключен к аналоговому устройству, задержка распространения уменьшается на величину, равную времени переключения, заданного в модели вход/выход.
Минимальная длительность сигнала на входе цифрового примитива, необходимая для изменения его логического состояния, должна превышать время задержки, приведенное в модели динамики (это ограничение не относится к цифровым линиям задержки). Более короткие входные импульсы не вызовут на выходе никакого эффекта.
Приведем описание смешанной цепи на рис. 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(<m>) <список узлов>
+ <модель динамики> <модель вход/выход>
+ [MNTYMXDLY=<выбор значения задержки>]
+ [IO_LEVEL=<уровень модели интерфейса>]
Имена узлов перечисляются в <списке узлов> в следующем порядке (рис. 6.5):
<+узел источника питания>, <–узел источника питания>, <аналоговый вход>, <опорное напряжение>, <"земля">, <сигнал разрешения>, <сигнал преобразования>, <сигнал переполнения>, <m-й разряд>, ..., <1-й разряд>
Смысл остальных параметров такой же, что и для интерфейса А/Ц типа Oxxx.
Рис. 6.5. Аналого-цифровой преобразователь |
.MODEL <имя модели> UADC [(параметры)]
Параметры этой модели приведены в табл. 6.4 (значение по умолчанию – 0, единица измерения – с).
Таблица 6.4
Идентификатор |
Параметр |
TPCSMN |
Время задержки запуска – запаздывание между передними фронтами импульсов разрешения и запуска, минимальное значение |
TPCSTY |
То же, типичное значение |
TPCSMX |
То же, максимальное значение |
TPSDMN |
Время цикла кодирования – интервал времени между передним фронтом импульса запуска и переходом выходного сигнала в новое состояние, минимальное значение |
TPSDTY |
То же, типичное значение |
TPSDMX |
То же, максимальное значение |
TPDSMN |
Запаздывание заднего фронта сигнала запуска относительно момента перехода выходного сигнала в новое состояние, минимальное значение |
TPDSMTY |
То же, типичное значение |
TPDSMX |
То же, максимальное значение |
Временная диаграмма АЦП показана на рис. 6.6. Выходной сигнал АЦП равен ближайшему целому выражения
где m – количество разрядов.
Если это выражение больше 2–1, все разряды данных и разряд переполнения примут значение 1. Если оно меньше нуля, разряды данных примут нулевое значение, а разряд переполнения – 1. Таким образом, опорное напряжение устанавливает диапазон входного напряжения АЦП.
Сигнал (импульс) разрешения (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(<m>) <список узлов> <модель динамики>
+ <модель вход/выход>
+ [MNTYMXDLY=<выбор значения задержки>]
+ [IO_LEVEL=<уровень модели интерфейса>]
Имена узлов перечисляются в <списке узлов> в следующем порядке (рис. 6.7):
<+узел источника питания>, <–узел источника питания>, <аналоговый выход>, <опорное напряжение>, <“земля”>, <m-й разряд входного сигнала>, ..., <1-й разряд входного сигнала>
Рис. 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, ..., 1, 2,..., |
JK-триггер с отрицательным фронтом срабатывания и низким уровнем сигнала установки и сброса |
DFF |
Количество триггеров |
S, R, C, D1, D2, ..., Q1, Q2, ..., 1, 2, ... |
D-триггер с положительным фронтом срабатывания и низким уровнем сигнала установки и сброса |
Триггеры с потенциальным управлением |
|||
SRFF |
Количество триггеров |
S, R, G, S1, S2, ..., R , R , ..., Q1, Q2,..., 1, 2, ... |
Двухтактный синхронный RS-триггер |
DLTCH |
Количество триггеров |
S, R, G, D1, D2, ..., Q1, Q2, ..., 1, 2, ... |
Однотактный синхронный D-триггер |
Модели динамики триггеров с динамическим управлением имеют формат
.MODEL <имя модели> UEFF [(параметры)]
Параметры модели триггеров с динамическим управлением типа UEFF приведены в табл. 6.9 (значение по умолчанию – 0, единица измерения – с).
Таблица 6.9
Идентификатор |
Параметр |
TPPCQLHMN |
Задержка перехода “0””1” со входа S/R к выходам Q/, минимальное значение |
TPPCQLHTY |
То же, типичное значение |
TPPCQLHMX |
То же, максимальное значение |
TPPCQHLMN |
Задержка перехода “1””0” со входа S/R к выходам Q/, минимальное значение |
TPPCQHLTY |
То же, типичное значение |
TPPCQHLMX |
То же, максимальное значение |
TWPCLMN |
Максимальная длительность сигнала “0” на входе S/R, минимальное значение |
TWPCLTY |
То же, типичное значение |
TWPCLMX |
То же, максимальное значение |
TPCLKQLHMN |
Задержка перехода “0””1”от фронта импульса С/ до выхода Q/, минимальное значение |
TPCLKQLHTY |
То же, типичное значение |
TPCLKQLHMX |
То же, максимальное значение |
TPCLKQHLMN |
Задержка перехода “1””0” от фронта импульса С/ до выхода Q/, минимальное значение |
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””1” со входа S/R к выходам Q/, минимальное значение |
TPPCQLHTY |
То же, типичное значение |
TPPCQLHMX |
То же, максимальное значение |
TPPCQHLMN |
Задержка перехода “1””0” со входа S/R к выходам Q/, минимальное значение |
TPPCQHLTY |
То же, типичное значение |
TPPCQHLMX |
То же, максимальное значение |
TWPCLMN |
Минимальная длительность сигнала “0” на входе S/R, минимальное значение |
TWPCLTY |
То же, типичное значение |
TWPCLMX |
То же, максимальное значение |
TPGQLHMN |
Задержка перехода “0””1” от фронта импульса синхронизации G до выхода Q/, минимальное значение |
TPGQLHTY |
То же, типичное значение |
TPGQLHMX |
То же, максимальное значение |
TPGQHLMN |
Задержка перехода “1””0” от фронта импульса синхронизации G до выхода Q/, минимальное значение |
TPGQHLTY |
То же, типичное значение |
TPGQHLMX |
То же, максимальное значение |
TPDQLHMN |
Задержка перехода “0””1” от входа S/R/D до выхода Q/ |
TPDQLHTY |
То же, типичное значение |
TPDQLHMX |
То же, максимальное значение |
TPDQHLMN |
Задержка перехода “1””0” от входа S/R/D до выхода Q/ |
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””1”, минимальное значение |
0 |
с |
TPLHTY |
То же, типичное значение |
0 |
с |
TPLHMX |
То же, максимальное значение |
0 |
с |
TPHLMN |
Время задержки на выход при переключении “1””0”, минимальное значение |
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””1”, минимальное значение |
TPADHTY |
То же, типичное значение |
TPADHMX |
То же, максимальное значение |
TPADLMN |
Время выборки адреса при переключении входных данных “1””0”, минимальное значение |
TPADLTY |
То же, типичное значение |
TPADLMX |
То же, максимальное значение |
TPEDHMN |
Время выборки разрешения при переключении выходов “Z””1”, минимальное значение |
TPEDHTY |
То же, типичное значение |
TPEDHMX |
То же, максимальное значение |
TPEDLMN |
Время выборки разрешения при переключении выходов “Z””0”, минимальное значение |
TPEDLTY |
То же, типичное значение |
TPEDLMX |
То же, максимальное значение |
TPEDHZMN |
Время выборки разрешения при переключении выходов “1””Z”, минимальное значение |
TPEDHZTY |
То же, типичное значение |
TPEDHZMX |
То же, максимальное значение |
TPEDLZMN |
Время выборки разрешения при переключении выходов “O””Z”, минимальное значение |
TPEDLZTY |
То же, типичное значение |
TPEDLZMX |
То же, максимальное значение |
Рис. 6.14. Переходные процессы в ПЗУ |
Приведем пример ПЗУ 88:
UMULTIPLY ROM (8, 8) ; Модель ПЗУ 2568 разрядов
+ $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” на входе разрешения записи. Этот сигнал должен удерживаться в течение некоторого минимального интервала времени и затем может быть сброшен в “0”. При этом сигналы адреса и данных не должны изменяться в течение времени, когда сигнал разрешения записи находится в состоянии “1” и удерживается еще некоторое время и , прежде чем измениться.
Для чтения из ОЗУ на вход разрешения чтения необходимо подать “1”, а состояния узлов выходных данных изменяются от состояния высокого импеданса Z до соответствующего состояния спустя некоторое время . В течение времени, пока сигнал разрешения чтения находится в состоянии “1”, сигналы адреса могут изменяться, и если это так, то новые данные доступны на выходах через некоторое время задержки .
Рис. 6.16. Переходные процессы в ОЗУ: а - запись, б - чтение |
В модели ОЗУ ничто не препятствует одновременно установить “1” на входах разрешения чтения и записи, хотя в большинстве реальных ОЗУ это не допускается. Новые считанные данные посылаются на выходы данных после перехода сигнала разрешения записи из “1” в “0”.
Модель динамики ОЗУ имеет формат
.MODEL <имя модели динамики> URAM [(параметры модели динамики)]
Параметры этой модели приведены в табл. 6.13 (значение по умолчанию – 0, единица измерения – с).
Таблица 6.13
Идентификатор |
Параметр |
TPADHMN |
Время выборки адреса при переключении выходов “0””1”, минимальное значение |
TPADHTY |
То же, типичное значение |
TPADHMX |
То же, максимальное значение |
TPADLMN |
Время выборки адреса при переключении выходов “1””0”, минимальное значение |
TPADLTY |
То же, типичное значение |
TPADLMX |
То же, максимальное значение |
TPERDHMN |
Время выборки разрешения при переключении выходов “Z””1”, минимальное значение |
TPERDHTY |
То же, типичное значение |
TPERDHMX |
То же, максимальное значение |
TPERDLMN |
Время выборки разрешения при переключении выходов “Z””0”, минимальное значение |
TPERDLTY |
То же, типичное значение |
TPERDLMX |
То же, максимальное значение |
TPERDHZMN |
Время выборки разрешения при переключении выходов “1””Z”, минимальное значение |
TPERDHZTY |
То же, типичное значение |
TPERDHZMX |
То же, максимальное значение |
TPERDLZMN |
Время выборки разрешения при переключении выходов “0””Z”, минимальное значение |
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 |
Максимальная задержка |