电子设计自动化第二讲培训课件

上传人:日度 文档编号:149738045 上传时间:2020-10-29 格式:PPT 页数:43 大小:1.68MB
返回 下载 相关 举报
电子设计自动化第二讲培训课件_第1页
第1页 / 共43页
电子设计自动化第二讲培训课件_第2页
第2页 / 共43页
电子设计自动化第二讲培训课件_第3页
第3页 / 共43页
电子设计自动化第二讲培训课件_第4页
第4页 / 共43页
电子设计自动化第二讲培训课件_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《电子设计自动化第二讲培训课件》由会员分享,可在线阅读,更多相关《电子设计自动化第二讲培训课件(43页珍藏版)》请在金锄头文库上搜索。

1、1,上节回顾,FPGA设计流程 使用Quartus II进行原理图设计 VHDL,2,2,第2章 VHDL程序编程基础,2.1、VHDL特点,2.2、 VHDL语言程序的基本结构,2.3、 VHDL语言的数据类型及运算操作符,2.4、 VHDL语法基础,2.5、属性的描述与定义,3,3,VHDL的优点:,用于设计复杂的、多层次的设计。支持设计库和设计的重复使用,与硬件独立,一个设计可用于不同的硬件结构,而且设计时不必了解过多的硬件细节。,有丰富的软件支持VHDL的综合和仿真,从而能在设计阶段就能发现设计中的Bug,缩短设计时间,降低成本。,VHDL有良好的可读性,容易理解。,4,4,硬件描述语

2、言(HDL)与计算机语言的区别,运行的基础 计算机语言是在CPURAM构建的平台上运行 HDL设计的结果是由具体的逻辑、触发器组成的数字电路,执行方式 计算机语言基本上以串行的方式执行 HDL在总体上是以并行方式工作,验证方式 计算机语言主要关注于变量值的变化 HDL要实现严格的时序逻辑关系,5,5,-eqcomp4 is a four bit equality comparator Library IEEE; use IEEE.std_logic_1164.all; entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0); eq

3、ual:out std_logic); end eqcomp4; architecture dataflow of eqcomp4 is begin equal = 1 when a=b else 0; End dataflow;,VHDL 大小写不敏感,eqcomp4.vhd,包,实体,结构体,文件名和实体名一致,每行;结尾,关键字begin,关键字end后跟实体名,关键字end后跟结构体名,库,类型,设计实体,6,6,2.2、VHDL语言程序的基本结构,一个完整的VHDL语言程序通常包含五个部分:,实体(Entity),结构体(Architecture),配置(Configuration)

4、,包集合(Package),库(Library),(课本P225),7,结构体 (architecture),begin,end,Data Flow 描述,Behavior 描述,Structure 描述,配置(Configuration),描述或设计硬件电路的区域,选择采用的结构体和实体,数据流描述,行为描述,结构描述,不 可 视 部 分,可视部分和端口,2.2、VHDL语言程序的基本结构,(课本P225),8,8,前面的例子,设计实体是VHDL语言设计的基本单元,是最重要的系统抽象。,设计实体由实体说明和结构体两部分组成,定义了设计单元的具体构造和操作,规定了设计单元的输入输出接口信号或引

5、脚,Entity Declaration,Architecture Body,2.2.1 设计实体(design entity),9,9,实体说明的一般格式如下:,文件名和实体名一致!,ENTITY 实体名 IS GENERIC(参数传递说明语句); PORT(端口说明); 实体说明部分; END ENTITY 实体名;,2.2.2 实体说明,10,10,端口说明,端口为设计实体和其外部环境的动态通信提供通道,是对基本设计实体与外部接口的描述。,PORT(端口名:端口模式 数据类型);,(1)端口名,端口名是赋予每个外部引脚的名称,常用书写格式为:,11,11,(2)端口模式,端口模式用来说明

6、数据、信号通过该端口的方向。,LINKAGE(不指定方向,无论哪个方向都可连接)。 日常设计请不要使用BUFFER和LINKAGE,VHDL语言提供了下述端口模式:,IN (流入实体),,OUT (流出实体),,INOUT (双向端口:既可流入,又可流出),,BUFFER (信号输出到外部,但同时也可在实体内部反馈),,(课本P67),12,12,(3)数据类型,VHDL语言中有10种数据类型,IEEE1076/93标准规定,EDA综合工具提供的数据类型为布尔型(Boolean)、位型(Bit)、位矢量型(Bit_vector)和整数型(Integer)。,实际中,常用的数据类型为: STD_

7、LOGIC STD_LOGIC_VECTOR,(课本P71),13,13,LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; ENTITY deco IS PORT(clock: IN STD_LOGIC; q: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0) ); END deco; clock为输入, STD_LOGIC型 q为输出,STD_LOGIC_VECTOR型8位总线,最高位q7,最低位q0 也可以q: OUTSTD_LOGIC_VECTOR(0 TO 7),前面的例子,无;,14,14,结构体描述一个设计的结构或行为,用VHDL

8、语言描述结构体功能有3种方法:,(1)行为描述法(behavioral):,(2)数据流描述法(RTL or dataflow):,(3)结构描述法(structural):,2.2.3 结构体,(课本P68、P229),15,15,例如:,ARCHITECTURE mux21_arch OF mux21 IS BEGIN y=a when s=0 else b; END ARCHITECTURE mux21_arch;,结构体的常用书写格式为:,ARCHITECTURE 结构体名 OF 实体名 IS -说明语句(用于对信号和常量进行声明) BEGIN -功能描述语句 END ARCHITEC

9、TURE 结构体名;,16,16,ARCHITECTURE deco_arch OF deco IS BEGIN WITH num SELECT q=00111111 WHEN 0000, 00000110 WHEN 0001, 01011011 WHEN 0010, 01001111 WHEN 0011, 01100110 WHEN 0100, 01101101 WHEN 0101, 01111101 WHEN 0110, 00100111 WHEN 0111, 01111111 WHEN 1000, 01101111 WHEN 1001, 00000000 WHEN OTHERS; END

10、 deco_arch;,17,17,1结构体名称的命名,结构体的名称可自由命名,但通常命名为 behavioral 行为描述(数学模型描述); dataflow( RTL) 数据流描述(寄存器传输描述); structural 结构描述(逻辑元件单元连接描述)。,ARCHITECTURE behavioral OF mux IS 用结构体行为命名 ARCHITECTURE dataflow OF mux IS 用结构体的数据流命名 ARCHITECTURE structural OF mux IS 用结构体的组织结构命名,2定义语句,用于对结构体内部所使用的信号、常数、数据类型和函数进行定义。

11、,18,ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ; END ENTITY mux21a ; ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ; END ARCHITECTURE one ;,实体说明,结构体,设计实体与结构体的关系,图4-1 mux21a实体,图4-2 mux21a结构体,2选1多路选择器的VHDL描述,19,19,2.3、VHDL语言的数据类型及运算操作符,VHDL语言的标识符是遵守以下规则的字符序列:,(1)有效字

12、符: (AZ,az)、(09)和(_)。,(2)必须以英文字母打头。,(3)下划线前后必须都有英文字母或数字。,(4)标识符不区分大小写。,下面是合法的标识符:,pulse_100ms Pulse_100ms PULSE_100MS,下面是不合法的标识符:,pulse-100ms 2pulse_100ms _pulse_100ms pulse_100ms_,2.3.1 标识符,(课本P247),20,20,在VHDL语言中对象包括以下3种:信号(Signal)、变量(Variable)和常数(Constant)。 (课本P127),1. 常数(Constant),CONSTANT 常数名:数据

13、类型:=表达式;,例如:CONSTANT DELAY:time:=100ns;,常数说明的一般格式如下:,固定值,不能在程序中被改变 增强程序的可读性,便于修改程 常数是一个全局量。,2.3.2 VHDL语言的对象及其分类,SYN,constant writeDDRAM : std_logic_vector(4 downto 0):=10001;,21,2.信号(Signals),代表连线,Port也是一种信号 没有方向性,可给它赋值,也可当作输入 在Package、Entity、Architecture中定义 用 = 进行赋值 目标信号名= 表达式AFTER 时间量; 用 : = 进行初始化

14、 设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。 signal count:bit_vector(3 downto 0):=“0011”;,22,3.变量(Variable),临时数据,没有物理意义 只能在Process、Function、 Procedure中定义,并只在其内部有效, 要使其全局有效,先转换为Signal。 用 := 进行赋值 用 := 进行初始化 variable result : std_logic := 0;,23,变量与信号的区别,24,24,2.信号(Signal),SIGNAL 信号名:数据类型 约束条件:=表达式;,例如:SIGNAL groun

15、d:std_logic:=;,信号说明语句的一般格式为:,用于VHDL中元件之间的通讯 通常对应实际系统中的连线 端口也是一种特殊的信号 信号赋值需要 延时周期后才生效 在Package、Entity、Architecture中定义,不能在process内声明 信号是一个全局量,25,25,3. 变量(Variable),VARIABLE 变量名:数据类型 约束条件:=表达式;,例如:VARIABLE x,y,z:INTEGER;,变量说明语句的一般格式为:,变量只能在进程语句、函数语句和过程语句结构中使用, 是一个局部量。变量在赋值时不能产生附加延时。通常暂存 一些信号。 要使其全局有效,先

16、转换为Signal。,variable count:integer range 0 to 255:=10 ;,SYN,26,信号与变量赋值,【例6-1】 . . . ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) VARIABLE QQ : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN QQ := D1 ; END IF; END PROCESS ; Q1 = QQ; END ;,27,信号与变量赋值,【例6-2】 . . . ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN QQ = D1 ; END IF; EN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号