В отношении булевских выражений используются
В отношении булевских выражений используются следующие правила:
¨ Множественные присваивания, осуществляемые в отношении переменной объединяются в соответствии с монтажным ИЛИ (#), исключая тот случай, когда значением по умолчанию для этой переменной является VCC.
¨ Узлы в левой части булевского выражения однозначно соответствуют узлам в правой части .
¨ Если значение одиночного узла, VCC или GND присваиваются группе, то значение узла или константы копируется до размерности группы . Например, (a, b) = e эквивалентно a = e и b = e.
¨ Если и левая и правая части выражения представляют собой группы одинакового размера, то каждый член группы, расположенной в правой части, соответствует тому члену группы в левой части, который расположен на той же позиции .Например, (a, b) = (c, d) эквивалентно a = c и b = d.
Þ При сложении двух групп в правой части булевского выражения с использованием операции (+) можно добавить символ “0” слева каждой группы для знакового расширения. Этот метод может быть использован для получения дополнительного бита сигнала переноса в группе, расположенной в левой части выражения. В следующем примере группы count[7..0] и delta[7..0] представлены в знакорасширенном формате для получения значения бита переноса, обозначенного символическим именем cout в левой части выражения:
(cout, answer[7..0]) = (0, count[7..0]) + (0, delta[7..0])
¨ Если в левой и правой частях булевского выражения расположены группы разных размерностей, то количество бит в группе слева должно быть равно или делиться нацело на количество бит в правой части выражения. Биты в левой части выражения отображаются на биты в правой части выражения по порядку. Следующая запись является корректной:
a[4..1] = b[2..1]
В данном выражении биты отображаются в следующем порядке:
a4 = b2
a3 = b1
a2 = b2
a1 = b1
¨ Группа узлов или чисел не может быть присвоена одиночному узлу.
¨ Если число в правой части выражения присваивается группе, расположенной в левой части выражения, то число усекается или расширяется путем распространения знака до соответствия размеру группы в левой части. Если при этом происходит усечение значащих битов, то компилятор выдает сообщение об ошибке. Каждый член в правой части выражения присваивается соответствующему члену в левой части выражения по порядку. Например, (a, b) = 1 эквивалентно a = 0; b =1;
¨ Запятые могут использоваться для резервирования места под неупомянутые элементы группы в булевских выражениях Следующий пример демонстрирует использование запятых для резервирования места под отсутствующие элементы группы (a, b, c, d) :
(a, , c, ) = B"1011";
В данном примере элементам a и c присваивается значение “1”.
¨ Каждое выражение заканчивается символом (;).
Содержание Назад Вперед