2.结构体说明语句口对结构体的功能描述语句中将要用到的信号、数据类型、常数、元件、函数和过程等加以说明。口在一个结构体中说明和定义的数据类型、常数、元件、函数和过程只能用于这个结构体中。口如果希望这些定义也能用于其他的实体或结构中,需要将其作为程序包来处理
2. 结构体说明语句 对结构体的功能描述语句中将要用到的信号、数据 类型、常数、元件、函数和过程等加以说明。 在一个结构体中说明和定义的数据类型、常数、元 件、函数和过程只能用于这个结构体中。 如果希望这些定义也能用于其他的实体或结构中, 需要将其作为程序包来处理
3.功能描述语句结构口进程语句:定义顺序语句模块。口信号赋值语句:将处理的结果向信号或端口赋值。口子程序调用语句:调用过程或函数,并将结果赋值于信号。口元件例化语句:对其他的设计实体作元件调用声明
3. 功能描述语句结构 进程语句:定义顺序语句模块。 信号赋值语句:将处理的结果向信号或端 口赋值。 子程序调用语句:调用过程或函数,并将 结果赋值于信号。 元件例化语句:对其他的设计实体作元件 调用声明
8.3VHDL子程序(SUBPROGRAM口子程序是一个VHDL程序模块,利用顺序语句来定义和完成算法。口子程序不能向进程那样可以从本结构体的并行语句或进程结构中直接读取信号值,或者向信号赋值。口子程序可以在程序包、结构体和进程中定义。只有在程序包中定义的子程序可以被其他不同的设计所调用。口子程序调用的自的是更有效地完成重复性的工作。综合后将映射于自标芯片中的一个相应的电路模块。口子程序有两种类型:过程和函数
8.3 VHDL子程序(SUBPROGRAM) 子程序是一个VHDL程序模块,利用顺序语句来定义和 完 成算法。 子程序不能向进程那样可以从本结构体的并行语句或进 程结构中直接读取信号值,或者向信号赋值。 子程序可以在程序包、结构体和进程中定义。只有在程 序包中定义的子程序可以被其他不同的设计所调用。 子程序调用的目的是更有效地完成重复性的工作。综合 后将映射于目标芯片中的一个相应的电路模块。 子程序有两种类型:过程和函数
8.3.1VHDL函数CFUNCTION函数的语言表达格式如下:函数首FUNCTION函数名(参数表)数据类型RETURN函数体数据类型函数名(参数表)ISFUNCTIONRETURN【说明部分】BEGIN顺序语句;函数名;ENDFUNCTION在进程和结构体中不必定义函数首而在程序包中必须定义函数首
8.3.1 VHDL函数(FUNCTION) 函数的语言表达格式如下: -函数首 FUNCTION 函数名(参数表) RETURN 数据类型 - 函数体 FUNCTION 函数名(参数表)RETURN 数据类型 IS [ 说明部分 ] BEGIN 顺序语句 ; END FUNCTION 函数名; 在进程和结构体中不必定义函数首 ,而在程序包中必须定义函数首
【例8-1】LIBRARY IEEE;USEIEEE.STDLOGIC1164.ALL;-定义程序包PACKAGEpackexpIsFUNCTIONmax(a,b:INSTDLOGICVECTOR)--定义函数首RETURNSTD LOGIC VECTOR;-定义函数首FUNCTIONfuncl(a,b,c:REAL)RETURNREAL;11*1定义函数首FUNCTION(a,b:INTEGER)RETURNINTEGER:FUNCTIONas2(SIGNALin,in2:REAL)--定义函数首RETURNREAL;END;PACKAGEBODYpackexpISFUNCTIONmax(a,b:INSTDLOGICVECTOR)--定义函数体RETURNSTD LOGIC VECTORISBEGINIFa>bTHENRETURN a;ELSERETURN b;ENDIF;END FUNCTION max;--结束FUNCTION语包END;--结束PACKAGEBODY语句接下页
【例8-1】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE packexp IS -定义程序包 FUNCTION max( a,b : IN STD_LOGIC_VECTOR) -定义函数首 RETURN STD_LOGIC_VECTOR ; FUNCTION func1 ( a,b,c : REAL ) -定义函数首 RETURN REAL ; FUNCTION "*" ( a ,b : INTEGER ) -定义函数首 RETURN INTEGER ; FUNCTION as2 (SIGNAL in1 ,in2 : REAL ) -定义函数首 RETURN REAL ; END ; PACKAGE BODY packexp IS FUNCTION max( a,b : IN STD_LOGIC_VECTOR) -定义函数体 RETURN STD_LOGIC_VECTOR IS BEGIN IF a > b THEN RETURN a; ELSE RETURN b; END IF; END FUNCTION max; -结束FUNCTION语句 END; -结束PACKAGE BODY语句 接下页