В пакете STANDARD , расположенном в большинстве САПР в библиотеке STD , определены четыре новых типа данных:
-
REAL_VECTOR — массив элементов типа real;
-
TIME_VECTOR — массив элементов типа time;
-
INTEGER_VECTOR — массив элементов типа integer;
-
BOOLEAN_VECTOR — массив элементов типа boolean.
Определение новых типов имеет следующий вид:
type BOOLEAN_VECTOR is array (NATURAL range <>) of BOOLEAN;
type INTEGER_VECTOR is array (NATURAL range <>) of INTEGER;
type REAL_VECTOR is array (NATURAL range <>) of REAL;
type TIME_VECTOR is array (NATURAL range <>) of TIME;
Изменения в пакете в стандарте 2008 года (стр. 191-192 [1]):
- Для типа
BOOLEAN_VECTOR предопределены такие же операторы (операции) как и для типа BIT_VECTOR (and, or, nand, nor, xor, xnor, not, [and, or, nand, nor, xor, xnor], sll, srl, sla, sra, rol, ror, =, /=, <, <=, >, >=, ?=, ?/=, &, MINIMUM, MAXIMUM).
- Предопределённые операции для типа
integer_vector включают операторы отношения (relational) (“=”, “/=”, “<”, “>”, “<=”, and “>=”) и оператор конкатенации (“&”).
- Предопределённые операции для типа
real_vector и time_vector включают операторы равенства и неравенства (“=” and “/=”) и оператор конкатенации (“&”).
- Логические операции над массивами/скалярными типами и операция логического сокращения (logical reduction operation) (см. разделы 4.1 и 4.3 в [1]) определены для типов
bit_vector и boolean_vector, так как они являются массивами с элементами типа bit и boolean соответственно.
- Операции соотношений (matching relational operators) “?=”, “?/=”, “?>”, “?>=”, “?<”, и “?<=” определены для типов bit и boolean. Кроме того, операторы “?=” и “?/=” определены для типов bit_vector и boolean_vector. (см. раздел 4.5 в [1])
- Оператор состояния “??” (condition operator) определён для типа BIT (см. раздел 4.4 в [1]).
- Операторы mod и rem определены для типа TIME, так как это физический тип (см. раздел 4.7 в [1]).
- Операции maximum и minimum определены для всех предопределённых типов (см. раздел 4.6 в [1]).
- Функции rising_edge и falling_edge определены для типов bit и boolean. До стандарта VHDL-2008, версия этой функции для типа bit была определена в пакете numeric_bit. Однако, это было сделано для обеспечения совместимости с типом std_logic, определённым в пакете std_logic_1164. В стандарт VHDL-2008 включено определение этих функций в пакете STANDARD. В версии стандарта VHDL-2008 в пакете numeric_bit переопределено определение этих функций, как ссылок (aliases) на предопределённые функции в пакете STANDARD.
- Функция to_string определена для всех скалярных типов и для bit_vector (см. раздел 7.1 в [1]). Кроме того функции to_bstring, to_ostring, и to_hstring и связанные ссылки (associated aliase) определены для типа bit_vector.
Литература
- Peter J. Ashenden, Jim Lewis VHDL-2008. Just the New Stuff. — USA: Morgan Kaufman Publishers, 2007. — 255 с. — ISBN 978-0-12-374249-0
Стр. 191-192 (vhdl-2008 book)
-
The types boolean_vector, integer_vector, real_vector, and time_vector are now predefined. Each is an unconstrained type with natural as the index type, much like the predefined type bit_vector in earlier versions. The predefined operations on boolean_vector are the same as those defined for bit_vector. The predefined operations on integer_vector include the relational operators (“=”, “/=”, “<”, “>”, “<=”, and “>=”) and the concatenation operator (“&”). The predefined operations on real_vector and time_vector include the equality and inequality operators (“=” and “/=”) and the concatenation operator (“&”).
-
Логические операции над массивами/скалярными типами и логическое сокрощение (logical reduction operation) (see Sections 4.1 and 4.3) определены для типов bit_vector и boolean_vector, так как ония являются массивами с элементами типа bit и boolean соответственно.
Стр. 191-192 (vhdl-2008 book)
- The types boolean_vector, integer_vector, real_vector, and time_vector are now predefined. Each is an unconstrained type with natural as the index type, much like the predefined type bit_vector in earlier versions. The predefined operations on boolean_vector are the same as those defined for bit_vector. The predefined operations on integer_vector include the relational operators (“=”, “/=”, “<”, “>”, “<=”, and “>=”) and the concatenation operator (“&”). The predefined operations on real_vector and time_vector include the equality and inequality operators (“=” and “/=”) and the concatenation operator (“&”).
- Логические операции над массивами/скалярными типами и логическое сокрощение (logical reduction operation) (see Sections 4.1 and 4.3) определены для типов bit_vector и boolean_vector, так как ония являются массивами с элементами типа bit и boolean соответственно.
- Операции соотношений (matching relational operators) “?=”, “?/=”, “?>”, “?>=”, “?<”, и “?<=” определены для типов bit и boolean. Кроме того, операторы “?=” и “?/=” определены для типов bit_vector и boolean_vector. (See Section 4.5.)
- Оператор состояния “??” (condition operator) определён для типа BIT (see Section 4.4).
- Операторы mod и rem определены для типа TIME, так как это физический тип (see Section 4.7).
- Операции maximum и minimum определены для всех предопределённых типов (see Section 4.6).
- Функции rising_edge и falling_edge определены для типов bit и boolean. До стандарта VHDL-2008, версия этой функции для типа bit была определена в пакете numeric_bit. Однако, то это было сделано для обеспечения совместимости с типом std_logic, определённым в пакете std_logic_1164. В стандарт VHDL-2008 включено определение этих функций в пакете standard. В версии стандарта VHDL-2008 в пакете numeric_bit переопределено определение этих функций, как ссылок (aliases) на предопределённые функции в пакете standard.
- Функция to_string определена для всех скалярных типов и для bit_vector (see Section 7.1). Кроме того функции to_bstring, to_ostring, и to_hstring и связанные ссылки (associated aliase) определены для типа bit_vector.
-
Операции соотношений (matching relational operators) “?=”, “?/=”, “?>”, “?>=”, “?<”, и “?<=” определены для типов bit и boolean. Кроме того, операторы “?=” и “?/=” определены для типов bit_vector и boolean_vector. (See Section 4.5.)
-
Оператор состояния “??” (condition operator) определён для типа BIT (see Section 4.4).
-
Операторы mod и rem определены для типа TIME, так как это физический тип (see Section 4.7).
-
Операции maximum и minimum определены для всех предопределённых типов (see Section 4.6).
-
Функции rising_edge и falling_edge определены для типов bit и boolean. До стандарта VHDL-2008, версия этой функции для типа bit была определена в пакете numeric_bit. Однако, то это было сделано для обеспечения совместимости с типом std_logic, определённым в пакете std_logic_1164. В стандарт VHDL-2008 включено определение этих функций в пакете standard. В версии стандарта VHDL-2008 в пакете numeric_bit переопределено определение этих функций, как ссылок (aliases) на предопределённые функции в пакете standard.
- Функция to_string определена для всех скалярных типов и для bit_vector (see Section 7.1). Кроме того функции to_bstring, to_ostring, и to_hstring и связанные ссылки (associated aliase) определены для типа bit_vector.
|