欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第5章 VHDL硬件描述语言.ppt

    • 资源ID:70679771       资源大小:1.32MB        全文页数:191页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章 VHDL硬件描述语言.ppt

    第第5章章 VHDL硬件描述语言硬件描述语言 u5.1 VHDL概述概述 u5.2 VHDL的程序结构的程序结构 u5.3 VHDL的语言要素的语言要素 u5.4 VHDL基本描述语句基本描述语句 u小结小结5.1 VHDL概述概述u5.1.1 硬件描述语言发展历史硬件描述语言发展历史u传统的硬件电路设计方法是采用自下而上的设计方法传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬即根据系统对硬件的要求件的要求,详细编制技术规格书详细编制技术规格书,并画出系统控制流图并画出系统控制流图;然后根据技术然后根据技术规格书和系统控制流图规格书和系统控制流图,对系统的功能进行细化对系统的功能进行细化,合理地划分功能模块合理地划分功能模块,并画出系统的功能框图并画出系统的功能框图;接着就进行各功能模块的细化和电路设计接着就进行各功能模块的细化和电路设计;各各功能模块电路设计、调试完成后功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来将各功能模块的硬件电路连接起来,再进行系统的调试再进行系统的调试,最后完成整个系统的硬件设计。采用传统方法设计最后完成整个系统的硬件设计。采用传统方法设计数字系统数字系统,特别是当电路系统非常庞大时特别是当电路系统非常庞大时,设计者必须具备较多的设计设计者必须具备较多的设计经验经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。下一页 返回5.1 VHDL概述概述u在在HDL(硬硬件件描描述述语语言言)形形成成发发展展之之前前,已已有有了了许许多多程程序序设设计计语语言言,如如汇汇编编、C、Pascal、Fortran、Prolog等等。这这些些语语言言运运行行在在不不同同的的硬硬件件平平台台和和操操作作环环境境中中,它它们们适适合合于于描描述述过过程程和和算算法法,不不适适合合作作硬硬件件描描述述。CAD的的出出现现,使使人人们们可可以以利利用用计计算算机机进进行行建建筑筑、服服装装等等行行业业的的辅辅助助设设计计,电电子子辅辅助助设设计计也也同同步步发发展展起起来来。在在从从CAD工工具具到到EDA工工具具的的进进化化过过程程中中,电电子子设设计计工工具具的的人人机机界界面面能能力力越越来来越越高高。在在利利用用EDA工工具具进进行行电电子子设设计计时时,逻逻辑辑图图、分分立立电电子子元元件件作作为为整整个个越越来来越越复复杂杂的的电电子子系系统统的的设设计计己己不不适适应应。任任何何一一种种EDA工工具具,都都需需要要一一种种硬硬件件描描述述语语言言来来作作为为其其工工作作语语言言。这些众多的这些众多的EDA工具软件开发者工具软件开发者,各自推出了自己的各自推出了自己的HDL。下一页 返回上一页5.1 VHDL概述概述uHDL发发展展的的社社会会根根源源是是:美美国国国国防防部部电电子子系系统统项项目目有有众众多多的的承承包包公公司司,由由于于各各公公司司技技术术路路线线不不一一致致,许许多多产产品品不不兼兼容容,他他们们使使用用各各自自的的设设计计语语言言,使使得得甲甲公公司司的的设设计计不不能能被被乙乙公公司司重重复复利利用用,造造成成了了信信息息交交换换困困难难和和维维护护困困难难。美美国国政政府府为为了了降降低低开开发发费费用用,避避免免重重复复设设计计,国国防防部部为为他他们们的的超超高高速速集集成成电电路路提提供供了了一一种种硬硬件件描描述述语语言言,以以期期望望VHDL功功能能强强大大、严严格格、可可读读性性好好。政政府府要要求求各各公公司司的的合合同同都都用用它它来来描描述述,以以避避免免产产生生歧歧义义。由由政政府府牵牵头头,VHDL工工作作小小组组于于1981年年6月月成成立立,提提出出了了一一个个满满足足电电子子设设计计各各种种要要求求的的能能够够作作为为工工业业标标准准的的HDL。1983年年第第3季季度度,由由IBM公公司司、TI公公司司、Intermetrics公公司司签签约约,组组成成开开发发小小组组,工工作作任任务务是是提提出语言版本和开发软件环境。出语言版本和开发软件环境。下一页 返回上一页5.1 VHDL概述概述u1986年年,IEEE(美国电气与电子工程师协会美国电气与电子工程师协会)标准化组织开始工作标准化组织开始工作,讨论讨论VHDL标准标准,历时一年有余历时一年有余,于于1987年年12月通过标准审查月通过标准审查,并宣布实施并宣布实施,即即IEEESTD1076-1987LRM87。1993年年VHDL重新修订重新修订,形成了新的形成了新的标准标准,即即IEEESTD1076-1993LRM93。从此以后从此以后,美国国防部实施新美国国防部实施新的技术标准的技术标准,要求电子系统开发商的合同文件一律采用要求电子系统开发商的合同文件一律采用VHDL文档文档,第第一个官方一个官方VHDL标准由此得到推广标准由此得到推广、实施和普及。实施和普及。u现在现在,随着系统级随着系统级FPGA以及系统芯片的出现以及系统芯片的出现,软硬件协调设计和系统软硬件协调设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。硬件描述语言为适应新的情况和软件设计结合。硬件描述语言为适应新的情况,得到,得到迅速发展迅速发展,出现出现了很多新的硬件描述语言了很多新的硬件描述语言,像像Superlog、SystemC、CynlibC+等。等。下一页 返回上一页5.1 VHDL概述概述u5.1.2 VHDL语言的特点与开发流程语言的特点与开发流程u1VHDL语言特点语言特点uVHDL与计算机软件语言虽然都属于软件语言与计算机软件语言虽然都属于软件语言,但二者各有特点。软件但二者各有特点。软件是相对于硬件而言的。计算机软件包括机器运行所需要的各种程序及其是相对于硬件而言的。计算机软件包括机器运行所需要的各种程序及其有关资料有关资料,例如汇编程序、编译程序、操作系统、诊断程序、控制程序、例如汇编程序、编译程序、操作系统、诊断程序、控制程序、专用程序包、程序库程序、数据管理系统、各种维护使用手册、程序说专用程序包、程序库程序、数据管理系统、各种维护使用手册、程序说明和框图等。软件是计算机在日常工作明和框图等。软件是计算机在日常工作中中不可缺少的不可缺少的,它可以扩大计算它可以扩大计算机的功能和提高计算机的效率机的功能和提高计算机的效率,是计算机系统的组成部分。而是计算机系统的组成部分。而VHDL是是为数字电路的建模和模拟为数字电路的建模和模拟(simulation)而制定的而制定的,是一种面向模拟、针是一种面向模拟、针对硬件的语言。它的语法中有许多方面均考虑到模拟与硬件的因素对硬件的语言。它的语法中有许多方面均考虑到模拟与硬件的因素,包包括括VHDL的硬件相关结构、并发特征和混合级描述以及混合级模拟。的硬件相关结构、并发特征和混合级描述以及混合级模拟。下一页 返回上一页5.1 VHDL概述概述(1)VHDL中的硬件相关结构中的硬件相关结构VHDL具有许多与数字电路结构直接相关的概念具有许多与数字电路结构直接相关的概念,其中最主要的是元件其中最主要的是元件(component),它是数字硬件结构它是数字硬件结构黑盒黑盒或或模块模块的抽象。的抽象。VHDL中的中的元件由实体和结构体两部分共同描述完成。其中实体描述元件与外部环元件由实体和结构体两部分共同描述完成。其中实体描述元件与外部环境的接口境的接口,其内部行为及结构是隐蔽的。实体的功能定义在称为结构体其内部行为及结构是隐蔽的。实体的功能定义在称为结构体的单元中的单元中,结构体规定实体电路的输入、输出以及相互之间的行为与功结构体规定实体电路的输入、输出以及相互之间的行为与功能。一个实体可以存在多个对应的结构体能。一个实体可以存在多个对应的结构体,分别以行为风格、数据流风分别以行为风格、数据流风格、结构化风格以及各种风格混合的描述方法来实现。元件的存在使格、结构化风格以及各种风格混合的描述方法来实现。元件的存在使VHDL脱离普通程序语言的范畴脱离普通程序语言的范畴,成为描述数字电路的专用硬件设计语成为描述数字电路的专用硬件设计语言。言。下一页 返回上一页5.1 VHDL概述概述(2)VHDL的并发性的并发性计算机软件程序一般按书写的顺序依次执行计算机软件程序一般按书写的顺序依次执行,而而VHDL却具有并发性。却具有并发性。VHDL的并发性体现在两个方面的并发性体现在两个方面,首先在使用首先在使用VHDL进行数字电路设计进行数字电路设计时存在并发性时存在并发性,即即VHDL支持设计分解支持设计分解,可使被分解的各个子部分的设可使被分解的各个子部分的设计并行完成。一个模型的设计主要由计并行完成。一个模型的设计主要由3部分组成部分组成:元件库部分元件库部分USE说明说明区区:实体部分实体部分确立模型与环境的接口确立模型与环境的接口:结构体部分结构体部分描述元件的行为描述元件的行为或功能或功能,为模型生成测试向量为模型生成测试向量,并捕获模型输出信号状态以供分析。在并捕获模型输出信号状态以供分析。在设计流程方面设计流程方面,在系统分析阶段在系统分析阶段,系统分析者可将设计对象分为若干独系统分析者可将设计对象分为若干独立的子元件立的子元件,交给若干设计小组实现。在此阶段交给若干设计小组实现。在此阶段,系统设计者严格定义系统设计者严格定义元件接口元件接口,并将元件之间的相互作用以文档形式提供给设计小组。然后并将元件之间的相互作用以文档形式提供给设计小组。然后,各设计小组可独立并行地对子元件进行详细设计各设计小组可独立并行地对子元件进行详细设计,并模拟验证子元件并模拟验证子元件,确保正确无误。最终确保正确无误。最终,系统设计者集成各子元件形成完整的设计系统设计者集成各子元件形成完整的设计,对整对整个设计进行模拟验证。设计的并发性可极大地加快整体设计进程并提高个设计进行模拟验证。设计的并发性可极大地加快整体设计进程并提高设计质量。设计质量。下一页 返回上一页5.1 VHDL概述概述其次其次,VHDL之所以称为硬件描述语言之所以称为硬件描述语言,很重要的一点是因为它在模拟很重要的一点是因为它在模拟执行上具有并发性执行上具有并发性,这一点很适于描述硬件电路活动的并发性特点这一点很适于描述硬件电路活动的并发性特点,是是其他程序设计语言所不具备的。其他程序设计语言所不具备的。VHDL中的进程类似于中的进程类似于UNIX操作系统的进程概念操作系统的进程概念,它们的挂起、活动均它们的挂起、活动均是独立的。并发性使得是独立的。并发性使得VHDL的设计模拟可在并行机上进行的设计模拟可在并行机上进行,大大提高大大提高了模拟效率了模拟效率,是解决模拟时间瓶颈的方法之一。在并行模拟中是解决模拟时间瓶颈的方法之一。在并行模拟中,VHDL源描述程序经编译后源描述程序经编译后,除了完成通常的功能外除了完成通常的功能外,还将每个进程静态地映还将每个进程静态地映射到特定的处理器上射到特定的处理器上,计算的加载、通信频带的估算均来自于暂时性的计算的加载、通信频带的估算均来自于暂时性的分析及波形传播分析分析及波形传播分析,以帮助获得合理的平衡的静态映射。以帮助获得合理的平衡的静态映射。下一页 返回上一页5.1 VHDL概述概述u2.VHDL语言的开发流程语言的开发流程uVHDL语言作为一种标准化的硬件描述语言,在对硬件电路进行描述的语言作为一种标准化的硬件描述语言,在对硬件电路进行描述的过程中应该遵循一定的流程。采用过程中应该遵循一定的流程。采用VHDL语言进行硬件电路设计的开发语言进行硬件电路设计的开发步骤主要包括以下几步:步骤主要包括以下几步:(1)接受电路设计任务在进行硬件电路系统设计之前,首先要由总体方)接受电路设计任务在进行硬件电路系统设计之前,首先要由总体方案设计工程师作出总体设计方案;然后给出相应的硬件电路系统设计指案设计工程师作出总体设计方案;然后给出相应的硬件电路系统设计指标;最后将总体方案中的各个部分电路设计任务以及相应的设计要求下标;最后将总体方案中的各个部分电路设计任务以及相应的设计要求下达给相应的设计部门。达给相应的设计部门。下一页 返回上一页5.1 VHDL概述概述(2)确定电路具体功能)确定电路具体功能通常情况下,总体方案中关于电路的设计任务以及设计要求相对来说比通常情况下,总体方案中关于电路的设计任务以及设计要求相对来说比较抽象。接受到相应的电路设计任务后,设计人员首先要对电路的设计较抽象。接受到相应的电路设计任务后,设计人员首先要对电路的设计任务和设计要求进行具体分析,目的是确定设计电路所要实现的具体功任务和设计要求进行具体分析,目的是确定设计电路所要实现的具体功能。能。(3)划分模块、编写程序划分模块、编写程序利用利用VHDL语言设计硬件电路通常采用自顶向下的设计方法。所谓自顶语言设计硬件电路通常采用自顶向下的设计方法。所谓自顶向下的设计方法就是指从电路设计的总体要求出发,自顶向下地将设计向下的设计方法就是指从电路设计的总体要求出发,自顶向下地将设计划分为不同的功能模块,每个功能模块完成一定的逻辑功能。不难看出,划分为不同的功能模块,每个功能模块完成一定的逻辑功能。不难看出,这种设计方法的总体思路是:首先确定顶层模块并进行顶层模块的设计;这种设计方法的总体思路是:首先确定顶层模块并进行顶层模块的设计;然后将顶层模块中的逻辑功能划分为不同的功能模块,再进行功能模块然后将顶层模块中的逻辑功能划分为不同的功能模块,再进行功能模块的详细设计。的详细设计。下一页 返回上一页5.1 VHDL概述概述一般来说,划分模块是设计过程中一个非常重要的步骤。模块划分的好一般来说,划分模块是设计过程中一个非常重要的步骤。模块划分的好坏将会直接影响到最终的电路设计,因此设计人员在这一步应该花费一坏将会直接影响到最终的电路设计,因此设计人员在这一步应该花费一定的时间,从而保证模块划分的最优化。准确地划分完功能模块并确定定的时间,从而保证模块划分的最优化。准确地划分完功能模块并确定相应的逻辑功能后,设计人员就可以编写各个模块的相应的逻辑功能后,设计人员就可以编写各个模块的VHDL语言程序,语言程序,然后将各个模块的然后将各个模块的VHDL语言程序组合在一起,从而完成整个电路设计语言程序组合在一起,从而完成整个电路设计的的VHDL语言描述。语言描述。(4)VHDL语言程序模拟语言程序模拟采用采用VHDL语言进行硬件电路设计的过程中,综合、优化和布局布线往语言进行硬件电路设计的过程中,综合、优化和布局布线往往需要花费大量的时间。一旦综合、优化和布局布线中发现错误,设计往需要花费大量的时间。一旦综合、优化和布局布线中发现错误,设计人员就需要修改人员就需要修改VHDL语言程序,然后再次进行综合、优化和布局布线。语言程序,然后再次进行综合、优化和布局布线。如此反复修改操作,需要花费大量的时间。因此在设计过程中,设计人如此反复修改操作,需要花费大量的时间。因此在设计过程中,设计人员往往先采用模拟器员往往先采用模拟器(或称为仿真器或称为仿真器)对对VHDL语言程序进行模拟语言程序进行模拟(或称为或称为仿真仿真)。这样做的目的是可以在设计的早期发现电路设计上的缺陷和错误,。这样做的目的是可以在设计的早期发现电路设计上的缺陷和错误,从而节省电路设计的时间,缩短开发周期。从而节省电路设计的时间,缩短开发周期。下一页 返回上一页5.1 VHDL概述概述(5)综合、优化和布局布线综合、优化和布局布线综合的作用是将较高层次的综合的作用是将较高层次的VHDL语言抽象描述转化为较低级别抽象,语言抽象描述转化为较低级别抽象,简单地说就是将电路设计的简单地说就是将电路设计的VHDL语言描述转化成底层电路表示。语言描述转化成底层电路表示。优化的作用是将电路设计的时延缩到最小和有效利用资源。几乎所有的优化的作用是将电路设计的时延缩到最小和有效利用资源。几乎所有的高级高级VHDL综合工具都可以利用约束条件对电路设计进行优化。一般情综合工具都可以利用约束条件对电路设计进行优化。一般情况下,常用的约束条件主要包括时间约束和面积约束。况下,常用的约束条件主要包括时间约束和面积约束。布局布线的作用是将通过综合和优化所得到的逻辑,安放到一个逻辑器布局布线的作用是将通过综合和优化所得到的逻辑,安放到一个逻辑器件之中的过程。一个较好的布局布线过程就是将电路的相关部分放置在件之中的过程。一个较好的布局布线过程就是将电路的相关部分放置在一起,以消除布线延迟。一起,以消除布线延迟。下一页 返回上一页5.1 VHDL概述概述(6)布局布线后的程序模拟布局布线后的程序模拟布局布线后的程序模拟与前面的布局布线后的程序模拟与前面的VHDL语言程序模拟不同,后者只是对语言程序模拟不同,后者只是对设计的逻辑功能进行模拟,而前者不仅可以对设计的逻辑功能进行验证,设计的逻辑功能进行模拟,而前者不仅可以对设计的逻辑功能进行验证,而且还可以对设计的时序进行验证。通常,时序对于电路的设计来说是而且还可以对设计的时序进行验证。通常,时序对于电路的设计来说是十分重要的,如果时序不能得到满足,那么就需要对先前的电路设计进十分重要的,如果时序不能得到满足,那么就需要对先前的电路设计进行修改。行修改。(7)生成器件编程文件生成器件编程文件生成器件编程文件的作用是将生成器件编程文件的作用是将VHDL语言描述经过模拟、综合、优化和语言描述经过模拟、综合、优化和布局布线的结果,经过一定的映射转化成一个器件编程所用的数据文件布局布线的结果,经过一定的映射转化成一个器件编程所用的数据文件格式。格式。(8)进行器件编程进行器件编程所谓器件编程就是指将前一步骤中生成的编程数据文件下载到指定的可所谓器件编程就是指将前一步骤中生成的编程数据文件下载到指定的可编程逻辑器件中去。器件编程可以采用下载电缆通过编程逻辑器件中去。器件编程可以采用下载电缆通过JTAG口进行数据口进行数据下载。下载。返回上一页5.2 VHDL的程序结构的程序结构u一个完整的一个完整的VHDL程序通常包括实体程序通常包括实体(Entity)、结构体、结构体(Architecture)、配、配置置(Configuration)、程序包集合、程序包集合(Package)和库和库(Library)5个部分。前个部分。前4部部分是可分别编译的源设计单元。库存放已经编译的实体、结构体、配置分是可分别编译的源设计单元。库存放已经编译的实体、结构体、配置和程序包集合。和程序包集合。下一页 返回5.2 VHDL的程序结构的程序结构uVHDL程程序序至至少少由由实实体体(entity)和和结结构构体体(architecture)两两部部分分组组成成。VHDL采采用用结结构构程程序序的的设设计计原原理理,其其主主要要思思想想是是在在实实体体中中定定义义一一个个芯芯片片(IC)或或硬硬件件电电路路模模块块的的接接口口,同同时时隐隐去去它它的的内内部部细细节节。因因此此,实实体体是是VHDL的的硬硬件件抽抽象象,它它表表示示具具有有明明确确的的输输入入、输输出出的的硬硬件件设设计计的的一一部部分分。同同时时,结结构构体体指指定定设设计计实实体体输输入入和和输输出出之之间间的的行行为为、逻逻辑辑关关系系或或功功能能,并并且且可可以以采采用用行行为为风风格格、数数据据流流风风格格、结结构构化化风风格格或或3种种风风格格的的混混合合形形式式进进行行描描述述。图图5-1为为VHDL程程序序的的基基本本构构成成,例例5-1是是用用VHDL设设计计的的二二选选一一选选择择器器的的程程序序。总总之之,实实体体和和结结构构体体是是一一个个VHDL文文件件的的最最基基本本的的部部分。分。下一页 返回上一页5.2 VHDL的程序结构的程序结构【例例5-1】二选一选择器二选一选择器的的VHDL程序程序library ieee;use ieee.std_logic_1164.all;entity mux21 is port(a,b:in std_logic;s:in std_logic;y:out std_logic);end mux21;architecture one of mux21 is begin y=a when s=1 else b when s=0;end;下一页 返回上一页5.2 VHDL的程序结构的程序结构uVHDL的实体说明是结构体的接口的实体说明是结构体的接口,可以被其他设计模块调用可以被其他设计模块调用,从较高从较高层次隐去低层次结构体的细节。如层次隐去低层次结构体的细节。如图图5-2所示所示,高层次结构体可以多次使高层次结构体可以多次使用低层实体用低层实体,而且多个顶层结构体可以使用同一个低层实体。图而且多个顶层结构体可以使用同一个低层实体。图5-2中中,结构体结构体B、E和和F不用其他任何实体不用其他任何实体,是单独的。是单独的。uVHDL允许设计者对单个实体定义多个结构体允许设计者对单个实体定义多个结构体,并提供一个配置管理器并提供一个配置管理器,负责管理在特定的编译和仿真期间使用某个结构体负责管理在特定的编译和仿真期间使用某个结构体,并对仿真的结果进并对仿真的结果进行比较行比较,从中可以选出最佳的结构体从中可以选出最佳的结构体,如如图图5-3所示。所示。u在在VHDL的文本程序中的文本程序中,结构体定义紧跟在实体说明之后。例如,例结构体定义紧跟在实体说明之后。例如,例5-2是一个简单的二输入与门的是一个简单的二输入与门的VHDL程序,实现程序,实现z=x and(not y)的逻辑功能,的逻辑功能,即当即当x=l且且y=0时,时,z=l,否则,否则z=0。其中,。其中,inhibit是实体名,是实体名,inhabit_arch是结构体名,都是由设计者来命名的标志符。是结构体名,都是由设计者来命名的标志符。下一页 返回上一页5.2 VHDL的程序结构的程序结构【例例5-2】一个与门电路的一个与门电路的VHDL程序程序library ieee;use ieee.std_logic_1164.all;一打开需要用到的库一打开需要用到的库 entity inhibit is 一实体一实体(端口端口)说明说明 port(x,y:in std_logic;z:out std_logic);end inhibit;architecture inhabit_arch of inhibit is 一结构体定义一结构体定义 begin z=1 when x=1 and y=0 else 0;end;下一页 返回上一页5.2 VHDL的程序结构的程序结构u程序说明程序说明:u由仿真结果可以得出由仿真结果可以得出,只有当只有当x=1,y=O时时,输出输出z=1,其余其余z=O。在结。在结构体描述中使用了构体描述中使用了when-else语句。语句。u仿真结果仿真结果:u在大的工程里在大的工程里,实体和结构体有时定义在独立的文件里实体和结构体有时定义在独立的文件里,其编译按照它其编译按照它们声明的名字去匹配。们声明的名字去匹配。u5.2.1 实体实体u实体说明是实体说明是VHDL语言的硬件抽象。它表示具有明确的输入、输出语言的硬件抽象。它表示具有明确的输入、输出的硬件设计的一部分端口。实体定义必须和其所对应的结构体定义存放的硬件设计的一部分端口。实体定义必须和其所对应的结构体定义存放在同一个库中在同一个库中,一个实体代表整个电路设计的一个完整层级一个实体代表整个电路设计的一个完整层级,可以是整可以是整个电路个电路,也可以是任何层级的一个模块。也可以是任何层级的一个模块。下一页 返回上一页5.2 VHDL的程序结构的程序结构u实体说明不但定义设计实体和使用设计实体的环境之间的接口实体说明不但定义设计实体和使用设计实体的环境之间的接口(或端口或端口),还指定作为设计实体一部分的说明语句。实体说明可以由多个设计实还指定作为设计实体一部分的说明语句。实体说明可以由多个设计实体共享体共享,而每一个设计实体可以具有不同的结构体。因此而每一个设计实体可以具有不同的结构体。因此,实体说明可实体说明可以潜在地表示具有相同端口的一类设计实体。以潜在地表示具有相同端口的一类设计实体。uVHDL实体说明的语法格式为实体说明的语法格式为entity实体名实体名isgeneric(类属说明类属说明)一定义端口的大小、一定义端口的大小、I/O引脚的分配引脚的分配一实体中子元件的数目及实体的定时特性一实体中子元件的数目及实体的定时特性port(信号名:模式信号类型;信号名:模式信号类型;信号名信号名:模式信号类型模式信号类型)end实体名实体名;下一页 返回上一页5.2 VHDL的程序结构的程序结构u除了命名实体之外除了命名实体之外,实体说明的目的是定义它的外部接口信号或端口说实体说明的目的是定义它的外部接口信号或端口说明部分的端口。除了关键字明部分的端口。除了关键字entity、is、port和和end外外,一个实体说明有下一个实体说明有下列部分。列部分。u1.实体名称实体名称,是由用户给实体命名的标志符。是由用户给实体命名的标志符。u2.信号名标志符信号名标志符,通常由字母、数字和下划线组成通常由字母、数字和下划线组成,命名标志符要遵循命名标志符要遵循下面的规则下面的规则:(1)第一个字符必须是字母第一个字符必须是字母;(2)字母不区分大小写字母不区分大小写:(3)下划线不能连用下划线不能连用:(4)最后一个字符不能是下划线。最后一个字符不能是下划线。下一页 返回上一页5.2 VHDL的程序结构的程序结构信号名是外部端口信号名是外部端口(或接口或接口)信号的标志符。信号分为信号的标志符。信号分为5种模式种模式,详细说明详细说明信号的方向信号的方向,这这5种模式为种模式为:in输入实体的信号。如时钟输入实体的信号。如时钟(clk)、复位、复位(reset)、使能信号、地址输入、使能信号、地址输入等信号。等信号。out输出实体的信号。如计数输出、寄存器输出、控制其他单元的信号等。输出实体的信号。如计数输出、寄存器输出、控制其他单元的信号等。注意注意:这类信号不能被实体内部的结构体引用这类信号不能被实体内部的结构体引用,只能被其他实体使用。只能被其他实体使用。buffer输出实体的信号输出实体的信号,是可读的是可读的,即可以被实体内部的结构体引用即可以被实体内部的结构体引用,形成内部反馈。形成内部反馈。inout输入或输出实体的信号。这种模式经常用于可编程逻辑器件输入或输出实体的信号。这种模式经常用于可编程逻辑器件PLD中中的三态输入的三态输入/输出引脚输出引脚,如用于设计双向数据总线等。如用于设计双向数据总线等。linkage不指定实体端口的方向不指定实体端口的方向,可以与任意方向的数据或信号相连。可以与任意方向的数据或信号相连。其中,其中,out和和buffer都可以定义输出端口,但它们之间有区别,如都可以定义输出端口,但它们之间有区别,如图图5-5所所示。示。下一页 返回上一页5.2 VHDL的程序结构的程序结构u3.信号的数据类型信号的数据类型,是指内部的预定义数据类型或用户定义的数据类型。是指内部的预定义数据类型或用户定义的数据类型。常用的数据类型有常用的数据类型有bit、bit_vector、boolean、integer、枚举类型等,还、枚举类型等,还有有IEEE.std_logic_1164程序包提供的程序包提供的std_logic、std_logic_vector。使用。使用std_logic_1164程序包提供的数据类型时程序包提供的数据类型时,必须在实体说明之前加上如下必须在实体说明之前加上如下两条语句两条语句:uLibrary IEEE;uUse IEEE.std_logic_1164.all;u一个实体的端口与它们的模式、数据类型是被其他模块调用时能看一个实体的端口与它们的模式、数据类型是被其他模块调用时能看到的全部内容。实体的内部功能或操作在结构体定义中有详细说明。到的全部内容。实体的内部功能或操作在结构体定义中有详细说明。下一页 返回上一页5.2 VHDL的程序结构的程序结构u【例例5-3】一个典型的加法器的实体说明一个典型的加法器的实体说明entity adder2 isport(a:in bit_vector(3 downto 0);b:in bit_vector(3 downto 0);c:in bit;d:out bit_vector(3 downto 0););end adder2;u例例5-3是一个典型加法器的实体说明是一个典型加法器的实体说明,该加法器带有一个控制端口该加法器带有一个控制端口c。其。其电路模块示意图如电路模块示意图如图图5-6所示。所示。下一页 返回上一页5.2 VHDL的程序结构的程序结构u在实体说明中在实体说明中,实体名是实体名是adder2。该加法器有两个输入端口。该加法器有两个输入端口a和和b,一个一个输出端口输出端口s,还有一个控制端口。其中输入端口和输出端口的类型为位向还有一个控制端口。其中输入端口和输出端口的类型为位向量,如量,如bit_vector(3 downto 0),所谓位向量也是一种数据类型,用,所谓位向量也是一种数据类型,用bit_vector()表示,指多个二进制位连在一起,如表示,指多个二进制位连在一起,如10010110、01011010等,即等,即将多个位的操作集成在一起完成。控制端口的类型则是位,用将多个位的操作集成在一起完成。控制端口的类型则是位,用bit表示,表示,位或者为位或者为0,或者为,或者为l。当控制端口为。当控制端口为l时时,对输入端口的两个对输入端口的两个位向量进行加法操作位向量进行加法操作,否则不进行任何操作。否则不进行任何操作。u实体是实体是VHDL描述中的基本单元的抽象。它可以代表整个数字系统、一描述中的基本单元的抽象。它可以代表整个数字系统、一块电路板、一个芯片、一个单元或一个门电路。在例块电路板、一个芯片、一个单元或一个门电路。在例5-3中中,设计实体是设计实体是一个加法器。实体说明以保留字一个加法器。实体说明以保留字entity开始开始,描述的是电路器件等的接口描述的是电路器件等的接口或端口或端口(外貌外貌),不管器件内部如何复杂不管器件内部如何复杂,只把该器件当作一个只把该器件当作一个黑盒黑盒(模模块块)来看待。例来看待。例5-3中只包括端口中只包括端口port,在较复杂的电路中在较复杂的电路中,实体说明中实体说明中还有其他许多的内容还有其他许多的内容,比如说还可以通过类属比如说还可以通过类属generic引入参量等引入参量等.下一页 返回上一页5.2 VHDL的程序结构的程序结构u5.2.2结构体结构体u结构体描述器件的行为或结构结构体描述器件的行为或结构,说明该器件的功能以及如何完成这些功说明该器件的功能以及如何完成这些功能。它指定设计实体、输入和输出之间的关系,并且可以采用行为描述能。它指定设计实体、输入和输出之间的关系,并且可以采用行为描述风格风格(behavior description)、数据流描述风格、数据流描述风格(dataflow description)和结和结构化描述风格构化描述风格(structure description)。结构体一定跟在实体之后。结构体一定跟在实体之后。u结构体定义的语法中的实体名必须与前面实体说明里给出的名称相同。结构体定义的语法中的实体名必须与前面实体说明里给出的名称相同。结构体名是用户给出的标志符,常取决于实体名;如果设计者愿意的话,结构体名是用户给出的标志符,常取决于实体名;如果设计者愿意的话,结构体名可以与实体名相同。需要注意的是,实体名与仿真时的当前工结构体名可以与实体名相同。需要注意的是,实体名与仿真时的当前工程名也必须相同,否则在仿真时会出错。程名也必须相同,否则在仿真时会出错。下一页 返回上一页5.2 VHDL的程序结构的程序结构u结构体的外部接口信号结构体的外部接口信号(端口端口)是从它对应的实体说明的端口声明中承袭是从它对应的实体说明的端口声明中承袭过来的过来的,像其他高级语言一样像其他高级语言一样,结构体也可以包括信号和在本结构体里结构体也可以包括信号和在本结构体里的其他声明。声明可以做成一个独立的的其他声明。声明可以做成一个独立的程序包程序包,为其他多个实体所公为其他多个实体所公用。用。uVHDL结构体定义的语法格式为结构体定义的语法格式为Architecture结构体名结构体名of实体名实体名is类型说明信号说明常量说明函数定义进程定义元件说明类型说明信号说明常量说明函数定义进程定义元件说明begin并行语句并行语句并行语句并行语句end结构体名结构体名;下一页 返回上一页5.2 VHDL的程序结构的程序结构u结结构构体体的的内内容容都都放放在在begin与与end之之间间。结结构构体体由由一一系系列列并并发发语语句句构构成成,其其中中的的并并发发语语句句是是同同时时执执行行的的,这这种种行行为为是是VHDL的的一一个个突突出出特特点点,明明显显的的不不同同于于其其他他计计算算机机软软件件语语言言。VHDL结结构构体体描描述述语语句句主主要要有有5种种不不同同的的并并发发语语句句,分分别别是是块块语语句句、进进程程语语句句、信信号号赋赋值值语语句句、子子程程序序调调用用语语句句和和元元件件例例示示语语句句。不不同同的的并并发发语语句句,以以不不同同的的方方式式使使用用。此此外外,VHDL也也有有顺顺序序语语句句,一一套套顺顺序序语语句句经经打打包包后后作作为为一一个个并并发发语语句句来来使使用用。因因为为在在一一般般的的其其他他软软件件语语言言中中,写写在在程程序序前前面面的的命命令令一一定定会会先先执执行行,但但是是VHDL就就不不同同了了,用用VHDL对对集集成成芯芯片片的的硬硬件件设设计计的的程程序序,在在电电路路板板一一上上电电时时,处处在在begin与与end之之间间的的语语句句并并发发执执行行,一一条条语语句句写写在在begin与与end之间的任何位置其结果都是一样的。之间的任何位置其结果都是一样的。下一页 返回上一页5.2 VHDL的程序结构的程序结构u例例如,以下为如,以下为加法器的结构体定义加法器的结构体定义architecture adder2_arch of adder2 is beginprocess(c)beginif(c=1)thens=a+b;end if;end process;end adder2_arch;下一页 返回上一页5.2 VHDL的程序结构的程序结构u此结构体描述的是当控制端此结构体描述的是当控制端C为为1时时,完成完成a与与b相相加加的功能的功能,否则不否则不进行任何操作。将两个位向量的值相进行任何操作。将两个位向量的值相加,加,输出结果也是位向量。输出结果也是位向量。u结构体也是结构体也是VHDL描述必不可少的部分描述必不可少的部分,描述器件的行为和结构描述器件的行为和结构,或说或说明该器件的功能以及如何完成这些功能。对电路的行为进行描述明该器件的功能以及如何完成这些功能。对电路的行为进行描述,就需就需要使用行为描述风格要使用行为描述风格;需要对电路内信号、数据的流动情形进行描述需要对电路内信号、数据的流动情形进行描述,就要使用数据流描述风格就要使用数据流描述风格;需要对电路的结构进行描述需要对电路的结构进行描述,使用结构化描使用结构化描述风格述风格;有时这有时这3种描述也可能混合使用。种描述也可能混合使用。下一页 返回上一页5.2 VHDL的程序结构的程序结构u5.2.3库和程序包库和程序包u1.库库u库库(library)是经编译后的数据集合是经编译后的数据集合,它存放实体说明、结构体、程序包它存放实体说明、结构体、程序包和配置说明等和配置说明等,包括用于分析、仿真

    注意事项

    本文(第5章 VHDL硬件描述语言.ppt)为本站会员(hyn****60)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开