Курсовая работа: Основы языка VHDL
typeMVLis('U', '0', '1', 'Z' );
то результат сравнения:
MVL'( 'U' ) <MVL'( 'Z' )
будет TRUE, т.к. ‘U’ находится левее ‘Z’.
Операции суммирования, вычитания, конкатенации
Операции имеют обозначения:
+, -, &.
Операнды, участвующие в операциях сложения ( + ) и вычитания ( - ) должны быть одного числового типа, результат оказывается того же типа. Операндами в конкатенации ( & ) могут быть или отдельные элементы или одномерные массивы. Результат выдается в виде массива, например при выполнении конкатенации:
‘0’ & ‘1’
образуется массив символов “01”, или еще пример:
‘C’ & ‘A’ & ‘T’
дает“CAT”.
Операции умножения, деления
К этой группе оператций относятся: *, /, mod, rem.
Операнды умножения ( * ) и деления ( / ) должны быть одновременно либо целочисленного типа (integer) либо типа с плавающей запятой (floatingpoint). Результат всегда того типа, что и операнды. Операция умножения может иметь один операнд физического типа, а другой – либо целочисленного, либо натурального типа. Результат выдается в виде физического типа.
В операции деления допустимо делить объект физического типа на целочисленный или натуральный. Результат - всегда физического типа. Деление физического типа на физический дает целочисленный результат.
Операции остатка ( rem) и “деления по модулю” ( mod) в качестве операндов могут иметь целочисленные типы и результат - целочисленного типа. Результат remимеет знак первого операнда и определяется следующим образом:
AremB= A- ( A/ B) * B
Результат mod имеет знак второго операнда и определяется следующим образом:
AmodB= A– B* N,
где N– некоторое целое.
Прочие операции
К их числу следует отнести: Abs, ** и другие. Операция выделения абсолютного значения ( abs ) совместима с любым числовым типом операнда. Операция возведения в степень ( ** ) операндом слева имеет целое или тип с плавающей точкой, а в качестве правого операнда (степень) - только целое.
1.6 Последовательные операторы
К последовательным операторам (SequentialStatements) относятся операторы присваивания (AssignmentStatements), условные операторы if(ifStatements) и case(caseStatements), операторы цикла (loop - next Statements) и другие. Рассмотрим некоторые из операторов этого типа
Оператор присваивания
Эти операторы делятся на операторы присваивания переменной (обозначается знаком :=) и операторы назначения сигнала (<=). В обоих случаях снаала вычисляется значение выражения, стоящее справа от знака равенства, а затем полученное значение присваивается переменной или сигналу, стоящим слева от знака. Например, оператор
abar:= nota;
задает новое значение переменной abar, а именно – инверсное значение a.
Оператор
z <= not (a and b);
задает новое значение сигнала z, которое получается справа от знака <=.
Оператор if
В общем случае ifпредставляет собой последовательность выражений, оговаривающих условия. В качестве условий применимы любые выражения, при вычисление которых получается булевская величина (FALSEи TRUE).
ifбулевское_выражение then