НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 108109110111112113114 ... 233


Таблица 5.26

Функция

Основание

L0G2

LOGS

LOG 16

Функция логарифма возвращает целое значение. Например:

LOG2(32) = 5 <==> 2**5 = 32

LOG2(33) = ceil(5.0444) = 6 <==> 2**6 = 64

Функция Ceil(x) возвращает наименьщее целое число, превыщающее аргумент х.

Переменные с расширениями

к именам переменных можно добавлять расширения, обозначающие специфические функции, ассоциированные с основными узлами внутри микросхемы (например, описание триггерных схем и программируемые разрешающие сигналы с тремя состояниями). Компилятор проверяет использование расширения, чтобы определить, обоснованно ли его применение для заданного типа микросхемы и нет ли конфликтов с другими расширениями. Расширения используется компилятором для конфигурирования макроячеек внутри кристалла. Благодаря этому пользователю не нужно знать, чем именно в макроячейке управляют те или иные перемычки.

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

in.VAR1

in VAR1


OUI VAK.UI

к>

0UT.V*R(d8laulH«edbadi)

outvar.sp out v№,d

43-=- °

out wr.ck

-СЯ> ля outvararI-1-

out.var.io(«ll

Рос. 5.6. Схема, иллюстрирующая использования расширений переменных

Логические выражения

Логические вьфажения представляют собой основные строительные блоки языка CUPL. Форма записи логических вьфажений следующая:

[!] var [.ext] = exp ;

где:

var - одна переменная или список индексированных или неиндексированных переменных, определенных в соответствии с правилами индексации списков. У списков переменных выражения определены для каждой переменной в списке;



.ext - необязательное расширение имени переменной, служащее для указания функции основных узлов программируемой микросхемы;

ехр - выражение, т. е. комбинация различных переменных и операторов;

= - оператор присваивания. Он присваивает значение выражения переменной или множеству переменных;

! - оператор дополнения.

В стандартных логических уравнениях одной переменной обычно присваивается лишь одно выражение. Оператор APPEND позволяет одной переменной присвоить значения нескольких выражений. Значения дополнительных выражений взаимодействуют со значением первоначального выражения при помощи логической функции ИЛИ (OR). Формат использования оператора APPEND идентичен определению логического уравнения, за исключением того, что ключевое слово APPEND ставится непосредственно перед логическим вьфажением.

Логические выражения рекомендуется располагать в соответствующей секции исходного файла, как это показано в файле-шаблоне.

Применение операций над множествами

Все действия с однобитовой информацией, например контакт ввода, регистр, или выходной контакт, можно превратить в многоразрядные, сгруппированные в наборы (множества). Множественные операции могут совершаться между множеством и переменной или выражением, а также между двумя множествами.

Результатом операции между множеством и одной переменной является новое множество, в котором действие выполняется между каждым элементом множества и указанной переменной.

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

При использовании чисел в операциях над множествами они (числа) представляются набором бинарных цифр. Восьмеричное число отображается набором из трех бинарных цифр, а десятичное или шесгнадцатеричное - набором из четырех бинарных цифр.

Операции равенства

в отличие от операций над множествами операция равенства вычисляется для одного логического выражения. Она побитно проверяет равенство между множеством переменных и константой. Позиция бита константы сверяется с соответствующей позицией в множестве. При битовой позиции, равной бинарной 1 (единице), элемент множества не изменяется. Если позиция бита равна О (нулю), элемент множества инвертируется. Когда же она равна бинарному X, элемент множества удаляется. Получившиеся элементы затем логически перемножаются и складываются друг с другом, чтобы образовать единственное выражение.

Оператор тождественности также может использоваться с множеством одинаково обрабатываемых переменных. Например, три следующих выражения:

[АЗ,А2,А1,А0]:& [ВЗ,В2,В1,В0] :# [СЗ,С2,С1,С0]:$



идентичны выражениям:

A3 & А2 & А1 & АО ВЗ # В2 # В1 # во СЗ $ С2 $ С1 $ СО

Действия с диапазонами значений

Операция с диапазонами значений похожа на операцию равенства, за исключением того, что поле константы вместо одного значения представляет собой диапазон значений. Проверка на битовую эквивалентность проводится для каждого значения константы в диапазоне.

Сначала зададим адресную шину, как показано ниже:

FIELD address = [A3..АО]

Затем запишем уравнение с использованием диапазона значений:

select = address:[С..F] ;

Это эквивалентно следующему уравнению: select = address:С # address:D # address:Е # address:F;

Использование таблиц истинности

Иногда одним из самых понятных способов описаний функционирования устройства является использования таблиц данных. В языке CUPL ключевое слово TABLE указывает на то, что далее следует такая таблица. Сначала определим соответствующие списки для входных и выходных переменных. Затем установим однозначное соответствие между декодированными значениями списков входных и выходных переменных. Не следует обращать внимание на то, что входные значения находятся в левых частях выражений.

Список входных значений может быть определен таким образом, чтобы одним оператором можно было задать много назначений. Блок операторов, приведенный ниже, описывает простой преобразователь из шестнадцатеричного кода в десятичный.

FIELD input = [in3..0] ; FIELD output = [out4..0] ; TABLE input => output { 0=>00; 1=>01; 2=>02; 3=>03 4=>04; 5=>05; 6=>06; 7=>07 8=>08; 9=>09; A=>10; B=>11 C=>12; D=>13; E=>14; F=>15 )

Конечные автоматы

Конечным автоматом называется устройство, которое упорядоченным способом проходит заданную последовательность состояний. Синхронный конечный автомат представляет собой логическую схему с триггерами. Так как его выход можно соединить с его собственным входом, а также входами некоторых других триггеров, то входное значение триггера может зависеть как от состояния его собственного выхода, так и от состояний на выходах других триггеров. Следовательно, конечное выходное состояние триггера зависит как от его предыдущего состояния, так и от состояний связанных с ним других триггеров.



0 ... 108109110111112113114 ... 233