Читайте также: |
|
Арифметические операторы используются для арифметических операций сложения и вычитания над числами и шинами в булевых выражениях. В них используются следующие операторы.
Таблица 6. Операторы сложения и вычитания языка AHDL
Оператор: | Пример: | Описание: |
+ (унарный) | +1 | плюс |
- (унарный) | -a[4..1] | минус |
+ | count[7..0] + delta[7..0] | сложение |
- | rightmost_x[] - leftmost_x[] | вычитание |
К бинарным операторам применимы следующие правила:
· Операции выполняются между двумя операндами, которые должны быть шинами или числами.
· Если оба операнда - шины, то они должны иметь один размер.
· Если оба операнда числа, более короткое число расширяется до размеров другого операнда.
· Если один оператор - число, а другой группа узлов, то число усекается или расширяется для согласования размеров операндов. Если отбрасываются любые значимые биты, то компилятор MAX+PLUS II выдает сообщение об ошибке.
ÞКогда Вы складываете две шины вместе с правой стороны булева уравнения с помощью оператора +, Вы можете поместить 0 с левой стороны группы для расширения ширины шины. Этот метод обеспечивает добавление дополнительного бита данных с левой стороны уравнения, который можно использовать как сигнал выходного переноса. Например, шины count[7..0] и delta[7..0] дополняются нулями для обеспечения информацией сигнала cout:
(cout, answer[7..0]) = (0, count[7..0]) + (0, delta[7..0])
Компараторы
Для сравнения одиночных узлов или шин используются два типа компараторов: логические и арифметические. В булевых выражениях можно использовать следующие компараторы.
Таблица 7. Компараторы одиночных узлов и шин
Компаратор: | Пример: | Описание |
== (логический) | addr[19..4] == B"B800" | равно |
!= (логический) | b1!= b3 | не равно |
< (арифметический) | fame[] < power[] | меньше чем |
<= (арифметический) | money[] <= power[] | меньше чем или равно |
> (арифметический) | love[] > money[] | больше чем |
>= (арифметический) | delta[] >= 0 | больше чем или равно |
Логические компараторы могут сравнивать одиночные узлы, шины и числа без неопределенных (X) значений. При сравнении шин или чисел, шины должны иметь одинаковый размер. Компилятор MAX+PLUS II выполняет побитовое сравнение шин, возвращая VCC, когда сравнение истинно, и GND, когда сравнение ложно.
Арифметические компараторы могут сравнивать только шины и числа; шины должны иметь одинаковый размер. Компилятор выполняет беззнаковое сравнение значений шин, т.е., каждая шина интерпретируется как положительное двоичное число и сравнивается с другой шиной.
Дата добавления: 2015-08-21; просмотров: 219 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Диапазоны и поддиапазоны шин | | | Массивы примитивов |