Состояние |
Значение |
U |
Неизвестно |
X |
Принуждение неизвестно |
0 |
Принудительная установка 0 |
1 |
Принудительная установка 1 |
Z |
Высокое общее сопротивление |
W |
Частично неизвестно |
L |
Частичный 0 |
H |
Частичная 1 |
- |
По умолчанию |
Операторы.
Этот раздел описывает основные стандартные операторы VHDL, используемые при проектировании. Вы можете использовать любой из операторов, описанных здесь. В VHDL все логические операторы разделены на 4 основных класса: булевый, сравнения, арифметический, и объединения.
Класс |
Оператор |
Функция |
Булевый |
and |
функция И |
or |
функция ИЛИ |
|
nand |
функция НЕ-И |
|
nor |
функция НЕ-ИЛИ |
|
xor |
исключающее ИЛИ |
|
Сравнения |
= |
Равно |
/= |
неравно |
|
< |
меньше |
|
<= |
меньше или равно |
|
> |
больше |
|
>= |
больше или равно |
|
Арифметические |
abs |
значение взятое по модулю |
+ |
сложение |
|
- |
вычитание |
|
* |
умножение |
|
/ |
деление |
|
mod |
целая часть |
|
rem |
остаток от деления |
|
Объединения |
& |
оператор объединения |
Операторы предшествования.
Выражения процессов в VHDL, используют правила предшествования оператора, предложенные стандартом (IEEE 1076). Если выражение использует операторы обычного предшествования, то они обрабатываются слева направо. Например:
3 - 4 + 5
Результат - 4. Выражение интерпретируется слева направо как:
(3 - 4) + 5
Вы можете использовать круглые скобки в исходном тексте, чтобы управлять этими неоднозначными выражениями.
Ниже представлен список операторов VHDL, которые упорядочены в соответствии с приоритетом предшествования, т.е. оператор с самым высоким приоритетом первый.
Предшествование |
Категория |
Операторы |
1 |
Различная |
abs, not |
2 |
Умножения |
*, /, mod, rem |
3 |
Сложения |
+, -, & |
4 |
Отношений |
=, / =, <, < =, >, > = |
5 |
Логическая |
and, or, nand, nor, xor |
Мультиплексоры и селекторы.
Этот раздел описывает создание мультиплексора или селекторной комбинационной логики на VHDL.
После того, как в тексте встречается оператор выбора, инструментальные средства синтеза создают или мультиплексор или селекторную цепь. В следующем примере, создана селекторная цепь.
case test_vector is
when "000" => o <= bus(0);
when "001" | "010" | "100" => o <= bus(1);
when "011" | "101" | "110" => o <= bus(2);
when "111" => o <= bus(3);
end case;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.