[工学]VHDL编程.ppt

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

VHDL的子程序 ?子程序由函数和过程组成,函数只有输 入参数和单一的返回值,而过程有任意多个输入、输出和双向参数。 ?函数有类型转换的转换函数。 ? 决断函数为多驱动网络算出正确驱动值。 ?过程被看作一种语句,而函数通常是表达式的一部分。过程能单独存在,而函数通常作为语句的一部分被请求。 ?程序包用于封装属于多个设计单元分享的公共信息。 ?程序包由程序包说明(说明数据类型、子程序和常量等)和程序包体(它含有子程序体与现有的延时常数)所组成。 * * VHDL的子程序(1) 子程序由执行公共操作的过程和函数组成。程序包是分享属于实体数据的一种机制,把子程序、数据类型和元件说明看成建立设计的工具,则程序包是工具箱 1)过程返回多个变量,而函数则只返回一个变元。 2)函数中所有参数是输入参数。而过程有输入参数,输出参数和双向参数。 3)过程和函数都有两种形式:即并行过程和并行函数以及顺序过程和顺序函数。 并行的过程与函数可在进程语句和另一个子程序的外部, 而顺序函数和过程仅存在于进程语句和另一个子程序语句。 过程在结构体或者进程中按分散语句的形式存在,而函数经常在赋值语句或表达式中用。 函数 USE WORK.std_logic_1164.ALL; PACKAGE num_types IS TYPE log8 IS ARRAY (0 TO 7) OF std_logic; -- line 1 END num_types; USE WORK.std_logic_1164.ALL; USE WORK.num_types.ALL; ENTITY convert IS PORT (I1 : IN log8; -- line 2 O1 : OUT INTEGER); -- line 3 END convert; VHDL的子程序(2) ARCHITECTURE behave OF convert IS FUNCTION vector_to_int(S : log8) -- line 4 RETURN INTEGER is -- line 5 VARIABLE result : INTEGER := 0; -- line 6 BEGIN FOR i IN 0 TO 7 LOOP -- line 7 result := result * 2; -- line 8 IF S(i) = 1 THEN -- line 9 result := result + 1; -- line 10 END IF; END LOOP; RETURN result; -- line 11 END vector_to_int; BEGIN O1 = vector_to_int(I1); -- line 12 END behave; behave结构体说明区中描述vector_to_int函数,函数在结构体中是透明的。函数对数组中每bit位置做移位和相加, (用*2)先移位,如果移出逻辑1值,就加1。最后调用函数的结果赋值到输出端口。   函数的参量总只能是输入参数,上例的参量是constant类别的,没有显式地指定而是默认为一个常量。函数还有另一种参量是signal信号参量,由信号参量传入信号属性,并在函数中是可用的。

文档评论(0)

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

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

1亿VIP精品文档

相关文档