子程序及描述风格.ppt

子程序及描述风格.ppt

ID:52306732

大小:502.51 KB

页数:41页

时间:2020-04-04

子程序及描述风格.ppt_第1页
子程序及描述风格.ppt_第2页
子程序及描述风格.ppt_第3页
子程序及描述风格.ppt_第4页
子程序及描述风格.ppt_第5页
资源描述:

《子程序及描述风格.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.6子程序子程序由一组顺序语句组成,是为了在程序中重复使用而设立的。在结构体中定义的子程序对于该结构体来说是局部的,即不能被其它设计层次的结构体调用。如果要在其它结构体中调用同一个子程序,就需要把子程序定义到程序包中。VHDL中的子程序有两类:过程(PROCEDURE):过程通过其接口返回0个或多个值。函数(FUNCTION):函数直接返回单个值。子程序包含两部分:即子程序声明和主体部分。在程序包中声明子程序时,子程序声明必须要在程序包首中,子程序主体必须要在程序包体中。一、函数的定义与引用函数语句的作用是输入若干参数,通过函数运算求值,最后返回一个值。函数语句

2、的格式为:FUNCTION函数名(参数表)RETURN数据类型;--函数首FUNCTION函数名(参数表)RETURN数据类型IS--函数体[子程序声明部分;]BEGIN顺序语句;END函数名;函数首是程序包与函数的接口界面。如果要将一个函数组织成程序包入库,则必须定义函数首,且函数首应放在程序包的说明部分,而函数体应放在程序包的包体内。如果只在一个结构体中定义并调用函数,则只需定义函数体即可。参数表中为参数名、参数类别及数据类型,函数的参数为信号或常数,默认情况为常数;在RETURN后面的数据类型为函数返回值的类型;子程序声明项用来说明函数体内引用的对象和过程;

3、顺序语句就是函数体,用来定义函数的功能。LIBRARYieee;USEieee.std_logic_1164.ALL;ENTITYfunISPORT(A:INstd_logic_Vector(0TO2);M:OUTstd_logic_Vector(0TO2));ENDfun;ARCHITECTUREartOFfunISFUNCTIONsam(X,Y,Z:BIT)RETURNBITISBEGINRETURN(XANDY)ORZ;ENDsam;函数应用实例只有输入变量函数应用在结构体中BEGINPROCESS(A)BEGINM(0)<=sam(A(0),A(1),A(

4、2));M(1)<=sam(A(2),A(0),A(1));M(2)<=sam(A(1),A(2),A(0));ENDPROCESS;ENDart;当A的3个位中任何一位有变化时,将启动对sam函数的调用,并将返回值赋给M输出。函数调用是一个表达式。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEpackexpIS--定义程序包FUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)RETURNSTD_LOGIC_VECTOR;--定义函数首--FUNCTIONfunc1(a,b,c:REAL)RETURN

5、REAL;--定义函数首--FUNCTION"*"(a,b:INTEGER)RETURNINTEGER;--定义函数首--FUNCTIONas2(SIGNALin1,in2:REAL)RETURNREAL;--定义函数首END;函数定义在程序包中PACKAGEBODYpackexpISFUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)RETURNSTD_LOGIC_VECTORIS--定义函数体BEGINIFa>bTHENRETURNa;ELSERETURNb;ENDIF;ENDFUNCTIONmax;--结束FUNCTION语句END;--结

6、束PACKAGEBODY语句LIBRARYIEEE;--函数应用实例USEIEEE.STD_LOGIC_1164.ALL;USEWORK.packexp.ALL;ENTITYaxampISPORT(dat1,dat2:INSTD_LOGIC_VECTOR(3DOWNTO0);dat3,dat4:INSTD_LOGIC_VECTOR(3DOWNTO0);out1,out2:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREbhvOFaxampISBEGINout1<=max(dat1,dat2);--用在赋值语句中的并行函

7、数调用语句PROCESS(dat3,dat4)BEGINout2<=max(dat3,dat4);--顺序函数调用语句ENDPROCESS;END;二、过程的定义与引用过程的作用是传递信息,即通过参数进行内外的信息传递。其中参数需说明(信号、变量及常量)类别、类型及传递方向。过程定义的格式为:PROCEDURE过程名(参数声明)IS[子程序声明部分];BEGIN顺序语句;END[PROCEDURE][过程名];其中:参数声明指明了输入、输出端口的数目和类型。参数声明的语法格式为:[参数名:方式]方式参数类型有inoutinoutbuffer等四种。在PROC

8、EDURE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。