《设计初步教学课件》由会员分享,可在线阅读,更多相关《设计初步教学课件(100页珍藏版)》请在金锄头文库上搜索。
1、数字电路与系统设计EDA实验,VHDL设计初步,主讲:任爱锋 Email:,VHDL历史回顾,VHDL 语言是美国国防部(DOD)在 20 世纪 80 年代初为实现其高速集成电路计划(VHSICVery High Speed Integrated Circuit)而提出的一种硬件描述语言(HDLHardware Description Language),以作为各合同商之间提交复杂电路设计文档的一种标准方案,VHDL的含义为超高速集成电路硬件描述语言。 1987年被采纳为IEEE 1076标准(VHDL87)。 1993年被更新为IEEE 1164标准(VHDL93)。,VHDL VHSIC
2、Hardware Description Language,HDL 的出现是为了适应电子系统设计的日益复杂性。若以计算机软件的设计与电路设计做个类比:,机器码好比晶体管/MOS管;,汇编语言好比电路网表;,HDL语言就如同高级语言。,几种常用的HDL语言: (1)VHDL硬件描述语言:功能强,规范性好; (2)VerilogHDL硬件描述语言:功能强、灵活性高; (3)ABEL硬件描述语言:属于较低级的硬件描述语言; (4)AHDL硬件描述语言:Altera公司开发,语法简单,但不通用。 其中:VHDL和VerilogHDL已成为IEEE标准。,VHDL VHSIC Hardware Desc
3、ription Language,VHDL在语法和风格上类似与现代高级编程语言。但要注意,VHDL毕竟描述的是硬件,它包含许多硬件特有的结构。 HDL是用文字化方法描述电子电路与系统。,计算机语言描述特点是 :顺序性,HDL语言描述的特点是:并行性,VHDL VHSIC Hardware Description Language,VHDL与计算机语言的区别,运行的基础 计算机语言是在CPURAM构建的平台上运行 VHDL设计的结果是由具体的逻辑、触发器组成的数字电路 执行方式 计算机语言基本上以串行的方式执行 VHDL在总体上是以并行方式工作 验证方式 计算机语言主要关注于变量值的变化 VHD
4、L要实现严格的时序逻辑关系,数字电路与系统设计回顾,组合逻辑电路,时序逻辑电路,分析,设计,真值表,分析,设计,与、或、非 与非、或非 异或、同或,RS触发器 D触发器 T触发器 JK触发器,主要内容安排,1 多路选择器的VHDL描述,2 时序电路的VHDL描述,3 更复杂电路的VHDL描述,4 习题,1 多路选择器的VHDL描述,例1.1 2选1多路选择器的VHDL描述,2选1输入/输出端口 (实体Entity),电路功能 实现 (结构体Architecture),?,例1.1 2选1多路选择器的实体描述,1 多路选择器的VHDL描述,说明:以关键字ENTITY引导,以END (ENTITY
5、) xxx结尾的语句部分,称为实体。描述电路的外部情况及接口性质。,ENTITY mux21 IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21; ARCHITECTURE one OF mux21 IS BEGIN y = a WHEN s = 0 ELSE b ; END ARCHITECTURE one ;,例1.1 2选1多路选择器的结构体描述1 (行为描述),说明:以关键字ARCHITECTURE引导,以END (ARCHITECTURE) xxx结尾的语句部分,称为结构体。描述电路的内部逻辑功能或
6、电路结构。,1 多路选择器的VHDL描述,例1.1 2选1多路选择器的结构体描述2 (原理图描述),1 多路选择器的VHDL描述,例1.1 2选1多路选择器的结构体描述3 (布尔方程描述),1 多路选择器的VHDL描述,说明:以上三种结构体描述都是并行语句,例1.1 2选1多路选择器的结构体描述4 (进程描述),1 多路选择器的VHDL描述,2选1多路选择器功能时序波形,例1.1 2选1多路选择器的EDA软件仿真结果,1 多路选择器的VHDL描述,1.1 实体表达(ENTITY),1 多路选择器的VHDL描述,例1.1VHDL描述中出现的相关语句结构和语法说明,ENTITY 实体名 IS GE
7、NERIC (类属表); PORT (端口表); END ENTITY 实体名;,实体在电路中主要是说明该电路的输入、输出关系,更具体地说就是用来定义实体与外部的连接关系以及需传送给实体的参数。,ENTITY 实体名 IS GENERIC (类属表); PORT (端口表); END ENTITY 实体名;,(1)类属表:用以将信息参数传递到实体。 (2)端口表:指明实体的输入、输出信号及其模式、数据类型。,PORT (端口名:端口模式 数据类型; 端口名:端口模式 数据类型 );,英文字母+数字,数据流动方向,主要有“位”和“位矢量”两类,设计者自己命名的名称(文件名),注意 简单地说 In
8、 不可以出现在= 或 : = 的左边 out不可以出现在= 或 : = 的右边 buffer可以出现在= 或 : = 的两边,In 信号只能被引用,不能被赋值 out 信号只能被赋值,不能被引用 buffer 信号可以被引用,也可以被赋值,例:,VHDL中任何一种数据对象(信号、变量、常数)必须严格限定其取值范围。 VHDL 中一个对象只能有一种类型,施加于该对象的操作必须与该类型相匹配。 常用数据类型有:BIT,BIT_VECTOR,STD_LOGIC,STD_LOGIC_VECTOR,INTEGER,BOOLEAN等,1.2 结构体表达(ARCHITECTURE),1 多路选择器的VHDL
9、描述,ARCHITECTURE 结构体名 OF 实体名 IS 定义语句 内部信号,常数,数据类型,函数等定义; BEGIN 功能描述语句; END ARCHITECTURE 结构体名;,结构体名称的命令:它是该结构体的唯一名称。“OF”后面紧跟的实体名表明了该结构体所对应的是哪一个实体。用 “IS”来结束结构体的命名。,ARCHITECTURE 结构体名 OF 实体名 IS 定义语句 内部信号,常数,数据类型,函数等的定义; BEGIN 功能描述语句; END ARCHITECTURE 结构体名;,定义语句:位于“ARCHITECTURE”和“BEGIN”之间。用于对结构体内部所使用的信号常数
10、、数据类型和函数等进行定义。如:,ARCHITECTURE 结构体名 OF 实体名 IS 定义语句 内部信号,常数,数据类型,函数等的定义; BEGIN 功能描述语句; END ARCHITECTURE 结构体名;,SIGNAL cont:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL co_1:STD_LOGIC; CONSTANT m:TIME:=2ns; TYPE STATE IS (INIT,DAD,ADC,SRF,FRF);,功能描述语句:处于“BEGIN”和“END”之间。具体描述了结构体的行为及其连接关系。,ARCHITECTURE 结构体名 OF 实体
11、名 IS 定义语句 内部信号,常数,数据类型,函数等的定义; BEGIN 功能描述语句; END ARCHITECTURE 结构体名;,结构体功能可以用三种方式进行描述,即: 行为描述、数据流描述、结构描述。,.结构体的行为描述(behavioral) 结构体的行为描述表示输入与输出间转换的关系,是对设计实体按算法的路径来描述。行为描述在 EDA 工程中称为高层次描述或高级描述。,看例题!,例:如图所示的半加器,其功能真值表已经给出,写出它的行为描述。,半加器真值表:,(ENTITY部分省略) ARCHITECTURE alg_ha OF half_adder IS BEGIN PROCESS
12、 (a , b) BEGIN IF a=0 AND b=0 THEN c=0 ; s=0 ELSIF a=1 AND b=1 THEN c=1 ; s=0; ELSE c=0 ; s=1; END IF; END PROCESS END alg_ha;,高层次的功能描述,不必考虑在电路中到底是怎样实现的。,.结构体的数据流描述(dataflow) 它反映了从输入数据到输出数据之间所发生的逻辑变换,或者说描述了数据流程的运动路径、运动方向和运动结果。 .结构体的结构化描述(structural) 结构化描述给出了实体内部结构、所包含的模块或元件间互连关系;与实体外部引线的对应关系。,练习: 试用
13、上面的两种方法描述半加器的功能。,结构体中三种描述方式的比较,布尔函数定义明白,连接关系清晰,电路模块化清晰,优 点,小门数设计,不易描述复杂电路,修改不易,数据流描述,电路层次化设计,电路不易理解、繁琐、复杂,结构化描述,适用场合,缺 点,描述方式,电路特性清楚明了,大型复杂的电路模块设计,进行综合效率相对较低,行为描述,信号赋值符 “=”,表式中的等号“=”没有赋值的含义,只是一种数据比较符号。,1.3 赋值符号和数据比较符号,1 多路选择器的VHDL描述,例1.1VHDL描述中出现的相关语句结构和语法说明,1.4 逻辑操作符,1 多路选择器的VHDL描述,例1.1VHDL描述中出现的相关
14、语句结构和语法说明,VHDL共有7种基本逻辑操作符: AND(与)、OR(或)、NOT(取反)、NAND (与非)、 NOR(或非)、XOR(异或)、XNOR(同或),要求数据类型: BIT BOOLEAN STD_LOGIC, ARCHITECTURE one OF mux21 IS BEGIN y = a WHEN s = 0 ELSE b ; END ARCHITECTURE one ;,1.5 WHEN_ELSE条件信号赋值语句,1 多路选择器的VHDL描述,例1.1VHDL描述中出现的相关语句结构和语法说明,赋值目标 = 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条
15、件 ELSE 表达式 ;,在VHDL中,所有的顺序语句,如“IF_THEN_ELSE_END IF”,都必须放在由“PROCESSEND PROCESS”引导的进程结构中。 在一个结构体(ARCHITECTURE)中可以包含任意个进程语句,所有的进程语句都是并行语句,而进程PROCESS引导的内部语句结构属于顺序语句。,1.4 进程语句和顺序语句,1 多路选择器的VHDL描述,例1.1VHDL描述中出现的相关语句结构和语法说明,1 小结,在2选1的VHDL描述中出现的语言现象归纳:,实体: Entity 结构体:Architecture 端口定义: Port( ) 端口模式:In/Out/In
16、out 数据类型:Bit、Std_Logic 信号赋值符:= 条件比较符:= 逻辑操作符:AND,IF条件语句:IFEND IF 并行条件语句:WHENELSE 进程语句:ProcessEnd Process 顺序语句:由进程语句引导 并行语句:,2 时序电路的VHDL描述,例2.1 D触发器的VHDL描述,最简单、最具有代表性的时序电路是D触发器。对D触发器的描述包含了VHDL对时序电路的最基本和典型的表达方式,也包含了VHDL中许多最具特色的语言现象。,(实体Entity),电路功能描述 (结构体Architecture),?,LIBRARY IEEE ; USE IEEE.STD_LOGIC_1