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

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

Любое логическое выражение состоит из операндов, разделённых между собой логическими и арифметическими операторами.

Примеры логических выражений:

  • Пример операндов

a, b[5..1], 7, VCC

  • Вызов функции

Out[15..0] = 16dmux(q[3..0]);

  • Префиксный оператор (! или –), примененный к логическому выражению

  • Два логических выражения, разделенных бинарным оператором

d1 $ d3

  • Логическое выражение, заключенное в скобки

(!foo & bar)

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

3.7.1 Логические операторы

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

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

Оператор

Пример

Описание

!

NOT

!tomb

NOT tomb

Инвертор

&

AND

bread & butter

bread AND butter

Логическое И

!&

NAND

a[3..1] !& b[5..3]

a[3..1] NAND b[5..3]

И-НЕ

#

OR

trick # tick

trick OR tick

Логическое ИЛИ

!#

NOR

c[8..5] !# d[7..4]

c[8..5] NOR d[7..4]

ИЛИ-НЕ

$

XOR

foo $ bar

foo XOR bar

Логическое Исключающее ИЛИ

!$

XNOR

x2 !$ x4

x2 XNOR x4

Исключающее ИЛИ-НЕ

Каждый логический оператор представляет собой вентиль с 2-мя входами (кроме оператора NOT– это логический элемент с одним входом). При составлении логических выражений вы можете использовать как имя оператора, так и его символ. Логическое выражение будет интерпретироваться по-разному в зависимости от типа операндов (узел, группа, число).

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

Для получения более подробной информации см. следующие разделы:

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

  • Приоритеты логических операторов и операторов сравнения

  • Операторы сравнения

  • Описание комбинационных устройств с помощью логических уравнений

  • Логические операторы

  • Числа в AHDL

3.7.2 Использование оператораNot

Оператор NOT(!) – префиксный оператор инверсии. Результат инверсии зависит от типа используемого операнда.

Три типа операндов могут использоваться вместе с оператором NOT(!):

  • Операция инверсии возможна, если в качестве операнда используется узел, константы GND иVCC. Например выражение!аозначает, что сигналапрошел через инвертор.

  • Если в качестве операнда выступает группа, то каждый член этой группы проходит через инвертор. Например, выражение !a[4..1]интерпретируется как(!a4, !a3, !a2, !a1).

  • Если в качестве операнда выступает некоторое число, то оно рассматривается как двоичное значение, каждые бит которого инвертируется. Например, выражение !9 (9в двоичной системе счисления = 1001)будет преобразовано в выражениеB”0110”.

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