资源描述:
《vhdl实体作为一个设计实体(独立的电路功能结构)的组成》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章VHDL语言3.1VHDL实体VHDL实体作为一个设计实体(独立的电路功能结构)的组成部分,其功能是对这个设计实体与外部电路进行接口描述。实体是设计实体的表层设计单元,实体说明部分规定了设计单元的输入输出接口信号或引脚,它是设计实体对外的一个通信界面。实体的具体表述和用法已在前面有过详细例解,这里不再重复。3.2VHDL结构体1.结构体的一般语言格式ARCHITECTURE结构体名OF实体名IS[说明语句]BEGIN[功能描述语句]ENDARCHITECTURE结构体名;3.2VHDL结构体2.结构体说明语句3.功能描述语句结构进程语句信号赋值语句子程序调用语句元件例化语句3.3
2、VHDL子程序3.3.1VHDL函数FUNCTION函数名(参数表)RETURN数据类型--函数首FUNCTION函数名(参数表)RETURN数据类型IS--函数体[说明部分]BEGIN顺序语句;ENDFUNCTION函数名;【例3-1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEpackexpIS--定义程序包FUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)--定义函数首RETURNSTD_LOGIC_VECTOR;FUNCTIONfunc1(a,b,c:REAL)--定义函数首RETURNREAL;FUNCTIO
3、N"*"(a,b:INTEGER)--定义函数首RETURNINTEGER;FUNCTIONas2(SIGNALin1,in2:REAL)--定义函数首RETURNREAL;END;PACKAGEBODYpackexpISFUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)--定义函数体RETURNSTD_LOGIC_VECTORISBEGINIFa>bTHENRETURNa;ELSERETURNb;ENDIF;ENDFUNCTIONmax;--结束FUNCTION语句END;--结束PACKAGEBODY语句LIBRARYIEEE;--函数应用实例USEIEEE.S
4、TD_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);--用在赋值语句中的并行函数调用语句PROCESS(dat3,dat4)BEGINout2<=max(dat3,dat4);--顺序函
5、数调用语句ENDPROCESS;END;3.3VHDL子程序3.3.1VHDL函数图3-110-2例3-1的逻辑电路图3.3VHDL子程序【例3-2】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYfuncISPORT(a:INSTD_LOGIC_VECTOR(0to2);m:OUTSTD_LOGIC_VECTOR(0to2));ENDENTITYfunc;ARCHITECTUREdemoOFfuncISFUNCTIONsam(x,y,z:STD_LOGIC)RETURNSTD_LOGICISBEGINRETURN(xANDy)ORz;ENDF
6、UNCTIONsam;BEGINPROCESS(a)BEGINm(0)=sam(a(0),a(1),a(2));m(1)=sam(a(2),a(0),a(1));m(2)=sam(a(1),a(2),a(0));ENDPROCESS;ENDARCHITECTUREdemo;3.3VHDL子程序3.3.2VHDL重载函数【例3-3】(MaxplusII不支持本例)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEpackexpIS--定义程序包FUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)--定义函数首RETURNS
7、TD_LOGIC_VECTOR;FUNCTIONmax(a,b:INBIT_VECTOR)--定义函数首RETURNBIT_VECTOR;FUNCTIONmax(a,b:ININTEGER)--定义函数首RETURNINTEGER;END;PACKAGEBODYpackexpISFUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)--定义函数体RETURNSTD_LOGIC_VECTORISBEGINIFa>bTHENRETU