电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

VHDL子程序(电子信息)

15页
  • 卖家[上传人]:早晚
  • 文档编号:330245741
  • 上传时间:2022-08-08
  • 文档格式:PPTX
  • 文档大小:2.80MB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、VHDLVHDLVHDLVHDL子程序子程序子程序子程序(SUBPROGRA(SUBPROGRA(SUBPROGRA(SUBPROGRAM)M)M)M)EDA技术实用教程 子程序子程序(SUBPROGRAM)SUBPROGRAM)1.1 函数(函数(FUNCTION)函数的语言表达格式如下:函数的语言表达格式如下:FUNCTION 函数名(参数表)函数名(参数表)RETURN 数据类型数据类型 -函数首函数首FUNCTION 函数名(参数表)函数名(参数表)RETURN 数据类型数据类型 IS -函数体函数体 说明部分说明部分 BEGIN 顺序语句顺序语句;END FUNCTION 函数名函数名;【例【例8-4】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEpackexpIS-定义程序包定义程序包FUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)-定义函数首定义函数首RETURNSTD_LOGIC_VECTOR;FUNCTIONfunc1(a,b,c:REAL)-定义函数首定义函数首RETURNREAL;FUNCTION

      2、*(a,b:INTEGER)-定义函数首定义函数首RETURNINTEGER;FUNCTIONas2(SIGNALin1,in2:REAL)-定义函数首定义函数首RETURNREAL;END;PACKAGEBODYpackexpISFUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)-定义函数体定义函数体 RETURN STD_LOGIC_VECTOR IS BEGINIFabTHENRETURNa;ELSERETURNb;ENDIF;ENDFUNCTIONmax;-结束结束FUNCTION语句语句 END;-结束结束PACKAGE BODY语句语句 接下页接下页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

      3、);END;ARCHITECTUREbhvOFaxampISBEGINout1=max(dat1,dat2);-用在赋值语句中的并行函数调用语句用在赋值语句中的并行函数调用语句PROCESS(dat3,dat4)BEGINout2 b THEN RETURN a;ELSE RETURN b;END IF;END FUNCTION max;-结束结束FUNCTION语句语句 FUNCTION max(a,b:IN INTEGER)-定义函数体定义函数体 RETURN INTEGER IS BEGIN接下页接下页IFabTHENRETURNa;ELSERETURNb;ENDIF;ENDFUNCTIONmax;-结束结束FUNCTION语句语句FUNCTIONmax(a,b:INBIT_VECTOR)-定义函数体定义函数体RETURNBIT_VECTORISBEGINIFabTHENRETURNa;ELSERETURNb;ENDIF;ENDFUNCTIONmax;-结束结束FUNCTION语句语句END;-结束结束PACKAGEBODY语句语句-以下是调用重载函数以下是调用重载函数max的程

      4、序:的程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEWORK.packexp.ALL;ENTITYaxampISPORT(a1,b1:INSTD_LOGIC_VECTOR(3DOWNTO0);a2,b2:INBIT_VECTOR(4DOWNTO0);a3,b3:ININTEGERRANGE0TO15;c1:OUTSTD_LOGIC_VECTOR(3DOWNTO0);c2:OUTBIT_VECTOR(4DOWNTO0);c3:OUTINTEGERRANGE0TO15);END;接上页接上页ARCHITECTURE bhv OF axamp IS BEGIN c1=max(a1,b1);-对函数对函数max(a,b:IN STD_LOGIC_VECTOR)的调用的调用 c2=max(a2,b2);-对函数对函数max(a,b:IN BIT_VECTOR)的调用的调用 c3 value:0101;WHEN 0101=value:0000;WHEN OTHERS=value:1111;END CASE;END PROCEDURE prg1;【例【例8

      5、-9】PROCEDURE comp(a,r:IN REAL;m:IN INTEGER;v1,v2:OUT REAL)IS VARIABLE cnt:INTEGER;BEGIN v1:=1.6*a;-赋初始值赋初始值 v2:=1.0;-赋初始值赋初始值 Q1:FOR cnt IN 1 TO m LOOP v2:=v2*v1;EXIT Q1 WHEN v2 v1;-当当v2 v1,跳出循环跳出循环LOOP END LOOP Q1 ASSERT(v2 v1)REPORT OUT OF RANGE -输出错误报告输出错误报告 SEVERITY ERROR;END PROCEDURE comp ;1.4 1.4 重载过程重载过程(OVERLOADED PROCEDURE)OVERLOADED PROCEDURE)子程序子程序(SUBPROGRAM)SUBPROGRAM)【例【例8-10】PROCEDURE calcu(v1,v2:IN REAL;SIGNAL out1:INOUT INTEGER);PROCEDURE calcu(v1,v2:IN INTEGER;SIGNAL out1:INOUT REAL);.calcu(20.15,1.42,signl);-调用第一个重载过程调用第一个重载过程calcu calcu(23,320,sign2);-调用第二个重载过程调用第二个重载过程 calcu .谢谢观看!谢谢观看!谢谢观看!谢谢观看!EDA技术实用教程

      《VHDL子程序(电子信息)》由会员早晚分享,可在线阅读,更多相关《VHDL子程序(电子信息)》请在金锄头文库上搜索。

      点击阅读更多内容
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.