最新EDA技术 第3章 VHDL编程基础(共591张PPT课件).pptx
《最新EDA技术 第3章 VHDL编程基础(共591张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新EDA技术 第3章 VHDL编程基础(共591张PPT课件).pptx(591页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 VHDL编程基础 第3章 VHDL编程基础(jch) 3.1 概述概述 3.2 VHDL程序基本结构程序基本结构 3.3 VHDL语言要素语言要素 3.4 VHDL顺序语句顺序语句 3.5 VHDL并行语句并行语句 3.6 子程序子程序(SUBPROGRAM) 3.7 库、程序包及其他库、程序包及其他 3.8 VHDL描述描述(mio sh)风格风格 3.9 基本逻辑电路设计基本逻辑电路设计 3.10 状态机的状态机的VHDL设计设计 第一页,共五百九十一页。第3章 VHDL编程基础 3.1 概概 述述 3.1.1 常用硬件描述语言简介常用硬件描述语言简介 常用硬件描述语言有VHDL、
2、Verilog和ABEL语言。VHDL起源于美国国防部的VHSIC,Verilog起源于集成电路的设计,ABEL则来源于可编程逻辑器件的设计。下面从使用(shyng)方面将三者进行对比。 (1) 逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、RTL级和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。 第二页,共五百九十一页。第3章 VHDL编程基础 (2) 设计要求:VHDL进行电子系统设计时可
3、以不了解(lioji)电路的结构细节,设计者所做的工作较少;Verilog和ABEL语言进行电子系统设计时需了解(lioji)电路的结构细节,设计者需做大量的工作。 (3) 综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,VHDL语言源程序的综合通常要经过行为级RTL级门电路级的转化,VHDL几乎不能直接控制门电路的生成。而Verilog语言和ABEL语言源程序的综合过程要稍简单,即经过RTL级门电路级的转化,易于控制电路资源。 第三页,共五百九十一页。第3章 VHDL编程基础 (4) 对综合器的要求:VHDL描述语言层次较高,不易控制底层电路,因而对综合
4、器的性能要求较高,Verilog和ABEL对综合器的性能要求较低。 (5) 支持的EDA工具(gngj):支持VHDL和Verilog的EDA工具(gngj)很多,但支持ABEL的综合器仅仅Dataio一家。 (6) 国际化程度:VHDL和Verilog已成为IEEE标准,而ABEL正朝国际化标准努力。 第四页,共五百九十一页。第3章 VHDL编程基础 3.1.2 VHDL的优点的优点 VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底, VHDL被IEEE ( T
5、he Institute of Electrical and Electronics Engineers)和美国国防部确认为标准(biozhn)硬件描述语言。自IEEE公布了VHDL的标准(biozhn)版本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准(biozhn)硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准(biozhn)的1076-1993版本。现在,
6、VHDL和Verilog作为IEEE的工业标准(biozhn)硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承担起几乎全部的数字系统设计任务。 第五页,共五百九十一页。第3章 VHDL编程基础 VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级(goj)语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(或称可视部分,即端口)和内部(或称不可
7、视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的,具体如下: 第六页,共五百九十一页。第3章 VHDL编程基础 (1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的EDA工具和VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件已不成问题,
8、只是在综合与优化效率上略有差异。 (2) VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟(mn),使设计者对整个工程的结构和功能可行性做出判断。 第七页,共五百九十一页。第3章 VHDL编程基础 (3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须有多人甚至多个(du )开发组共同并行工作才能实现,VHDL中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有利的支持。 第八页,共五百九十一页。第3章 VHDL
9、编程基础 (4) 用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表(根据不同的实现芯片(xn pin)。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。利用EDA工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更小、更高速的电路系统。反过来,设计者还可以容易地从综合和优化的电路获得设计信息,返回去更新修改VHDL设计描述,使之更加完善。 第九页,共五百九十一页。第3章 VHDL编程基础 (5) VHDL对设计的描述具有相对独立性。设计者可以不懂硬件的结构,也不必管最终设计的目标器件是什么
10、,而进行独立的设计。正因为VHDL的硬件描述与具体的工艺技术和硬件结构无关,所以VHDL设计程序的硬件实现目标器件有广阔(gungku)的选择范围,其中包括各种系列的CPLD、FPGA及各种门阵列器件。 (6) 由于VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。 第十页,共五百九十一页。第3章 VHDL编程基础 3.1.3 VHDL程序设计约定程序设计约定 为了便于程序的阅读和调试,本书对VHDL程序设计特作如下约定: (1) 语句结构(jigu)描述中方括号“ ”内的内容为可选内容。 (2) 对于V
11、HDL的编译器和综合器来说,程序文字的大小写是不加区分的。本书一般使用大写。 (3) 程序中的注释使用双横线“-”。在VHDL程序的任何一行中,双横线“-”后的文字都不参加编译和综合。 第十一页,共五百九十一页。第3章 VHDL编程基础 (4) 为了便于程序的阅读与调试,书写和输入程序时,使用层次缩进格式,同一层次的对齐(du q),低层次的较高层次的缩进两个字符。 (5) 考虑到MAX+plusII要求源程序文件的名字与实体名必须一致,因此为了使同一个VHDL源程序文件能适应各个EDA开发软件上的使用要求,建议各个源程序文件的命名均与其实体名一致。 第十二页,共五百九十一页。第3章 VHDL
12、编程基础 3.2 VHDL程序基本程序基本(jbn)结构结构 3.2.1 VHDL程序设计举例程序设计举例 1设计思路设计思路 全加器可以由两个1位的半加器构成,而1位半加器可以由如图3.1所示的门电路构成。 1位半加器的端口信号A 和B分别是2位相加的二进制输入信号,SO是相加和的输出信号,CO是进位输出信号,左边的门电路结构构成了右边的半加器H_ADDER。在硬件上可以利用半加器构成如图3.2所示的全加器,当然还可以将一组这样的全加器级联起来构成一个串行进位的加法器。图3.2中,全加器 F_ADDER内部的功能(gngnng)结构是由3个逻辑器件构成的,即由两个半加器U1、U2和一个或门U
13、3连接而成。 第十三页,共五百九十一页。第3章 VHDL编程基础 图3.1 1位半加器逻辑(lu j)原理图ABCOSOH_ADDERABCOSO第十四页,共五百九十一页。第3章 VHDL编程基础 图3.2 1 位全加器逻辑(lu j)原理图 ABCOSOH_ADDERU1AINBINCINS2ABCOSOH_ADDERU2S1S3ABCU3OR2COUTSUMF_ADDERAINBINCINCOUTSUM第十五页,共五百九十一页。第3章 VHDL编程基础 2. VHDL源程序源程序1) 或门的逻辑描述(mio sh)- IEEE库的使用说明 LIBRARY IEEE; USE IEEE.ST
14、D_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; 第十六页,共五百九十一页。第3章 VHDL编程基础 2) 半加器的逻辑描述(mio sh)- IEEE库的使用说明 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;-实体H_ADDER的说明 ENTI
15、TY H_ADDER IS PROT(A,B:IN STD_LOGIC; CO,SO:OUT STD_LOGIC); 第十七页,共五百九十一页。第3章 VHDL编程基础 END ENTITY H_ADDER;- 实体H_ADDER的结构(jigu)体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);
16、END ARCHITECTURE ART3; 第二十页,共五百九十一页。第3章 VHDL编程基础 3. 说明及分析说明及分析 (1) 整个设计包括三个设计实体,分别为OR2、H_ADDER和_ADDER,其中实体F_ADDER为顶层实体。三个设计实体均包括三个组成部分:库、程序包使用说明,实体说明和结构体说明。这三个设计实体既可以作为(zuwi)一个整体进行编译、综合与存档,也可以各自进行独立编译、独立综合与存档,或被其他的电路系统所调用。 第二十一页,共五百九十一页。第3章 VHDL编程基础 (2) 实体 OR2定义了或门OR2的引脚信号A、B(输入)和C(输出),其对应的结构体ART1描述
17、了输入与输出信号间的逻辑关系,即将输入信号A、B相或后传给输出信号端C,由此实体和结构体描述一个完整(wnzhng)的或门元件。 (3) 实体H_ADDER及对应的结构体ART2描述了一个如图3.1所示的半加器。由其结构体的描述可以看到,它是由一个与非门、一个非门、一个或门和一个与门连接而成的,其逻辑关系来自于半加器真值表。在VHDL中,逻辑算符NAND、NOT、OR和AND分别代表“与非”、“非”、“或”和“与”4种逻辑运算关系。 第二十二页,共五百九十一页。第3章 VHDL编程基础 (4) 在全加器接口逻辑VHDL描述(mio sh)中,根据图3.2右侧的1位二进制全加器F_ADDER的原
18、理图,实体F_ADDER定义了引脚的端口信号属性和数据类型。其中,AIN和BIN分别为两个输入的相加位,CIN为低位进位输入,COUT 为进位输出,SUM为1位和输出。其对应的结构体ART3的功能是利用COMPONENT声明语句和COMPONENT例化语句将上面由两个实体OR2和H_ADDER描述(mio sh)的独立器件,按照图3.2全加器内部逻辑原理图中的接线方式连接起来。 第二十三页,共五百九十一页。第3章 VHDL编程基础 (5) 在结构体ART3中,COMPONENTEND COMPONENT 语句结构对所要调用的或门和半加器两元件作了声明(COMPONENT DECLARATION
19、),并由SIGNAL语句定义了三个信号(xnho)D、E和F,作为中间信号(xnho)转存点,以利于几个器件间的信号(xnho)连接。接下去的“PORT MAP( )”语句称为元件例化语句(COMPONENT INSTANTIATION)。所谓例化,在电路板上,相当于往上装配元器件;在逻辑原理图上,相当于从元件库中取了一个元件符号放在电路原理图上,并对此符号的各引脚进行连线。例化也可理解为元件映射或元件连接,MAP是映射的意思。例如,语句“U2:H_ADDER PORT MAP(A=E,B=CIN,CO=F,SO=SUM)”表示将实体H_ADDER描述的元件U2的引脚信号(xnho)A、B、C
20、O和SO分别连向外部信号(xnho)E、CIN、F和SUM。符号“=”表示信号(xnho)连接。 第二十四页,共五百九十一页。第3章 VHDL编程基础 (6) 实体F_ADDER引导的逻辑描述也是由三个主要部分构成的,即库、实体和结构体。从表面上看来,库的部分仅包含一个IEEE标准(biozhn)库和打开的IEEE.STD_LOGIC_1164.ALL程序包。但实际上,从结构体的描述中可以看出,其对外部的逻辑有调用的操作,这类似于对库或程序包中的内容作了调用。因此,库结构部分还应将上面的或门和半加器的VHDL描述包括进去,作为工作库中的两个待调用的元件。由此可见,库结构也是VHDL程序的重要组
21、成部分。 第二十五页,共五百九十一页。第3章 VHDL编程基础 3.2.2 VHDL程序的基本结构程序的基本结构 从前面的设计实例可以看出,一个相对完整的VHDL程序(或称为设计实体)具有如图3.3所示的比较固定的结构。至少应包括三个基本组成部分:库、程序包使用说明,实体说明和实体对应的结构体说明。其中,库、程序包使用说明用于打开(调用)本设计实体将要用到的库、程序包;实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。在一个实体中,可以含有一个或一个以上的结构体,而在每一个结构体中又可以含有一个或多个进程以及(yj)其他的
22、语句。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。 第二十六页,共五百九十一页。第3章 VHDL编程基础 如何才算一个完整的VHDL程序(设计实体),并没有完全一致的结论,因为不同(b tn)的程序设计目的可以有不同(b tn)的程序结构。通常认为,一个完整的设计实体的最低要求应该能为VHDL综合器所接受,并能作为一个独立设计单元,即以元件的形式存在的VHDL程序。这里所谓的元件,既可以被高层次的系统所调用,成为该系统的一部分,也可以作为一个电路功能块而独立存在和独立运行。 第二十七页,共五百九十一页。第3
23、章 VHDL编程基础 图3.3 VHDL程序设计(chn x sh j)基本结构 库、程序包使用说明配置(CONFIGURATION)结构体(ARCHITECTURE)实体(ENTITY)PORT端口说明结构体说明GENERIC类属说明体实计设结构体功能描述第二十八页,共五百九十一页。第3章 VHDL编程基础 3.2.3 实体实体(ENTITY) 实体是一个设计实体的表层设计单元,其功能是对这个设计实体与外部电路进行接口描述。它规定了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信(tng xn)界面。 1实体语句结构实体语句结构实体说明单元的常用语句结构如下: ENTITY
24、 实体名 IS GENERIC(类属表); PORT(端口表); END ENTITY 实体名; 第二十九页,共五百九十一页。第3章 VHDL编程基础 实体说明单元必须以语句“ENTITY 实体名IS”开始,以语句“END ENTITY 实体名;”结束,其中的实体名是设计者自己给设计实体的命名,可作为其他设计实体对该设计实体进行(jnxng)调用时用。中间在方括号内的语句描述,在特定的情况下并非是必须的。例如构建一个VHDL仿真测试基准等情况中可以省去方括号中的语句。 第三十页,共五百九十一页。第3章 VHDL编程基础 2类属类属(GENERIC)说明语句说明语句 类属(GENERIC)参量是
25、一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。类属为所说明的环境提供了一种静态信息通道,类属的值可以由设计实体外部提供。因此,设计者可以从外面通过(tnggu)类属参量的重新设定而容易地改变一个设计实体或一个元件的内部电路结构和规模。 第三十一页,共五百九十一页。第3章 VHDL编程基础 类属说明的一般书写格式如下: GENERIC(常数名;数据类型:设定值 ;常数名:数据类型:设定值 ); 类属参量以关键词GENERIC引导一个类属参量表,在表中提供时间参数或总线宽度等静态信息。类属表说明用于确定设计实体和其外部环境通信的参数,传递静态的信息。类属说明在所定义的环境中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新EDA技术 第3章 VHDL编程基础共591张PPT课件 最新 EDA 技术 VHDL 编程 基础 591 PPT 课件
限制150内