2.2 VHDL的基本结构

2.2.4 子程序──过程与函数

  VHDL为计算数据的表达式提供了许多预定义的运算符。在预定义的运算符中,操作数的数目固定,并且操作数的类型必须遵守一定的规则。VHDL容许设计者自己定义子程序(过程和函数),子程序可以看作是运算符的一种推广。
  子程序由一系列的语句组成。在VHDL描述的任何位置都可以对一个子程序进行重复调用。VHDL提供两种子程序:过程和函数。过程与函数的区别在于:过程调用是一个语句,函数调用则是表达式的一部分。VHDL中子程序的定义分为两部分:声明部分与相应的子程序体。声明部分仅包含接口信息,子程序体部分则包含接口信息、局部变量声明和语句。
  子程序声明和子程序体都属于声明,可以出现在所有语言结构的声明部分,例如:程序包和包体中,实体与结构体中,进程声明中,块语句声明中等。子程序体中的声明部分还可以包括另外的子程序声明和子程序体,形成子程序的嵌套。