第9讲-vhdl语言子程序.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子设计自动化技术 第 9 讲 VHDL语言子程序 子程序 子程序是在主程序调用它以后能将结果返回主程序的程序模块,它可以反复调用,方便程序设计。 VHDL子程序模块,由顺序语句构成。每调用一次子程序都意味着增加了一个硬件电路模块,因此,在实际使用时,要密切关注和严格控制子程序的调用次数。 子程序通常放在程序包中,也可放在结构体和进程中。 子程序 函数(Function) 过程(Procedure) 程序包 程序包也叫包集合,主要用来存放各个设计都能共享的数据类型定义、常量定义、子程序定义、信号定义及元件定义等部分。 设计者使用时要用USE语句进行说明。 程序包 程序包的格式: PACKAGE 包集合名 IS [说明语句] END 包集合名; PACKAGE BODY 包集合名 IS [说明语句] END 包集合名; 定义子程序 实现子程序 程序包首 程序包体 程序包 PACKAGE STD_LOGIC_1164 IS …… TYPE std_logic_vector IS ARRAY ( NATURAL RANGE ) OF std_logic; FUNCTION and ( l, r : std_logic_vector ) RETURN std_logic_vector; FUNCTION or ( l, r : std_logic_vector ) RETURN std_logic_vector; …… END STD_LOGIC_1164; PACKAGE BODY STD_LOGIC_1164 IS …… FUNCTION and ( l,r : std_logic_vector ) RETURN std_logic_vector IS …… Begin …… End and“; …… END STD_LOGIC_1164; 函数(Function) 函数语句的作用是输入若干参数,通过函数运算,最后返回一个值。 函数可以重复使用,相当于其他高级语言的函数; 函数仅返回一个值,函数中至少有一条返回语句; 函数首 函数体 函数 函数(Function) Function 函数名 (参数表) Return 数据类型 Function 函数名 (参数表) Return 数据类型 IS 说明部分 Begin 顺序语句 END Function 函数名; 函数首 在程序包首中定义 函数体 在程序包体中定义 函数通常定义在程序包中,也可放在结构体和进程中。 在结构体和进程中定义时,仅需定义函数体。 定义的位置不同,其使用的范围也不同。 函数(Function) Function 函数名 (参数表) Return 数据类型 参数只能是IN模式,用来定义输入值; 参数只能是信号(signal)或常数(constant); 若无特殊说明,参数被默认为常数; 数据类型只能是非限制形式; 不能使用STD_LOGIC_VECTOR( 0TO 7) INTEGER RANGE 20 DOWNTO 1 例: FUNCTION max (a,b:integer) RETURN integer; FUNCTION “xor” (l,r :std_logic_vector) RETURN std_logic_vector; FUNCTION d2 (signal a,b:std_logic) RETURN std_logic; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE hanshu IS --定义程序包 FUNCTION max( a,b : IN STD_LOGIC_VECTOR) --定义函数首 RETURN STD_LOGIC_VECTOR ; END ; PACKAGE BODY hanshu IS FUNCTION max( a,b : IN STD_LOGIC_VECTOR) --定义函数体 RETURN STD_LOGIC_VECTOR IS BEGIN IF a b THEN RETURN a; --RETURN 返回语句 ELSE RETURN b;

文档评论(0)

喵咪147 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档