Язык AHDL


Арифметические выражения


Арифметические выражения можно использовать для определения оцениваемых функций в операторах Define, констант в операторах Constant, значений параметров в операторах Parameters и в качестве ограничителей диапазонов шин. Например,

Диапазон, определенный с помощью арифметического выражения:

SUBDESIGN foo

(

            a[4..2+1-3+8] : INPUT;

)

Константа, определенная с помощью арифметического выражения:

CONSTANT foo = 1 + 2 DIV 3 + LOG2(256);

Оцениваемая функция, определенная с помощью арифметического выражения:

DEFINE MIN(a,b) = ((a < b) ? a : b);

Арифметические операторы и компараторы используются в этих выражениях для выполнения основных арифметических и сравнительных операций с числами в них. В арифметических выражениях используются следующие операторы и компараторы:



Оператор/ компаратор:

Пример:

Описание:

Приоритет:

+ (унарный)

+1

положительный

1

- (унарный)

-1

отрицательный

1

!

!a

NOT

1

^

a ^ 2

степень

1

MOD

4 MOD 2

модуль

2

DIV

4 DIV 2

деление

2

*

a * 2

умножение

2

LOG2

LOG2(4-3)

логарифм по основанию 2

2

+

1+1

сложение

3

-

1-1

вычитание

3

== (числовой)

5 == 5

числовое  равенство

4

== (строковый)

"a" == "b"

строковое равенство

4

!=

5 != 4

не равно

4

5 > 4

больше чем

4

>=

5 >= 5

больше чем или равно

4

a < b+2

меньше чем

4

<=

a <= b+2

меньше чем или равно

4

&

a & b

AND

5

AND

a AND b

!&

1 !& 0

NAND

5

NAND

1 NAND 0

$

1 $ 1

XOR

6

XOR

1 XOR 1

!$

1 !$ 1

XNOR

6

XNOR

1 XNOR 1

#

a # b

OR

7

OR

a OR b

!#

a !# b

NOR

7

NOR

a NOR b

?

(5<4) ? 3:4

тернарный

8

Ко всем арифметическим выражениям применяются следующие правила:

1.   Арифметические выражения должны давать не отрицательные числа.

2.   Когда результат LOG2 не целый, он автоматически округляется до следующего  целого. Например, LOG2(257) = 9.

Арифметические операторы, поддерживаемые в арифметических выражениях, являются надмножеством арифметических операторов, поддерживаемых в булевых выражениях, которые описываются в 1.3.9.2.



Содержание раздела