Логические операторы
В булевых выражениях можно использовать следующие логические операторы:
Оператор: | Пример: | Описание: | |||
! |
| !tob | дополнение до 1 | ||
NOT | NOT tob | ||||
& | bread & butter | И | |||
AND | bread AND butter | ||||
!& | a[3..1] !& b[5..3] | И-НЕ | |||
NAND | a[3..1] NAND b[5..3] | ||||
# | trick # treat | ИЛИ | |||
OR | trick OR treat | ||||
!# | c[8..5] !# d[7..4] | ИЛИ-НЕ | |||
NOR | c[8..5] NOR d[7..4] | ||||
$ | foo $ bar | Исключающее ИЛИ | |||
XOR | foo XOR bar | ||||
!$ | x2 !$ x4 | Исключающее ИЛИ-НЕ | |||
XNOR | x2 XNOR x4 |
Каждый оператор представляет двухвходовый логический вентиль, за исключением оператора NOT (!), который является префиксом инвертирования одного узла. Вы можете использовать или имя или символ для представления логического оператора.
Выражения, которые используют эти операторы, интерпретируются различно в зависимости от того, являются ли операнды одиночными узлами, шинами или числами.
Вы можете позволить компилятору заменить И операторы и все компараторы в булевых выражениях на lpm_add_sub и lpm_compare функции, включая логическую опцию Use LPM for AHDL Operators.