Изучение VHDL

Перезагрузка процедур и функций.


 В языке VHDL допускается определять несколько процедур и функций с одинаковыми названиями. При вызове функции или процедуры из числа функций или процедур с одинаковым названием выбирается такая, которая подходит по типам и числу входных и выходных параметров. Такая функция перезагружает (overloads) остальные функции. Перезагрузка процедур и функций удобна при вычислениях с различными типами. Например, над типами integer, real, подтипами signed, unsigned определены одни и те же арифметические функции, но имеющие различное сочетание типов аргументов и результатов.

Примером перезагрузки служит следующая функция, которая не входит ни в один стандартный пакет:

function "and"(x1,x2:bit) return boolean is  

begin 

             return (x1 and x2) ='1';

      end;

Если эта функция объявлена, то теперь транслятор не выдаст сообщения об ошибке при выполнении оператора if, вызывающего эту функцию:

variable a,b,c: bit;

if (a and b and c) then

end if;

так как выражение в скобках будет иметь правильный тип boolean.

Содержание раздела