Изменения в пакете STANDARD для стандарта VHDL-2008


 

В пакете 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.

Литература

  1. 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.
Контактная информация:

Автор идеи и контента: Бибило П.Н.
Разработчики: Голанов В.А., Зарембо Д.В.
На основе Wordpress CMS

Статистика за сегодня:

Сайт размещен на сервере ОИПИ НАН Беларуси