实用EDA技术与VHDL教程 教学课件 作者 赵岩 林白 王志强 第3章 VHDL硬件描述语言.pptVIP

实用EDA技术与VHDL教程 教学课件 作者 赵岩 林白 王志强 第3章 VHDL硬件描述语言.ppt

  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文档。上传文档
查看更多
(4)过程中允许使用WAIT语句和顺序赋值语句,而函数则不能使用这两种语句。 数据类型类属性用来返回一个类型标识,它仅仅是一种类型属性,并且这个属性只能作为另一种值类或函数类属性的前缀。 数据范围类属性用来返回数据的区间范围,这类属性仅用于数组类型中,而且要求数据类型必须是限定性数组。 3.4.1 值类属性 在VHDL中,值类属性主要用于返回常用数据类型、数组或是块的有关值,例如用来返回数组长度、数据类型的上下界等。 一般来说,VHDL中的值类属性又可以分为三个子类,它们分别是常用数据类型的值类属性、数组的值类属性和块的值类属性。下面对它们分别进行介绍。 1.常用数据类型的值类属性 常用数据类型的值类属性主要用来返回一个数据类型的边界值和上下限值。 这类预定义属性包括4种,它们分别是: (1)’left:返回一个数据类型或子类型最左边的值; (2)’right:返回一个数据类型或子类型最右边的值; (3)’high:返回一个数据类型或子类型的最大值; (4)’low:返回一个数据类型或子类型的最小值。 对于这个问题,块语句可以通过一种特殊的控制方式来实现,即进行块语句的保护。 通过块语句的书写结构不难看出,保留字“BLOCK”的后面可以包含一个卫式表达式。 通过这个卫式表达式,设计人员可以方便地对块语句的执行进行控制:当卫式表达式为真时,块语句将会被执行;当卫式表达式为假时,块语句将不会被执行。 3.块语句的一个完整实例 前面举的关于块语句的小例子相对来说比较简单,块语句书写结构中的很多部分并没有使用。 下面给出一个用来描述全加器的VHDL程序,它是一个包含完整块语句结构的典型实例。 不难看出,例3-41所示的块语句结构中包含有4个进程语句,这4个进程语句之间是并行关系,共同组成一个块语句3结构。 4.块语句的嵌套 在实际设计的过程中,设计人员有时候需要在一个块语句中包含有另外的块语句,从而形成了块语句的嵌套。 通常,块语句可以进行多层嵌套,这样内层块语句就可以很方便地使用外层块语句中定义过的子程序、数据类型、信号以及元件说明等;而外层块语句则不能使用内层块语句定义过的子程序、数据类型、信号以及元件说明等。 下面是一个应用十分广泛的微处理器的VHDL程序,可以说是解释块语句嵌套的经 典例子。 这里为了简单起见,假设CPU是由ALU模块和寄存器模块REG8组成的,而寄存器 模块REG8又由REG1、REG2、……、REG7组成。 3.3.8 过程及函数 在VHDL中,所谓子程序是指在主程序调用它以后能够将处理结果返回主程序的程序模块。 由于它的含义与其他高级编程语言中的子程序相同,因此它同样具有高级编程语言中的子程序所具有的优点: (1)采用子程序可以极大地加强VHDL程序的功能和灵活性,它们可以被反复调用,使用起来十分方便; (2)采用子程序可以使VHDL程序模块清晰易懂,避免了大量重复程序的书写。 通常,VHDL中的过程与函数的主要区别体现在以下几个方面: (1)过程可以具有多个返回值,而函数只能有一个返回值; (2)过程通常用来定义一个算法,而函数往往用来产生一个特定的值; (3)过程中的参数可以具有三种端口模式IN、OUT、INOUT,而函数中的参数只具有一种端口模式IN; 1.过程 对于VHDL中的过程来说,它通常包括过程说明部分和过程定义部分。 其中:过程说明部分主要定义了其他设计调用过程时的接口;过程定义部分则描述该过程具体功能的实现。 因此,这里在讨论过程的书写结构时,通常将过程说明部分和过程定义部分的书写结构分别进行介绍。 在VHDL中,过程说明部分的书写结构如下所示: PROCEDURE 过程名 ([对象类型] 参数名[,参数名 …]:[端口模式] 数据类型; [对象类型] 参数名[,参数名 …]:[端口模式] 数据类型; … ); 在VHDL中,过程定义部分的书写结构如下所示: PROCEDURE 过程名 ([对象类型] 参数名[,参数名 …]:[端口模式] 数据类型; [对象类型] 参数名[,参数名 …]:[端口模式] 数据类型;

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档