电子科技大学EDA技术课件 3_1PPT课件下载推荐.pptx
《电子科技大学EDA技术课件 3_1PPT课件下载推荐.pptx》由会员分享,可在线阅读,更多相关《电子科技大学EDA技术课件 3_1PPT课件下载推荐.pptx(118页珍藏版)》请在冰豆网上搜索。
VHDL具有丰富的仿真语句和库函数,可进行早期行为仿真,利于大系统的设计与验证。
VHDL设计与硬件电路关系不大。
VHDL设计不依赖于器件,与工艺无关。
移植性好。
VHDL体系符合TOP-DOWN和CE(并行工程)设计思想。
VHDL设计效率高,产品上市时间快,成本低。
易于ASIC实现。
9,3.1.5VHDL与其它硬件描述语言的比较,行为级RTL级门电路级RTL:
RegisterTranslateLevelVHDL:
系统级抽象描述能力强,适合行为级和RTL级的描述。
涉及电路细节少,工作量少,效率高。
IEEE标准,支持广泛。
对综合器要求高,不易控制底层电路的生成。
10,VerilogHDL:
系统级抽象描述能力比VHDL稍差;
门级开关电路描述方面比VHDL强。
适合RTL级和门电路级的描述。
需了解电路细节,工作量较多。
ABEL、PALASM、AHDL(AlteraHDL):
系统级抽象描述能力差,一般作门级电路,描述。
要求对电路细节有详细的了解。
工作量大。
对综合器要求低,易于控制电路资源。
支持少。
11,VHDL,12,VerilogHDL,3.1.6VHDL设计简述,13,VHDL主要用于描述数字系统的结构、行为、功能和接口。
VHDL将一个设计(元件、电路、系统)分为:
外部(可视部分、端口)内部(不可视部分、内部功能、算法),外部与内部:
ports,ports,CombinationalProcess,SequentialProcess,component,14,器件或子系统ENTITYARCHITECTUREProcessProcess,2选1选择器的VHDL描述:
15,VHDL语言的一些基本特点:
nVHDL语言由保留关键字组成;
n一般,VHDL语言对字母大小写不敏感;
例外:
、“”所括的字符、字符串;
n每条VHDL语句由一个分号(;
)结束;
nVHDL语言对空格不敏感,增加可读性;
n在“-”之后的是VHDL的注释语句;
nVHDL有以下描述风格:
行为描述;
数据流(寄存器传输RTL)描述;
结构化描述;
16,基本结构包括:
实体(Entity)结构体(Architecture)配置(Configuration)库(Library)、程序包(Package),17,3.2VHDL程序基本结构,库、程序包实体(Entity)结构体(Architecture)进程或其它并行结构,配置(Configuration),18,3.2.1实体(说明),实体(说明):
定义系统的输入输出端口语法:
ENTITYISGenericDeclarationsPortDeclarationsEND;
(1076-1987version)ENDENTITY;
(1076-1993version),19,1、类属说明类属说明:
确定实体或组件中定义的局部常数。
必须放在端口说明之前。
Generic(常数名称:
类型:
=缺省值常数名称:
=缺省值);
20,类属常用于定义:
实体端口的大小、设计实体的物理特性、总线宽度、元件例化的数量等。
例:
entitymckisgeneric(width:
integer:
=16);
port(add_bus:
outstd_logic_vector(width-1downto0);
21,例:
2输入与门的实体描述entityand2isgeneric(risewidth:
time:
=1ns;
fallwidth:
=1ns);
port(a1:
instd_logic;
a0:
z0:
outstd_loigc);
endentityand2;
注:
time:
用于仿真可综合的类属值:
整数,22,2、端口声明端口声明:
确定输入输出端口的数目和类型。
其中,端口模式:
in输入型,此端口为只读型。
out输出型,此端口只能在实体内部对其赋值。
inout输入输出型,既可读也可赋值。
buffer缓冲型,与out相似,但可读。
Port(,23,数据类型;
数据类型,端口名称,端口名称:
端口模式端口名称,端口名称:
端口模式);
out和buffer的区别:
24,In1,25,In2,In3,Out1,Out2,Out3,Out4,数据类型:
指端口上流动的数据的表达格式。
为预先定义好的数据类型。
如:
bit、bit_vector、integer、real、std_logic、std_logic_vector等。
entitynand2isport(a,b:
inbit;
26,:
outbit,z);
endnand2;
3.2.2结构体,27,作用:
定义系统(或模块)的行为、元件及内部的连接关系,即描述其逻辑功能。
两个组成部分:
说明部分逻辑功能描述部分,结构体,结构体说明,结构体功能描述,常数说明,数据类型说明,信号说明,例化元件说明,子程序说明,块语句进程语句,信号赋值语句,子程序调用语句,元件例化语句,28,实体与结构体的关系:
设计实体,结构体3。
结构体n,一个设计实体可有多个结构体,代表实体的多种实现方式。
各个结构体的地位相同。
结构体1结构体2,29,结构体的语法:
architecture结构体名称of实体名称is说明语句内部信号、常数、数据类型、子程序(函数、过程)、元件等的说明;
begin并行处理(功能描述)语句;
endarchitecture结构体名称;
同一实体的结构体不能同名。
定义语句中的常数、信号不能与实体中的端口同名。
30,例:
结构体中错误的信号声明,31,例:
一个完整描述(3bit计数器),32,3bit计数器的等效描述(out与buffer的区别):
33,3.2.3配置,设计实体,结构体1结构体2结构体3,。
结构体n,一个设计实体的多种实现方式,34,配置:
从某个实体的多种结构体描述方式中选择特定的一个。
简单配置的语法:
configuration配置名of实体名isfor选配结构体名endfor;
end配置名;
一个与非门不同实现方式的配置如下:
35,libraryieee;
useieee.std_logic_1164.all;
entitynandisport(a:
b:
c:
outstd_logic);
endentitynand;
architectureart1ofnandisbeginc=not(aandb);
endarchitectureart1;
36,architectureart2ofnandisbegin,c=1when(a=0)and(b=0)else1when(a=0)and(b=1)else1when(a=1)and(b=0)else0when(a=1)and(b=1)else0;
37,configurationfirstofnandisforart1;
endfor;
endfirst;
configurationsecondofnandisforart2endfor;
endsecond;
38,例:
一个对计数器实现多种形式的配置如下:
39,40,41,程序包:
已定义的常数、数据类型、元件调用说明、子程序的一个集合。
目的:
方便公共信息、资源的访问和共享。
库:
多个程序包构成库。
42,3.2.4程序包、库,程序包说明的内容:
常量说明;
VHDL数据类型说明;
元件说明;
子程序说明;
程序包的结构包括:
程序包说明(包首)程序包主体(包体),43,1、程序包说明(包首)语法:
package程序包名is包说明项end程序包名;
包说明项:
use语句(用来包括其它程序包);
类型说明;
子类型说明;
信号说明;
元件说明。
44,例:
程序包说明,45,2、程序包包体,use语句;
子程序主体;
程序包的内容:
子程序的实现算法。
包体语法:
packagebody程序包名is,46,end包体说明项:
包体说明项程序包名;
程序包首与程序包体的关系:
程序包体仅用于子程序的描述。
程序包首可以独立定义和使用。
47,例:
packagesevenissubtypesegmentsisbit_vector(0to6);
typebcdisrange0to9;
endseven;
librarywork;
usework.seven.all;
entitydecoderisport(input:
inbcd;
drive:
outsegments);
enddecoder;
architectureartofdecoderisbegin,48,withinputselectdrive=B“1111110”when0,B“0110000”when1,B“1101101”when2,B“1111001”when3,B“0110011”when4,B“1011011”when5,B“1011111”when6,B“1110000”when7,B“1111111”when8,B“1111011”when9,B“0000000”whenothers;
endarchitectureart;
a,b,c,d,e,f,g,49,3、库的种类,VHDL库可分为5种:
IEEE库定义了四个常用的程序包:
std_logic_1164(std_logictypes&
relatedfunctions)std_logic_arith(arithmeticfunctions)std_logic_signed(signedarithmeticfunctions)std_logic_unsigned(unsignedarithmeticfunctions),50,TypeSTD_ULOGIC、STD_LOGIC:
9logicvaluesystem(U,X,0,1,Z,W,L,H,-)U:
未初始化的,X:
强未知的,,0:
强0,Z:
高阻态,,1:
强1,W:
弱未知,的,,L:
弱0,,H:
弱1,,51,STD库(默认库)库中程序包为