EDA技术基础知识课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《EDA技术基础知识课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 基础知识 课件
- 资源描述:
-
1、一、一、VHDLVHDL的主要构件的主要构件VHDL 语言参数部分参数部分程序包程序包接口部分接口部分设计实体设计实体描述部分描述部分结构体结构体VHDL语言基础语言基础 EDA技术的基础知识技术的基础知识Exampleentity and_2 is port (a, b: in std_logic; Y : out std_logic); end and_2;The Entity describesthe inputs and outputsarchitecture dataflow of and_2 isbegin Y=a and b;end dataflow;The Architectu
2、re describes the boxentity nameVHDL 大小写不敏感Library IEEE;use IEEE.std_logic_1164.all;LibraryPackageAND_2abY1.实体(实体(Entity)n描述此设计功能输入输出端口(描述此设计功能输入输出端口(Port)n在层次化设计时,在层次化设计时,Port为模块之间的接口为模块之间的接口n在芯片级,则代表具体芯片的管脚在芯片级,则代表具体芯片的管脚A3.0B3.0equalEntity eqcomp4 isport(a, b: in std_logic_vector(3 downto 0); equa
3、l:out std_logic );end eqcomp4;端口的模式端口的模式n输入(输入(Input)n输出(输出(Output)n双向(双向(Inout):可代替所有其他模式,):可代替所有其他模式,但降低了程序的可读性,一般用于与但降低了程序的可读性,一般用于与CPU的数据总线接口的数据总线接口n缓冲(缓冲(Buffer):与):与Output类似,但允类似,但允许该管脚名作为一些逻辑的输入信号,许该管脚名作为一些逻辑的输入信号,可以返回到实体内部。可以返回到实体内部。 端口说明端口说明PORT ( 端口名端口名,端口名端口名 : 方向方向 数据类型数据类型;:端口名端口名,端口名端口
4、名 : 方向方向 数据类型数据类型 );端口方向端口方向 实实体体INOUTINOUTBUFFERLINKAGE2.结构体(结构体(Architecture)n描述实体硬件的互连关系、数据的传输描述实体硬件的互连关系、数据的传输和变换以及动态行为。和变换以及动态行为。n语法结构:语法结构: ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 结构体说明语句结构体说明语句 BEGIN 功能描述语句功能描述语句 END 结构体名结构体名 n结构体有三种描述方式结构体有三种描述方式n行为描述行为描述(behavioral)n数据流描述数据流描述(dataflow)n结构化描述结构化
5、描述(structural)行为描述行为描述Architecture behavioral of eqcomp4 is begincomp: process (a,b) beginif a=b then equal = 1; else equal =0;end if; end process comp;end behavioral ;高层次的功能描述,高层次的功能描述,不必考虑在电路中不必考虑在电路中到底是怎样实现的。到底是怎样实现的。数据流描述数据流描述描述输入信号经过怎样的变换得到输出信号描述输入信号经过怎样的变换得到输出信号Architecture dataflow1 of eqcomp
6、4 is begin equal = 1 when a=b else 0;end dataflow1;Architecture dataflow2 of eqcomp4 is beginequal = not(a(0) xor b(0) and not(a(1) xor b(1) and not(a(2) xor b(2) and not(a(3) xor b(3);end dataflow2;当当a和和b的宽度发生的宽度发生变化时,需要修改变化时,需要修改设计,当宽度过大设计,当宽度过大时,设计非常繁琐时,设计非常繁琐结构描述结构描述architecture struct of eqcomp
7、4 isbegin U0:xnor2 port map(a(0),b(0),x(0); U1:xnor2 port map(a(1),b(1),x(1); U2:xnor2 port map(a(2),b(2),x(2); U3:xnor2 port map(a(3),b(3),x(3); U4:and4 port map(x(0),x(1),x(2),x(3),equal);end struct;类似于电路的网络表,将各个器类似于电路的网络表,将各个器件通过语言的形式进行连接,与件通过语言的形式进行连接,与电路有一一对应的关系。电路有一一对应的关系。一般用于大规模电路的层次化设一般用于大规模
8、电路的层次化设计时。计时。三种描述方式的比较三种描述方式的比较描述方式描述方式优点优点缺点缺点适用场合适用场合结构化描结构化描述述连接关系清连接关系清晰,电路模晰,电路模块化清晰块化清晰电路不易理解、电路不易理解、繁琐、复杂繁琐、复杂电路层次化设电路层次化设计计数据流描数据流描述述布尔函数定布尔函数定义明白义明白不易描述复杂不易描述复杂电路,修改不电路,修改不易易小门数设计小门数设计行为描述行为描述电路特性清电路特性清楚明了楚明了进行综合效率进行综合效率相对较低相对较低大型复杂的电大型复杂的电路模块设计路模块设计3. 库、程序包和配置库、程序包和配置 设设计计库库IEEE库库预定义库预定义库(
9、 (隐含打开隐含打开) )STD库库STANDARD(隐含说明隐含说明)TEXTIO(用用USE说明说明)WORK库库资资 源源 库库(用用LIBRARY)其它库其它库STD_LOGIC_1164STD_LOGIC_ARITHSTD_LOGIC_UNSIGNEDNUMERIC_STDNUMERIC_BITMATH_REALMATH_COMPLEXVITAL_TIMINGVITAL_PRIMITIVE(1)库、程序包库、程序包程序包放在库中,使用时用程序包放在库中,使用时用USE语句说明语句说明库、程序包说明语句:库、程序包说明语句:Library 库名库名;use 库名库名.程序包名程序包名.
10、项目名项目名;(2)配置配置 一个实体可以有多个结构体描述,但是在进一个实体可以有多个结构体描述,但是在进行仿真和综合时,只能一个实体对应一个确定的行仿真和综合时,只能一个实体对应一个确定的结构体。配置语句用来确定结构体。结构体。配置语句用来确定结构体。语句格式:语句格式:CONFIGURATION 配置名配置名 OF 实体名实体名ISFOR 被选结构体名被选结构体名END FOR ;END 配置名;配置名;ENTITY描述電路的描述電路的I/O介面介面PackageARCHITECTURE描述電路的特性和運作描述電路的特性和運作StructuralData FlowBehavioral不同的
11、描述風格不同的描述風格二、二、VHDLVHDL的数据对象和数据类型的数据对象和数据类型1.VHDL的数据对象的数据对象 类似于一种容器,接受不同数据类似于一种容器,接受不同数据类型的赋值类型的赋值 -常数常数 信号信号 变量变量数据对象数据对象常数(常数(Constant)n 固定值,不能在程序中被改变固定值,不能在程序中被改变n增强程序的可读性,便于修改程序增强程序的可读性,便于修改程序n在综合后,连接到电源和地在综合后,连接到电源和地n可在可在Library、Entity、Architecture、Process中进行定义,其有效范围也相应中进行定义,其有效范围也相应限定限定n常数说明:常
12、数说明:Constant 常数名:常数名: 数据类数据类型型:=表达式表达式Constant data_bus_width: integer := 8;Constant ROM_Size: Integer := 16#FFFF#;数据对象数据对象变量(变量(Variable)n临时数据,没有物理意义临时数据,没有物理意义n只能在只能在Process和和Function中定义,中定义,并只在其并只在其内部有效内部有效n要使其全局有效,先转换为要使其全局有效,先转换为Signal。n用用 进行赋值进行赋值n变量说明:变量说明: 变量名:变量名: 数据类型数据类型变量赋值变量赋值赋值标志赋值标志数据
13、对象数据对象信号(信号(Signals)n 代表连线,代表连线,Port也是一种信号也是一种信号n在在Entity中和中和Architecture中定义中定义n用用 = 进行赋值进行赋值n信号说明:信号说明: signal 信号名:信号名: 数据类型数据类型;signal count:bit_vector(3 downto 0):=“0011”; nsignal Enable: Bit;nsignal CLK, CLEAR: Bit:=1;信号举例信号举例nLIBRARY ieee;nUSE ieee.std_logic_1164.all;nENTITY simp ISnPORT (a, b,
14、 c, d : IN Std_Logic;ng : OUT Std_Logic);nEND simp;nARCHITECTURE logic OF simp ISnSIGNAL e,f : Std_Logic;nBEGINne = a or b;nf=not(c or d);ng =e and f;nEND logic;信号赋值信号赋值信号和变量的作用范围信号和变量的作用范围信号和变量的区别信号和变量的区别2. VHDL的数据类型的数据类型(1) 标准数据类型标准数据类型(编程者可直接使用编程者可直接使用) 预定义类型在预定义类型在VHDL标准程序包标准程序包STANDARD中定义,在应用中自
15、动包含进中定义,在应用中自动包含进VHDL的源文件,的源文件,不需要不需要USE语句显示调用语句显示调用。数据类型如下:数据类型如下: 1)整数()整数(INTEGER)在在VHDL语言中,整数的表示范围为语言中,整数的表示范围为21474836472147483647,即从,即从(2311)到到(2311)。2)实数()实数(REAL)实数的定义值范围为实数的定义值范围为1.0E+381.0E+38。实数有正负数,书写时一定要有小数点。例实数有正负数,书写时一定要有小数点。例如:如:1.0,+2.5,1.0E+383)位位(BIT)用来表示数字系统中的信号值。位值用字符用来表示数字系统中的信
16、号值。位值用字符0或者或者1(将值放在引号中)表示。与整数中的(将值放在引号中)表示。与整数中的1和和0不同,不同,1和和0仅仅表示一个位的两种取值。仅仅表示一个位的两种取值。4)位矢量位矢量(BIT_VECTOR)位矢量是用双引号括起来的一组数据。例如:位矢量是用双引号括起来的一组数据。例如:“001100”,X“00bb”。在这里位矢量前面的。在这里位矢量前面的X表示是十六进制表示是十六进制。使用位使用位矢量时必须注明位宽,矢量时必须注明位宽,即数组中元素个数和排列,例如:即数组中元素个数和排列,例如:SIGNAL s1:BIT_VECTOR(15 DOWNTO 0);); 5)布尔量布尔
17、量(BOOLEAN)一个布尔量具有两种状态,一个布尔量具有两种状态,“真真”或者或者“假假”。没有数值的含没有数值的含义,也义,也不能进行算术运算不能进行算术运算。它。它能进行关系运算能进行关系运算。例如,它可以。例如,它可以在在if语句中被测试,测试结果产生一个布尔量语句中被测试,测试结果产生一个布尔量TRUE或者或者FALSE。 6)字符字符(CHARACTER)用用单引号单引号括起来,括起来,如如a。区分大小写。字符包括从。区分大小写。字符包括从a到到z中的中的任一个字母,从任一个字母,从0到到9中的任一个数以及空格或者特殊字符,如中的任一个数以及空格或者特殊字符,如$,%等等。包集合等
18、等。包集合standard中给出了预定义的中给出了预定义的128个个ASC码字符。码字符。7)字符串字符串(STRING)由双引号括起来的一个字符序列,也称字符矢量或字符串组。由双引号括起来的一个字符序列,也称字符矢量或字符串组。字符串常用于程序的提示和说明。字符串举例如下:字符串常用于程序的提示和说明。字符串举例如下:VATIABLE string_1 : STRING (0TO 3);string_1:= “a b c d”;8)时间时间(TIME)是一个物理量数据。包含整数和单位两部分,而且整数和单位是一个物理量数据。包含整数和单位两部分,而且整数和单位之间至少应留一个空格的位置。例如之
19、间至少应留一个空格的位置。例如55 sec,2 min等。在包集等。在包集合合STANDARD中给出了时间的预定义,其单位为中给出了时间的预定义,其单位为fs,ps,ns,s,ms,sec,min和和hr。例如:。例如:20 s,100 ns,3 sec。在系统仿真时,时间数据特别有用,用它可以表示信号延时,在系统仿真时,时间数据特别有用,用它可以表示信号延时,从而使模型系统能更逼近实际系统的运行环境。从而使模型系统能更逼近实际系统的运行环境。9)错误等级错误等级(SEVERITY LEVEL)用来表征系统的状态,共有用来表征系统的状态,共有4种:种:note(注意),(注意),warning
20、(警告),(警告),error(出错),(出错),failure(失败)。在系统仿真过(失败)。在系统仿真过程中可以用这程中可以用这4种状态来提示系统当前的工作情况,从而使设种状态来提示系统当前的工作情况,从而使设计人员随时了解当前系统工作的情况,并根据系统的不同状计人员随时了解当前系统工作的情况,并根据系统的不同状态采取相应的对策。态采取相应的对策。1 0 ) 大 于 等 于 零 的 整 数 ( 自 然 数 )大 于 等 于 零 的 整 数 ( 自 然 数 )(NATURAL),),正整数正整数(POSITIVE)这两种数据是整数的子类,这两种数据是整数的子类,NATURAL类数据为取类数据
21、为取0和和0以上以上的正整数;而的正整数;而POSITIVE 则只能为正整数。则只能为正整数。(2) 用户自定义数据类型用户自定义数据类型 格式:格式:type 数据类型名数据类型名 is 数据类型定义;数据类型定义;可以由用户定义的数据类型有:可以由用户定义的数据类型有:枚举枚举(ENUMERATED)类型;)类型;整数整数(INTEGER)类型;)类型;实数实数(REAL)、)、浮点数浮点数(FLOATING)类型;)类型;数组数组(ARRAY)类型;)类型;。枚举类型:把数据类型中的各个元素都列举出来,方便、枚举类型:把数据类型中的各个元素都列举出来,方便、直观,提高了程序可阅读性。书写
22、格式为:直观,提高了程序可阅读性。书写格式为:Type 数据类型名称数据类型名称 is (元素(元素1,元素,元素2,););其中,数据类型名称和元素都是一个标识符,例如:其中,数据类型名称和元素都是一个标识符,例如:Type color is(blue,green,yellow,red););数据类型名称是数据类型名称是color,(元素,(元素1,元素,元素2,)是)是(blue,green,yellow,red)。)。枚举类型中所列举的元素在程序编译过程中通常是自动编枚举类型中所列举的元素在程序编译过程中通常是自动编码,编码顺序是默认的,左边第一个元素编码为码,编码顺序是默认的,左边第一
23、个元素编码为0,以后,以后的依次加的依次加1。编码过程中自动将每一个元素转变成位矢量,。编码过程中自动将每一个元素转变成位矢量,位矢量的长度由所列举元素个数决定。如上例四个元素,位矢量的长度由所列举元素个数决定。如上例四个元素,位矢量的长度为位矢量的长度为2,编码默认值为:,编码默认值为:blue=“00”,green=“01”;Yellow=“10”;red=“11”。初始值默认为第一个值。初始值默认为第一个值。枚举类型应用举例:交通灯控制器枚举类型应用举例:交通灯控制器任务和要求:在十字路口的两个方向上各设一组红灯、任务和要求:在十字路口的两个方向上各设一组红灯、绿灯和黄灯,显示顺序为:其
24、中一个方向绿灯、黄灯、绿灯和黄灯,显示顺序为:其中一个方向绿灯、黄灯、红灯,另一个方向是红灯、黄灯、绿灯。其中绿灯、黄红灯,另一个方向是红灯、黄灯、绿灯。其中绿灯、黄灯、红灯的持续时间分别是灯、红灯的持续时间分别是20S、5S、25S。程序如下:。程序如下:“IEEE.STD_LOGIC”九态数值模型如下:九态数值模型如下:U初始值;初始值; X 不定态;不定态; 1 逻辑逻辑1; 0 逻辑逻辑0; Z 高阻态;高阻态; W 弱信号不定;弱信号不定; L 弱信号弱信号0 H 弱信号弱信号1; 不可能情况不可能情况 。 (3) IEEE 标准数据类型标准数据类型 “std-logic”和和“st
展开阅读全文