(精品)第3章VHDL编程基础

上传人:痛*** 文档编号:247354522 上传时间:2024-10-18 格式:PPT 页数:590 大小:2.26MB
返回 下载 相关 举报
(精品)第3章VHDL编程基础_第1页
第1页 / 共590页
(精品)第3章VHDL编程基础_第2页
第2页 / 共590页
(精品)第3章VHDL编程基础_第3页
第3页 / 共590页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第3章,VHDL,编程基础,第3章,VHDL,编程基础,3.1 概述,3.2,VHDL,程序基本结构,3.3,VHDL,语言要素,3.4,VHDL,顺序语句,3.5,VHDL,并行语句,3.6 子程序(,SUBPROGRAM),3.7,库、程序包及其他,3.8,VHDL,描述风格,3.9 基本逻辑电路设计,3.10 状态机的,VHDL,设计,3.1 概 述,3.1.1 常用硬件描述语言简介,常用硬件描述语言有,VHDL、,Verilog,和,ABEL,语言。,VHDL,起源于美国国防部的,VHSIC,,Verilog,起源于集成电路的设计,,ABEL,则来源于可编程逻辑器件的设计。下面从使用方面将三者进行对比。,(1)逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、,RTL,级和门电路级。,VHDL,语言是一种高级描述语言,适用于行为级和,RTL,级的描述,最适于描述电路的行为;,Verilog,语言和,ABEL,语言是一种较低级的描述语言,适用于,RTL,级和门电路级的描述,最适于描述门级电路。,(2)设计要求:,VHDL,进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;,Verilog,和,ABEL,语言进行电子系统设计时需了解电路的结构细节,设计者需做大量的工作。,(3)综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,,VHDL,语言源程序的综合通常要经过行为级,RTL,级门电路级的转化,,VHDL,几乎不能直接控制门电路的生成。而,Verilog,语言和,ABEL,语言源程序的综合过程要稍简单,即经过,RTL,级门电路级的转化,易于控制电路资源。,(4)对综合器的要求:,VHDL,描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高,,Verilog,和,ABEL,对综合器的性能要求较低。,(5)支持的,EDA,工具:支持,VHDL,和,Verilog,的,EDA,工具很多,但支持,ABEL,的综合器仅仅,Dataio,一家。,(6)国际化程度:,VHDL,和,Verilog,已成为,IEEE,标准,而,ABEL,正朝国际化标准努力。,3.1.2,VHDL,的优点,VHDL,的英文全名是,Very-High-Speed Integrated Circuit Hardware Description Language,,诞生于1982年。1987年底,,VHDL,被,IEEE(The Institute of Electrical and Electronics Engineers),和美国国防部确认为标准硬件描述语言。自,IEEE,公布了,VHDL,的标准版本(,IEEE-1076),之后,各,EDA,公司相继推出了自己的,VHDL,设计环境,或宣布自己的设计工具可以和,VHDL,接口。此后,VHDL,在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。1993年,,IEEE,对,VHDL,进行了修订,从更高的抽象层次和系统描述能力上扩展,VHDL,的内容,公布了新版本的,VHDL,,即,IEEE,标准的1076-1993版本。现在,,VHDL,和,Verilog,作为,IEEE,的工业标准硬件描述语言,又得到众多,EDA,公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,,VHDL,与,Verilog,语言将承担起几乎全部的数字系统设计任务。,VHDL,主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,,VHDL,的语言形式和描述风格与句法十分类似于一般的计算机高级语言。,VHDL,的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是,VHDL,系统设计的基本点。应用,VHDL,进行工程设计的优点是多方面的,具体如下:,(1)与其他的硬件描述语言相比,,VHDL,具有更强的行为描述能力。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的,EDA,工具和,VHDL,综合器而言,将基于抽象的行为描述风格的,VHDL,程序综合成为具体的,FPGA,和,CPLD,等目标器件的网表文件已不成问题,只是在综合与优化效率上略有差异。,(2),VHDL,具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断。,(3),VHDL,语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须有多人甚至多个开发组共同并行工作才能实现,,VHDL,中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有利的支持。,(4)用,VHDL,完成一个确定的设计,可以利用,EDA,工具进行逻辑综合和优化,并自动把,VHDL,描述设计转变成门级网表(根据不同的实现芯片)。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。利用,EDA,工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更小、更高速的电路系统。反过来,设计者还可以容易地从综合和优化的电路获得设计信息,返回去更新修改,VHDL,设计描述,使之更加完善。,(5),VHDL,对设计的描述具有相对独立性。设计者可以不懂硬件的结构,也不必管最终设计的目标器件是什么,而进行独立的设计。正因为,VHDL,的硬件描述与具体的工艺技术和硬件结构无关,所以,VHDL,设计程序的硬件实现目标器件有广阔的选择范围,其中包括各种系列的,CPLD、FPGA,及各种门阵列器件。,(6)由于,VHDL,具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。,3.1.3,VHDL,程序设计约定,为了便于程序的阅读和调试,本书对,VHDL,程序设计特作如下约定:,(1)语句结构描述中方括号“”内的内容为可选内容。,(2)对于,VHDL,的编译器和综合器来说,程序文字的大小写是不加区分的。本书一般使用大写。,(3)程序中的注释使用双横线“-”。在,VHDL,程序的任何一行中,双横线“-”后的文字都不参加编译和综合。,(4)为了便于程序的阅读与调试,书写和输入程序时,使用层次缩进格式,同一层次的对齐,低层次的较高层次的缩进两个字符。,(5)考虑到,MAX+,plusII,要求源程序文件的名字与实体名必须一致,因此为了使同一个,VHDL,源程序文件能适应各个,EDA,开发软件上的使用要求,建议各个源程序文件的命名均与其实体名一致。,3.2,VHDL,程序基本结构,3.2.1,VHDL,程序设计举例,1设计思路,全加器可以由两个1位的半加器构成,而1位半加器可以由如图3.1所示的门电路构成。,1位半加器的端口信号,A,和,B,分别是2位相加的二进制输入信号,,SO,是相加和的输出信号,,CO,是进位输出信号,左边的门电路结构构成了右边的半加器,H_ADDER。,在硬件上可以利用半加器构成如图3.2所示的全加器,当然还可以将一组这样的全加器级联起来构成一个串行进位的加法器。图3.2中,全加器,F_ADDER,内部的功能结构是由3个逻辑器件构成的,即由两个半加器,U1、U2,和一个或门,U3,连接而成。,图,3.1 1位半加器逻辑原理图,图3.2 1 位全加器逻辑原理图,2.,VHDL,源程序,1)或门的逻辑描述,-,IEEE,库的使用说明,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,-,实体,OR2,的说明,ENTITY OR2 IS,PORT(A,B:IN STD_LOGIC;,C:OUT STD_LOGIC);,END ENTITY OR2;,-,实体,OR2,的结构体,ART1,的说明,ARCHITECTURE ART1 OF OR2 IS,BEGIN,C=A OR B;,END ARCHITECTURE ART1;,2)半加器的逻辑描述,-,IEEE,库的使用说明,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,-,实体,H_ADDER,的说明,ENTITY H_ADDER IS,PROT(A,B:IN STD_LOGIC;,CO,SO:OUT STD_LOGIC);,END ENTITY H_ADDER;,-,实体,H_ADDER,的结构体,ART2,的说明,ARCHITECTURE ART2 OF H_ADDER IS,BEGIN,SO=(A OR B)AND(A NAND B);,COAIN,B=BIN,CO=D,SO=E);,U2:H_ADDER PORT MAP(A=E,B=CIN,CO=F,SO=SUM);,U3:OR2 PORT MAP(A=D,B=F,C=COUT);,END ARCHITECTURE ART3;,3.说明及分析,(1)整个设计包括三个设计实体,分别为,OR2、H_ADDER,和_,ADDER,,其中实体,F_ADDER,为顶层实体。三个设计实体均包括三个组成部分:库、程序包使用说明,实体说明和结构体说明。这三个设计实体既可以作为一个整体进行编译、综合与存档,也可以各自进行独立编译、独立综合与存档,或被其他的电路系统所调用。,(2)实体,OR2,定义了或门,OR2,的引脚信号,A、B(,输入)和,C(,输出),其对应的结构体,ART1,描述了输入与输出信号间的逻辑关系,即将输入信号,A、B,相或后传给输出信号端,C,,由此实体和结构体描述一个完整的或门元件。,(3)实体,H_ADDER,及对应的结构体,ART2,描述了一个如图3.1所示的半加器。由其结构体的描述可以看到,它是由一个与非门、一个非门、一个或门和一个与门连接而成的,其逻辑关系来自于半加器真值表。在,VHDL,中,逻辑算符,NAND、NOT、OR,和,AND,分别代表“与非”、“非”、“或”和“与”4种逻辑运算关系。,(4)在全加器接口逻辑,VHDL,描述中,根据图3.2右侧的1位二进制全加器,F_ADDER,的原理图,实体,F_ADDER,定义了引脚的端口信号属性和数据类型。其中,,AIN,和,BIN,分别为两个输入的相加位,,CIN,为低位进位输入,,COUT,为进位输出,,SUM,为1位和输出。其对应的结构体,ART3,的功能是利用,COMPONENT,声明语句和,COMPONENT,例化语句将上面由两个实体,OR2,和,H_ADDER,描述的独立器件,按照图3.2全加器内部逻辑原理图中的接线方式连接起来。,(5)在结构体,ART3,中,,COMPONENTEND COMPONENT,语句结构对所要调用的或门和半加器两元件作了声明(,COMPONENT DECLARATION),,并由,SIGNAL,语句定义了三个信号,D、E,和,F,,作为中间信号转存点,以利于几个器件间的信号连接。接下去的“,PORT MAP()”,语句称为元件例化语句(,COMPONENT INSTANTIATION)。,所谓例化,在电路板上,相当于往上装配元器件;在逻辑原理图上,相当于从元件库中取了一个元件符号放在电路原理图上,并对此符号的各引脚进行连线。例化也可理解为元件映射或元件连接,,MAP,是映射的意思。例如,语句“,U2:H_ADDER PORT MAP(A=E,B
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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