Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Altera / MAX+PLUS II - AHDL.doc
Скачиваний:
138
Добавлен:
10.12.2013
Размер:
7.02 Mб
Скачать

3.7.3 Использование операторовAnd, nand, or, nor, xor, xnor

Результат операций AND, NAND, OR, NOR, XOR, XNORзависит от типа используемых операндов.

  • Если оба операнда являются константами (VCC, GND) или узлами, то выполняется обычная операция логического И, ИЛИ и т.д., например: (a & b)

  • Если оба операнда являются группами, то операция применяется к соответствующим элементам обеих групп, при этом группы должны быть одинакового размера. Например,выражение(a, b, c) # (d, e, f)преобразуется как(a # d, b # e, c # f).

  • Если один из операндов является константой (VCC или GND) или узлом, а второй – группа, то при этом логическая операция будет применяться следующим образом:a & b[4..1] будет преобразовано в: (a & b4, a & b3, a & b2, a & b1).

  • Если оба операнда являются числами, то операция будет применена к соответствующим разрядам двоичной записи этих чисел.Например, операция(3 # 8)будет выполняться так: числа 3 и 8 будут преобразованы в двоичную систему счисления:32 = B”0011”, 82 = B”1000”, а затем непосредственно будет выполнена операция «Логическое ИЛИ» и в результате получим:B”1011”.

  • Если один из операндов является числом, а второй – группа, то операция будет выполняться так: число будет переведено в двоичную систему счисления и затем операция будет применена к соответствующими разрядами числа и элементам группы. Например, операция (a, b, c)&1будет выполняться так: 1 будет переведена в двоичную систему счисления (12= 001), а затем будет выполнена операция «Логическое И»:(a, b, c) & (0, 0, 1)что эквивалентно следующему:(a&0 , b&0, c&1).

Использование константы VCCотличается от использования константы1. Это отличие будет показано на примерах:

(a, b, c) & 1 = (0, 0, c)

(a, b, c) & VCC = (a, b, c)

3.7.4 Использование арифметических операторов в логических выражениях

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

Таблица 3.5 Арифметические операторы, используемые в логических выражениях

Оператор

Пример

Описание

+ (унарный)

+1

Указание на положительную величину

- (унарный)

-a[4..1]

Указание на отрицательную величину

+

count[7..0] + delta[7..0]

Сложение

-

rightmost_x[] – leftmost_y[]

Вычитание

Унарные операторы «+» и «–» являются префиксными операторами. Оператор «+», стоящий перед числом никак не влияет на интерпретацию числа, он необходим для явного указания положительных величин.

Следующие правила применимы к использованию арифметических операторов:

  • Все арифметические операции определены для двух операндов, являющихся группами или числами

  • Если оба операнда являются группами, то они должны быть одинаковой длины

  • Если оба операнда являются числами, то наиболее короткий операнд будет расширен до более длинного

  • Если один операнд является числом, а второй – группой, то первый операнд (число) будет представлен в двоичном в виде с числом знаков равным длине группы. Если при преобразовании произойдет потеря значимых бит, то компилятор MAX+PLUS IIвыдаст сообщение об ошибке.

  1. Вы можете использовать возможность перегрузки имени оператора с целью придания группе действий какого-либо смыслового имени (см. раздел «Перегрузка имени оператора»).

  1. Множество арифметических операторов, разрешенных для использования в логических выражениях, является подмножеством множества всех арифметических операторов.

Соседние файлы в папке Altera