《第1章语言基础精选PPT.ppt》由会员分享,可在线阅读,更多相关《第1章语言基础精选PPT.ppt(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章语言基础第1页,此课件共33页哦第1章 VHDL语言基础第2页,此课件共33页哦1.1 概述硬件描述语言(Hardware Description Language,HDL),顾名思义,是电子系统硬件行为描述、结构描述、数据流描述的语言。利用硬件描述语言可以进行数字电子系统的设计图纸图纸电路电路表示方法文本(文本(HDL)行为行为数据流数据流结构结构抽象方向抽象方向综合方向综合方向第3页,此课件共33页哦概述可编程器件设计中的HDL可编程器件(CPLD/FPGA)FPGA四大厂商:Xilinx Altera Microsemi(收购了Actel)Lattice 程序设计综合仿真验证下载熔
2、丝EPROM器件配置第4页,此课件共33页哦主要的硬件描述语言美国国防部电子系统项目有众多的承包公司。由于各公司技术路线不一致,许多产品不兼容,他们使用各自的设计语言,造成了信息交换困难和维护困难。国防部为他们的超高速集成电路提供一种硬件描述语言,要求各公司的合同都用它来描述,以避免产生歧义。VHDL语 言 的 英 文 全 名 是 Very High Speed Integrated Circuit Hardware Description Language即超高速集成电路硬件描述语言。设计开发设计开发第5页,此课件共33页哦主要的硬件描述语言Candence公司是一家著名的EDA公司该公司的
3、Verilog HDL于1983年由Gate Way Design Automatic公司的Phil Moorby首创。他在19841985年间成功设计了Verilog-XL仿真器,于1986年提出了快速门级仿真的XL算法,使Verilog HDL语言变得更加丰富和完善,从而受到了EDA工具设计公司的青睐。1989年Candence公司购买了GDA公司,Verilog HDL语言从此变为Candece公司的“财产”,成为该公司的EDA设计环境上的硬件描述语言。经过该公司的努力,Verilog HDL于1995年成为IEEE标准,即Verilog HDL 1364-1995。VHDLVerilo
4、g HDL当今使用最多的两大当今使用最多的两大HDL第6页,此课件共33页哦开发环境(硬件)针对本课程所开设的针对本课程所开设的FPGA开发实验,面向开发实验,面向FPGA芯片进行芯片进行数字电路数字电路设计。设计。第7页,此课件共33页哦开发环境(软件)Quartus II第8页,此课件共33页哦1.2 VHDL程序结构 VHDL程序包含实体(Entity)、结构体(Architecture)2个部分。实体是一个VHDL程序的基本单元,由实体说明和结构体两部分组成。实体说明用于描述设计系统的外部接口信号;结构体用于描述系统的行为、系统数据的流程或者系统组织结构形式。librarypackag
5、eentity declarationarchitectur0architectur1architecturnconfiguration第9页,此课件共33页哦库库用于存放已编译的实体、构造体、包集合、配置。库有两种:一种是用户自行生成的IP库,有些集成电路设计中心开发了大量的工程软件,有不少好的设计范例,可以重复引用,所以用户自行建库是专业EDA公司的重要任务之一。另一种是PLD,ASIC芯片制造商提供的库。比如常用的74系列芯片,RAM,ROM控制器,Counter计数器等标准模块。librarypackageentity declarationarchitectur0architectu
6、r1architecturnconfiguration第10页,此课件共33页哦包包集合存放各设计模块能共享的数据类型、常数、子程序等。librarypackageentity declarationarchitectur0architectur1architecturnconfiguration第11页,此课件共33页哦配置配置用于从库中选取所需单元来组成系统设计的不同规格的不同版本,使被设计系统的功能发生变化。librarypackageentity declarationarchitectur0architectur1architecturnconfiguration第12页,此课件共3
7、3页哦 1.3 VHDL程序的实体 设计实体是VHDL程序的基本单元,是最重要的电子系统抽象。它可以代表整个电子系统、一块电路板或一枚芯片,简单的可以是一个与门电路(AND Gate),复杂的可以是一个微处理器或一个数字电子系统。一个实体由实体说明和结构体说明两部分组成。library ieee;use ieee.std_logic_1164.all;entity ram isport(data:inout std_logic_vector(7 downto 0);addr:in std_logic_vector(15 downto 0);clk:in std_logic;rd_n:in st
8、d_logic;wr_n:in std_logic;cs_n:in std_logic);end entity ram;architecture one of ram isbegin.end architecture one;对应的电路接口演示操作第13页,此课件共33页哦例1-1 计数器程序结构LIBRARY IEEE;USE ieee.std_logic_1164.all;ENTITY entity_name IS PORT(data_input_name:IN INTEGER RANGE 0 TO count_value;clk_input_name :IN STD_LOGIC;clm_
9、input_name :IN STD_LOGIC;ena_input_name :IN STD_LOGIC;count_output_name:OUT INTEGER RANGE 0 TO Count_value);END entity_name;第14页,此课件共33页哦实体的组成实体的组织由实体名、类属表、端口表、实体说明部分和实体语句部分组成。根据IEEE标准,实体组织的一般格式为:ENTITY 实体名 IS GENERIC(类属表);PORT(端口表);实体说明部分;BEGIN 实体语句部分;END ENTITY 实体名;VHDL语法不区分大小写。Verilog区分大小写。第15页,此
10、课件共33页哦 例1-2 8位加法器的实体ENTITYadd8ISPORT(b:in std_logic_vector(7 downto0);a:in std_logic_vector(7 downto0);Ci:in std_logic;Sum:out std_logic_vector(7 downto0);Co:out std_logic;)END add8;acisumbco888第16页,此课件共33页哦类型说明(类属参数说明)类属说明是实体说明中的可选项,放在端口说明之前,其一般书写格式为:GENERICCONSTANT名字表:IN子类型标识:静态表达式,举例:GENETRIC(m:
11、TIME:3ns)这个参数说明是指在VHDL程序中,构造体内的参数m的值为3ns。类属说明和端口说明是实体说明的前半部分。类属说明用于设计实体和外部环境通信的对象、通信格式约定和通信通道的大小。参数的类属设计为设计实体和外部环境通信的静态信息提供通道。参数的类属用来规定端口的大小、I/O引脚的指派、实体中子元件的数目和实体的定时特性。演示操作第17页,此课件共33页哦端口说明端口说明的一般格式为:Port(端口名,端口名:模式 数据类型名 端口名,端口名:模式 数据类型名);端口名是赋于每个外部引脚的名字,名字的含义要与惯例接轨,如D开头的端口名表示数据,A开头的端口名表示地址等。端口名通常用
12、几个英文字母或一个英文字母加数字表示。下面是合法的端口名:CLK,RESET,A0,D3模式用来说明数据、信号通过该端口的方向。端口模式有IN,OUT,INOUT,BUFFER。IN 是输入端口;OUT是输出端口;INOUT是双向端口;BUFFER是内部缓冲端口.第18页,此课件共33页哦端口模式端口模式端口模式:in只能够接收信号,用于输入,如data:in bit_vector(7 downto 0);此时data只能够被读取,不能写入,即data=x”A8”;-试图写数据到data,错误temp=data;-从data读取数据,正确数据输入端口模式:in第19页,此课件共33页哦端口模式
13、端口模式out只能够发送信号,用于输出,如data:out bit_vector(7 downto 0);此时data只能够被写入,不能读取,即data=x”A8”;-写数据到data,正确temp=data;-试图从data读取数据,错误数据输出端口模式:out第20页,此课件共33页哦端口模式端口模式inout既能接收数据,也能发送数据,如data:inout bit_vector(7 downto 0);此时data既能被读取,也能被写入,即data=x”A8”;-写数据到data,正确temp=data;-从data读取数据,正确数据输入输出端口模式:inout第21页,此课件共33页
14、哦端口模式端口模式buffer用于信号的输出,但和out模式不同,buffer可以回读输出的数据。如:data:buffer integer;此时data可以作为输出端口输出数据,也可以读取所输出的值。data=data+1;-回读端口数据再加1送出数据输出数据回读端口模式:buffer第22页,此课件共33页哦数据类型(TYPES)端口说明除了定义端口标识名称、端口定义外,还要标明出入端口的数据类型。VHDL语言的IEEE1706/93标准规定的数据类型为布尔型(Boolean)、位型(Bit)、位矢量型(Bit-vector)和整数型(Integer)等。由IEEE std_logic_1
15、164所约定的、由EDA工具支持的数据类型为标准逻辑(Standard Logic)类型。标准逻辑类型也分为布尔型、位型、位矢量型和整数型。为了使EDA工具的仿真、综合软件能够处理这些逻辑类型,这些标准必须从实体的库中或USE语句中调用。第23页,此课件共33页哦1.4 VHDL程序的结构体 结构体(Architecture)具体指明了该设计实体的行为,定义了该设计实体的功能。ARCHITECTUREARCHITECTURE counter counter OFOF _ _entity_name entity_name ISISSIGNALSIGNAL _count_name _count_n
16、ame:INTEGERINTEGER RANGERANGE 0 0 TO TO count_value count_value;BEGINBEGINPROCESSPROCESS(_clk_input_name(_clk_input_name,_clrn_input_name)_clrn_input_name)BEGINBEGIN END PROCESS END PROCESS;count_output_name=_count_signal_name count_output_name=_count_signal_name;END END countercounter;第24页,此课件共33页哦
17、结构体和实体的关系entityarchitecture 1architecture 2architecture 3architecture n 为一个设计实体可以编写若干个结构体,但是用的时候只能够为实体指定一个特定的结构体,这个指定是通过配置实现的。第25页,此课件共33页哦描述结构体3种方法(1)行为描述法:采用进程语句,顺序描述被称设计实体的行为。(2)数据流描述法:采用进程语句顺序描述数据流在控制流作用下被加工、处理、存储的全过程。(3)结构描述法,采用并行处理语句描述设计实体内的结构组织和元件互连关系。第26页,此课件共33页哦结构体书写格式结构体的一般书写格式为:ARCHITECT
18、URE 结构体名 OF 实体名 IS定义语句,内部信号,常数,数据类型,函数定义;BEGIN 并行描述语句;进程语句【顺序处理语句】;END ARCHITECTURE结构体名;第27页,此课件共33页哦结构体命名结构体名称由设计者自由命名,是结构体的唯一名称。OF后面的实体名称表明该结构体属于哪个设计实体,有些设计实体中可能含有多个结构体。这些结构体的命名可以从不同侧面反映结构体的特色,让人一目了然。例如:ARCHITECTURE behacvioral OF mux IS用结构体行为命名ARCHITECTURE dataflow OF mux IS 用结构体数据流命名ARCHITECTURE
19、 structural OF mux IS 用结构体组织结构命名ARCHITECTURE bool OF mux IS 用结构体的数学表达方式命名ARCHITECTURE latch OF mux IS 用结构体的功能来命名第28页,此课件共33页哦定义语句由结构体的一般书写格式知道,结构名称后面是对象定义,位于关键字ARCHITECTURE和BEGIN之间,用于对结构内部使用的信号、常数、数据类型、函数进行定义。注意:这是结构体内部,而不是实体内部,因为实体中可能有几个结构体。另外,实体说明中定义IO信号为外部信号,而结构体定义的信号为内部信号。第29页,此课件共33页哦 结构体的信号定义方
20、法结构体的信号定义和实体的端口说明一样,应有信号名称和数据类型定义,但不需要定义信号模式,不用说明信号方向,因为是结构体内部连接用信号。例:ARCHITECTURE structural OF mux ISSIGNALab:bit;SIGNAL x:std_logic_vector(0 to 7);BEGIN END structural;第30页,此课件共33页哦并行处理语句(1)并行处理语句是结构体功能描述的主要语句。并行处理语句表明,若一个结构体的功能定义和行为描述用的是结构描述方式,则并行语句表达了结构体组织的内部元件之间的互连关系。这些语句是并行的,各个语句之间没有顺序关系。第31页,此课件共33页哦并行处理语句(2)若一个结构体是用进程来描述的,并且这个结构体含有多个进程,则各进程之间是并行的。但必须声明,每个进程内部的语句是有顺序的,不是并行的。若一个结构体用模块化结构描述,则各模块间是并行的,而模块内部视描述方式而定。第32页,此课件共33页哦例程演示和讲解进入编译器第33页,此课件共33页哦