3.4.3子程序 子程序是一个VHDL程序模块,它是利用顺序语句来定义和完成算法的,应用它能更有效地完成重复性地设计工作。子程序不能从所在的结构体的其他块或进程结构中直接读取信号值或者向信号赋值,而只能通过子程序调用及于子程序的界面端口进行通信。 子程序由两种类型,即过程(PROCEDURE)和函数(FUNCTION)。过程的调用可通过其界面获得多个返回值,而函数只能返回一个值。在函数入口中,所有参数都是输入参数,而过程有输入参数、输出参数和双向参数。过程一般被看作一种语句结构,而函数通常是表达式的一部分。过程可以单独存在,而函数通常作为语句的一部分调用。 VHDL子程序有一个非常有用的特性,就是具有可重载性的特点,即允许有许多重名的子程序,但这些子程序的参数类型及返回值数据类型是不同的。 子程序与进程语句的区别: 子程序不能从结构体的其余部分直接读写信号。所有通信都是通过子程序的接口来完成的。 进程可以直接读写结构体内的其它信号。 子程序与组件例化语句的区别: 子程序被实体或另一个子程序调用,综合后嵌入到其中。 组件例化语句用于层次设计,经例化后将产生一 个新的设计层次。 子程序的类型: 过程(Procedure): 0 个或多个 in、inout、或 out 参数。 函数(Function): 0 个或多个 in 参数,一个 return 值。
子程序包含两部分:子程序声明和子程序主体。
|
|||