可编程逻辑器件原理、开发与应用第7章.ppt

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

[例7-22] ENTITY fullsub IS PORT( d0,d1,c_in:IN BIT; ft,c_out:OUT BIT); END fullsub; ARCHITECTURE fullsub_strc OF fullsub IS SIGNAL tmp_t,tmp_c1,tmp_c2:BIT; COMPONENT halfsub PORT( a,b:IN BIT; t,c:OUT BIT);  END COMPONENT;   COMPONENT or2 PORT( a,b:IN BIT; c:OUT BIT); END COMPONENT; BEGIN U0:halfsub PORT MAP(d0,d1,tmp_t,tmp_c1 ); U1:halfsub PORT MAP(tmp_t,c_in,ft,tmp_c2); U2:or2 PORT MAP(tmp_c2,tmp_c1,c_out); END fullsub_strc; [例7-23] 半减器的行为描述。 ENTITY halfsub IS PORT( a,b:IN BIT; t,c:OUT BIT); END halfsub; ARCHITECTURE halfsub_behav OF halfsub IS BEGIN PROCESS(a,b) BEGIN t = a XOR b; c = (NOT a) AND b; END PROCESS; END halfsub_behav; [例7-24] 或门的VHDL程序。 ENTITY or2 IS PORT( a,b:IN BIT; c:OUT BIT ); END or2; ARCHITECTURE or2_behav OF or2 IS BEGIN c = a OR b; END or2_behav;   以上三段程序合起来就构成了对全减器的完整描述。编译时,既可以将三段程序合并成一个程序进行编译,也可以对三段程序分别编译:先编译子元件描述例7-24和例7-23,再编译主模块例7-22。对其他VHDL程序也是这样。   通过这个例子也可以看出自顶向下(Top-down)设计方法的基本过程,即自顶向下、模块化、逐层分解,结构描述方法在其中起着重要的作用。   7.6 过 程 和 函 数 1. 过程的定义和调用 1) 过程的定义 在VHDL语言中,过程语句的定义格式如下: PROCEDURE过程名(输入输出参数表) IS [定义语句]; BEGIN [顺序处理语句]; END过程名;   其中,输入输出参数表中应包括该过程用到的所有输入和输出参数。参数的定义格式与PORT语句中的信号定义格式相同,即   参数名:输入/输出类型 数据类型; 在定义语句部分主要进行变量等的定义。请看下面的例子。 [例7-25] 将位矢量转换为整数的过程语句。 PROCEDURE vector_to_integer( b:IN STD_LOGIC_VECTOR; d:OUT INTEGER ) IS BEGIN d := 0; FOR i IN bRANGE LOOP d :=d*2; IF (b(i)=1) THEN d :=d+1; END IF; END LOOP; END vector_to_integer; 该过程有两个参数:b是输入(IN)参数,代表需要转换的位矢量;d为输出(OUT)参数,代表转换的结果。所依据的算法就是将二进制数转换为十进制数时常用的按“位权值”加权求和的算法。在FOR循环中,使用了数组属性RANGE(下标范围)来作为循环变量的变化范围。   与PROCESS结构相同,过程结构中的各条语句也是顺序执行的。调用者在调用过程前应先将初始值传递给过程的输入参数(类型为IN),输入参数在过程中作为常数。然后过程语句启动,按顺序自上而下执行过程结构中的语句,执行结束,将输出值拷贝到调用者的OUT和INOUT类型的变量或信号中。如果没有特别指定,就将值传递给变量。如果调用者需要将输出和输入输出作为信号使用,则应通过在相应的过程参数名前面加上保留字SIGNA

文档评论(0)

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

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

1亿VIP精品文档

相关文档