首页 百科知识 子程序结构

子程序结构

时间:2022-10-26 百科知识 版权反馈
【摘要】:子程序就是在主程序调用它以后能够将处理结果返回主程序的程序模块。采用子程序结构可以极大地加强源代码的功能和灵活性,子程序可以被反复调用,使用起来十分方便;采用子程序结构可以使源代码程序模块清晰易懂,避免大量重复源代码的书写。在VHDL中,子程序有两种类型:过程和函数。在VHDL中有多种函数形式,如库中现成的具有专用功能的预定义函数、用于不同目的的自定义函数等。

3.5 子程序结构

子程序就是在主程序调用它以后能够将处理结果返回主程序的程序模块。采用子程序结构可以极大地加强源代码的功能和灵活性,子程序可以被反复调用,使用起来十分方便;采用子程序结构可以使源代码程序模块清晰易懂,避免大量重复源代码的书写。

在VHDL中,子程序有两种类型:过程(procedure)和函数(function)。过程和函数的主要区别在于:过程可以具有多个返回值,而函数只能有一个返回值;过程中参数可以有三种不同的方式,即in、out和inout,而在函数中参数只有in方式;过程中可以有wait语句,而函数中却不能有该语句。

3.5.1 过程

过程定义的结构如下。

img141

参数表可以对常数、信号和变量三类数据对象客体做出说明,并用关键词IN、OUT、INOUT定义这些参数的工作模式,即信息的流向。一般地,IN作为常数处理,OUT和INOUT作为变量进行拷贝,当过程语句在主程序进行调用结束后,将变量OUT和INOUT拷贝到调用者的信号和变量中。在过程调用中,若调用者要将OUT和INOUT作为信号使用,则需要用定义语句特别指明,如signal dout:OUT STD_LOGIC_VECTOR。举例如下。

img142

img143

过程和函数都可以重复调用和嵌套使用。过程调用在后面章节介绍。

3.5.2 函数

在VHDL中有多种函数形式,如库中现成的具有专用功能的预定义函数(如转换函数和决断函数)、用于不同目的的自定义函数等。

函数的语句书写格式如下。

img144

函数名可以是普通的标志符,也可以是运算符(此时必须加上双引号),一般表明函数的功能。参数表中都是输入值。函数参量可以是信号或常数,需放在关键词之后。若不指明,则参数默认为常数。函数的输入值由函数调用者拷贝到括号里的参数中。

一般地,各种功能的函数都被集中在程序包中。

函数的应用举例如下。

img145

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈