电子设计自动化技术教学课件作者张永生第4章节.ppt

电子设计自动化技术教学课件作者张永生第4章节.ppt

  1. 1、本文档共159页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 VHDL硬件描述语言  4.1 VHDL概述 4.2 VHDL程序结构 4.3 VHDL语言要素 4.4 VHDL的基本描述语句   本章小结   本章习题 例如:利用两个2输入与非门构成一个3输入与非门的描述 ENTITY nand3 IS PORT(a,b,c:IN Bit; d:OUT Bit); END nand3: ARCHITECTURE struct OF nand3 IS COMPONENT nand2 IS GENERIC(tpd:Time:=5 ns); PORT(a,b:IN Bit; c:OUT Bit); END COMPONENT nand2: SIGNAL S1:Bit; BEGIN u1:nand2 GENERIC MAP(5 ns) PORT MAP(a,b,s1); u2:nand2 GENERIC MAP(5 as) PORT MAP(s1,c,d); END struct; 5.子程序(Subprogram) VHDL中有两种子程序,即过程和函数,常见于面向逻辑综 合的设计中,主要用于高层次的数值计算或类型转换、运算符 重载、元件例化。它们大都已在IEEE中预定义,也允许用户自 定义新的子程序。 (1)过程(Procedure) 在VHDL中,过程的一般格式为: [过程标号:] PROCEDURE 过程名 (参数表) [IS] [定义语句]; BEGIN [顺序处理语句]; END过程名; 在PROCEDURE结构中,调用的输入输出参数 都应列在参数表中。输入输出参数如没有特别指定 则按变量处理,将值传递给变量。例如,在设计中 如果需要将位矢量转换为整数,就可以用一个过程 调用语句来实现。 PROCEDURE vector to int(z:IN Std Logic Vector; x flag:OUT Boolean; q:INOUT Integrt) IS BEGIN q:=0; x flag:=FALSE; FOR i IN z’RANGE LOOP q:=q*2; IF (z(i)=1) THEN q:=q+1; ELSIF(z(i)/=0) THEN x flag:=TRUE; END IF; END LOOP; END vector to int; 例中的vector to int并行过程调用是对位矢量z进行数制转换,使之变成十进制的整数q。x flag是标志位,当标志位为“真”表明转换失败,为“假”表明转换成功。 (2)函数(Function) 在VHDL中最常用的两个函数是转换函数和决断 函数。转换函数用于数据类型的转换,决断函数用 于计算决断信号的值。 在VHDL中定义函数的一般格式如下: FUNCTION 函数名(输入参数表) RETURN 数据类型 IS [定义语句]; BEGIN [顺序处理语句]; RETURN 返回变量名; END函数名; 其中,输入参数表中的参数均应表示为“参数名:数据类型;”。函数的运算结果由返回变量名来体现,由函数名传送给主程序。 下面的D触发器上升沿检测的描述将展示怎样定义和使用类型转换函数: ENTITY dff IS PORT(d,clk:IN Std Logic; q:OUT Std Logic); FUNCTION rising edge ——定义上升沿函数rising·edge (SIGNAL S:Std Logic) ——输入参数S为Std—Logic类型信号 RETURN BOOLEAN IS

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档