Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Булевы операторы, использующие and, nand, OR, nor, xor, и xnorСодержание книги
Поиск на нашем сайте
С бинарными операторами существует пять сочетаний операндов. Каждое из этих сочетаний интерпретируется различно: 1. Если оба операнда - одиночные узлы или константы GND и VCC, оператор выполняет логическую операцию над двумя элементами. Например, (a & b). 2. Если оба операнда - группы узлов, оператор действует на соответствующие узлы каждой группы, выполняя побитовые операции между группами. Группы должны иметь одинаковый размер. Например, (a, b, c) # (d, e, f) интерпретируется как (a # d, b # e, c # f). 3. Если один операнд - одиночный узел, GND, или VCC, а другой группа узлов, одиночный узел или константа дублируется для создания группы такого же размера как другой оператор. Затем выражение трактуется как групповая операция. Например, a & b[4..1] интерпретируется как (a & b4, a & b3, a & b2, a & b1). 4. Если оба операнда - числа, то более короткое число расширяется с учетом знака для согласования с размером другого числа и трактуется затем как групповая операция. Например, в выражении (3 # 8), 3 и 8 преобразуются в двоичные числа B"0011" и B"1000", соответственно. Результатом будет B"1011". 5. Если один операнд - число, а другой узел или группа узлов, то число разделяется на биты для согласования с размером группы и выражение рассматривается как групповая операция. Например, в выражении (a, b, c) & 1, 1 преобразуется к B"001" и выражение становится (a, b, c) & (0, 0, 1). Результатом будет (a & 0, b & 0, c & 1). Выражение, которое использует VCC как операнд, интерпретируется в зависимости от выражения, которое использует 1 как операнд. Например, в первом выражении, 1 - число в знакорасширенном формате. Во втором выражении, узел VCC дублируется. Затем каждое выражение трактуется как групповая операция.
(a, b, c) & 1 = (0, 0, c) (a, b, c) & VCC = (a, b, c) Арифметические операторы Арифметические операторы используются для арифметических операций сложения и вычитания над числами и шинами в булевых выражениях. В них используются следующие операторы. Таблица 6. Операторы сложения и вычитания языка AHDL
К бинарным операторам применимы следующие правила: · Операции выполняются между двумя операндами, которые должны быть шинами или числами. · Если оба операнда - шины, то они должны иметь один размер. · Если оба операнда числа, более короткое число расширяется до размеров другого операнда. · Если один оператор - число, а другой группа узлов, то число усекается или расширяется для согласования размеров операндов. Если отбрасываются любые значимые биты, то компилятор MAX+PLUS II выдает сообщение об ошибке.
ÞКогда Вы складываете две шины вместе с правой стороны булева уравнения с помощью оператора +, Вы можете поместить 0 с левой стороны группы для расширения ширины шины. Этот метод обеспечивает добавление дополнительного бита данных с левой стороны уравнения, который можно использовать как сигнал выходного переноса. Например, шины count[7..0] и delta[7..0] дополняются нулями для обеспечения информацией сигнала cout:
(cout, answer[7..0]) = (0, count[7..0]) + (0, delta[7..0]) Компараторы Для сравнения одиночных узлов или шин используются два типа компараторов: логические и арифметические. В булевых выражениях можно использовать следующие компараторы. Таблица 7. Компараторы одиночных узлов и шин
Логические компараторы могут сравнивать одиночные узлы, шины и числа без неопределенных (X) значений. При сравнении шин или чисел, шины должны иметь одинаковый размер. Компилятор MAX+PLUS II выполняет побитовое сравнение шин, возвращая VCC, когда сравнение истинно, и GND, когда сравнение ложно. Арифметические компараторы могут сравнивать только шины и числа; шины должны иметь одинаковый размер. Компилятор выполняет беззнаковое сравнение значений шин, т.е., каждая шина интерпретируется как положительное двоичное число и сравнивается с другой шиной.
|
||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 251; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.91.116 (0.009 с.) |