Введение в стандарт IEEE. Справочное руководство по языку VHDL (Пересмотр стандарта IEEE. 1076-1987), страница 19

comp2 ("1001") result : "0111" ( comp2 (-7) == 7)

elb2bool

elb2bool (l: std_logic) возвращает boolean;

     Берет значение std_logic и возвращает булево значение. Значение std_logic равно '1',  когда значение истинно, все другие значения ложные.

elb2int

elb2int (l: std_logic) возвращает integer;

     Берет значение std_logic и возвращает целое число. Значение std_logic равно '1',  когда число целое, все другие значения возврашают 0.

     Для всех функций сдвигающего устройства, количество изменений (r) может быть или нет быть константой времени компиляции. Если это так, синтезируемая схема будет только состоять из переупорядочения проводов в массиве. Иначе, инструментальные средства синтеза синтезируют схему сдвигающего устройства.

evec2int

evec2int (l: std_logic_vector) возвращает integer;

     Берет битовый вектор и возвращает (положительное) целочисленное значение. Вектор интерпретируется как число без знака.

extend

extend (op_l: std_logic_vector; op_r: integer) возвращает std_logic_vector;

     Берет вектор (правый операнд) и целое число (левый операнд) и возвращает вектор. Вектор расширяется до размеров  указанных в правом операнде. Входной вектор расширяется нулями в старшем разряде. Крайний левый бит в векторе принят старшим значащим разрядом. Имеется также версия, который берет единственное (std_logic) значение и расширяет этот вектор до размера указанного в правом операнде.

extend ("1001",7) result : "001001"

extend ('1',3) result : "001"

extend ("011001001", 4) result : "1001" -- Округление

extend2

extend2 (op_l: std_logic_vector; op_r: integer) возвращает std_logic_vector;

     Тот же самый extend, но вектора представлены в двоичном виде. Входной вектор дополняется знаковым разрядом. Имеется также extend2, которое берет единственное (std_logic) значение, и расширяет знаковый разряд до вектора размер которого указан в правом операнде.

extend2 ("1001",7) result : "1111001"

extend2 ('1',3) result : "111"

extend2 ("011001001",4) result : "1001" -- Округление

int2boo

int2boo (l: integer) возвращает boolean;

     Берет целое число и возвращается булево. Целочисленное значение '0', возвратит ложь, все другие целочисленные значения возвращают истину.

int2evec

int2evec (l: integer, size : integer := 32) возвращает std_logic_vector;

     Берет целое число и возвращает векторное представление. Размер вектора становится равным значению необязательного второго параметра (размеру). Если этот параметр не определен, по умолчанию размер значений вектора берется равным 32. Если целочисленное значение первого параметра отрицательно, старший значащий бит - знаковый разряд.

     Второй параметр в функции int2evec - новый. До Galileo 2.1, int2evec запрашивал только единственный параметр. Это создавало несовместимость имитаторов синтеза, которая была устранена с введением второго параметра. В некоторых случаях это означает, что Galileo 2.1 выдаст ошибку размера массива в проекте, который будет прекрасно работать под старшими версиями Galileo. Удостоверитесь, что вы добавляете второй параметр, чтобы возвратить правильный размер массива.

mult

mult (op_l, op_r: std_ulogic_vector) возвращает std_ulogic_vector;

     Берет два вектора и возвращает вектор. Размер выходного вектора это сумма размеров обоих входных векторов. В каждом векторе, левое значение бита - старший значащий разряд. Функция mult выполняет умножение без знака двух входных векторов. В случае если входные вектора неодинаковой длины, самый маленький вектор расширяется нулями в старших значащих разрядах до размера самого большого входного вектора прежде, чем будет выполнено умножение.

mult ("1011", "0100") result: "00101100" (mult(11,4)==44)

mult ("1", "1111") result: "00001111" (mult(1,15)==15)

mult2

mult2 (op_l, op_r: std_ulogic_vector) возвращает std_ulogic_vector;