zl程序教程

您现在的位置是:首页 >  其它

当前栏目

VHDL子程序

VHDL
2023-09-14 09:16:21 时间

VHDL子程序

VHDL子程序(SUBPROGRAM)是一个VHDL程序模块,这个模块利用顺序语句来定义和完成算法,因此只能使用顺序语句。这一点与进程相似,所不同的是,子程序不能像进程那样可以从本结构体的并行语句或其他进程结构中直接读取信号值或者向信号赋值。
VHDL子程序与其他软件语言程序中的子程序的应用目的相似的,即能更有效地完成重复性的工作 。子程序的使用方式只能通过子程序调用及与子程序的界面端口进行通信。子程序可以在VHDL程序的3个不同位置进行定义,即在程序包、结构体和进程中定义。但由于只有在程序包中定义的子程序才被其他不同的设计所调用,所以一般应该将子程序放在程序中,VHDL子程序具有可重载的特点,即允许有许多重名的子程序,但这些的参数类型及返回值数据类型是不同的。
子程序有两种类型,即过程PROCEDURE和函数FUNCTION。

函数

在VHDL中有多种函数形式,如用于不同目的用户自定义函数和在库中现成的具有专用功能的预定义函数。
函数的语句表达格式如下:
	FUNCTION 函数名(参数表)RETURN 数据类型 --函数首
	FUNCTION 函数名(参数表)RETURN 数据类型 IS --函数体
			[说明部分]
			BEGIN
			顺序语句;
			END FUNCTION 函数名;
一般地,函数定义应有两部分组成,即函数首和函数体,在进程或结构体中不必定义函数首,
而在程序包中必须定义函数首

运算重载就是对VHDL中现存的运算符进行重新定义,以在原来基础上获得新的功能。
新功能的定义是靠函数体来完成的,函数的参数表是用来定义输出值的,所以不必以显示表示参数的方向࿰