网站大量收购闲置独家精品文档,联系QQ:2885784924

VHDL and PLD 第03章 VHDL程序结构(2013年9月).ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VHDL and PLD 第03章 VHDL程序结构(2013年9月)

第3章 VHDL程序结构 3.5 子程序(SUBPROGRAM) 子程序是一个 VHDL 程序模块 这个模块是利用顺序语句来定义和完成算法的 因此,只能使用顺序语句 这一点与进程十分相似 所不同的是,子程序不能像进程那样可以从本结构体的其它块或进程结构中直接读取信号值或者向信号赋值。子程序可以在 VHDL程序的 3个不同位置进行定义。即在程序包、结构体和进程中定义,但由于只有在程序包中定义的子程序可被几个不同的设计所调用 所以一般应该将子程序放在程序包中。 第3章 VHDL程序结构 VHDL 子程序具有可重载性的特点,即允许有许多重名的子程序,但这些子程序的参数类型及返回值数据类型是不同的,子程序的可重载性是一个非常有用的特性。 子程序有两种类型,即过程 (PROCEDURE) 和函数 (FUNCTION)。 过程的调用可通过其界面提供多个返回值,或不提供任何值 而函数只能返回一个值。 在函数入口中,所有参数都是输入参数,而过程有输入参数、输出参数和双向参数。 过程一般被看作一种语句结构 常在结构体或进程中以分散的形式存在 而函数通常是表达式的一部分 常在赋值语句或表达式中使用。 第3章 VHDL程序结构 在实用中必须注意 综合后的子程序将映射于目标芯片中的一个相应的电路模块 且每一次调用都将在硬件结构中产生对应于具有相同结构的不同的模块。因此,在实用中 要密切关注和严格控制子程序的调用次数。 第3章 VHDL程序结构 函数 (FUNCTION) 函数的语言表达格式如下 FUNCTION 函数名 (参数表) RETURN 数据类型 --函数首 FUNCTION 函数名 (参数表) RETURN 数据类型 IS -- 函数体 [ 说明部分 ] BEGIN 顺序语句 END FUNCTION 函数名; 函数定义应由两部分组成,即函数首和函数体。在进程或结构体中不必定义函数首,而在程序包中必须定义函数首。 第3章 VHDL程序结构 1. 函数首 函数首是由函数名、参数表和返回值的数据类型三部分组成的。如果将所定义的函数组成程序包入库的话,定义函数首是必需的,这时的函数首就相当于一个入库货物名称与货物位置表,入库的是函数体。 程序3-17 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 语句 ... USE WORK. packexp.ALL ENTITY axamp IS PORT(...); END; ARCHITECTURE bhv OF axamp IS BEGIN ... out1 = max(dat1,dat2); --用在赋值语句中的并行函数调用语句 PROCESS(dat3,dat4) BEGIN out2 = max(dat3,dat4); --顺序函数调用语句 END PROCESS; ... END; 第3章 VHDL程序结构 2 函数体 函数体包含一个对数据类型 常数 变量等的局部说明,以及用以完成规定算法或转换的顺序语句部分。一旦函数被调用,就将执行这部分语句

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档