vhdl与数字电路设计课件-第一章 vhdl程序的基本结构

上传人:aa****6 文档编号:56792704 上传时间:2018-10-15 格式:PPT 页数:34 大小:1.99MB
返回 下载 相关 举报
vhdl与数字电路设计课件-第一章 vhdl程序的基本结构_第1页
第1页 / 共34页
vhdl与数字电路设计课件-第一章 vhdl程序的基本结构_第2页
第2页 / 共34页
vhdl与数字电路设计课件-第一章 vhdl程序的基本结构_第3页
第3页 / 共34页
vhdl与数字电路设计课件-第一章 vhdl程序的基本结构_第4页
第4页 / 共34页
vhdl与数字电路设计课件-第一章 vhdl程序的基本结构_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《vhdl与数字电路设计课件-第一章 vhdl程序的基本结构》由会员分享,可在线阅读,更多相关《vhdl与数字电路设计课件-第一章 vhdl程序的基本结构(34页珍藏版)》请在金锄头文库上搜索。

1、北京工业大学实验学院,VHDL与数字电路设计,第一章 VHDL程序的基本结构,北京工业大学实验学院,目 录,基本结构,一,实体,二,三,四,结构体,库和程序包,配置,五,1、基本结构,如图代表的是一个芯片的内部俯视图,下面范例介绍如何使用VHDL程序设计该芯片电路。,Pin48,Pin7,北京工业大学实验学院,LIBRARY IEEE; -USE定义区 USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_arith.ALL; USE IEEE.std_logic_unsigned.ALL;,ENTITY ch1 IS -ENTITY定义区PORT(p

2、in48: IN std_logic;pin7 : OUT std_logic); END ch1;,ARCHITECTURE rtl OF ch1 IS -ARCHITECTURE定义区 BEGINpin7=pin48; -程序 END rtl;,北京工业大学实验学院,描述输入/输出端口 描述电路的行为和功能,北京工业大学实验学院,Input port,Output port,Functions,IN,OUT,Input,Output,VHDL的功能,北京工业大学实验学院,并非所有VHDL程序都具备上述的语法结构。理论上,只有ENTITY和ARCHITECTURE是程序必备的;而在实际应用中

3、,常常需要在定义ENTITY之前调用库和库中的程序包(只是“调用”,不是“编写”)。下图所示的VHDL程序结构是实际应用中最基本、最常见的程序结构。,北京工业大学实验学院,基本结构,-eqcomp4 is a four bit equality comparator LIBRARY IEEE; USE IEEE.std_logic_1164.ALL;ENTITY eqcomp4 ISPORT(a, b:IN std_logic_vector(3 DOWNTO 0);equal :OUT std_logic); END eqcomp4;ARCHITECTURE dataflow OF eqcom

4、p4 IS BEGINequal = 1 WHEN a=b ELSE 0; END dataflow;,VHDL 对大小写不敏感,eqcomp4.vhd,包,实体,构造体,文件名和实体名一致,每行;结尾,关键字BEGIN,关键字END后跟实体名,关键字END后跟构造体名,库,北京工业大学实验学院,2、库和程序包,LIBRARY(库)是用于存放预先编译好的设计单元(实体说明、结构体、配置说明、程序包说明和程序包体等)。 PACKAGE (程序包)中定义了基本的常数,数据类型,元件及子程序等。 作用:声明在实体和结构体定义中将用到的数据类型、元件或子程序等。 声明格式:LIBRARY ;USE A

5、LL;USE ;,北京工业大学实验学院,VHDL语言的库分为两类: 设计库:包括std和work库,设计库对当前项目是可见默认的,无需用LIBRARY和USE语句声明。 资源库:包括IEEE库等,设计库是常规元件和标准模块存放的库,使用哪个资源库需要预先声明。 VHDL标准中提供了一些预定义的标准程序包,常用的有: Standard(std库) Textio(std库) Std_logic_1164(IEEE库) ,北京工业大学实验学院,库和程序包,由于VHDL已是IEEE规定的标准,所以只要是CPLD、FPGA等器件公司,他们都会提供标准的IEEE资源库,而且由于这里面包含许许多多的定义和参

6、数,初学者一时之间也不容易全部了解,所以可以全部写上以减轻负担,如下所示:LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_arith.ALL;USE IEEE.std_logic_unsigned.ALL;,北京工业大学实验学院,库和程序包,作用:ENTITY(实体)用于定义电路的外观,即I/O端口和数量。 定义格式:ENTITY IS类属参数说明;实体说明部分;END ENTITY ;,北京工业大学实验学院,3、实体,放在端口说明之前,用来为设计实体和其外部环境通信的静态信息提供通道,可以用来定义端口宽度、实体中元件的数

7、目以及器件延迟时间等参数。 可以使VHDL更加具有通用性。在开始设计VHDL语言程序时,难免会有一些参数的值不能确定(或待定),可以应用GENERIC语句编制通用程序,仿真时只要将待定参数初始化即可。 定义格式: GENERIC(参数名称:数据类型:=静态表达式;); 例: GENERIC(delay_time:time:=5ns);,北京工业大学实验学院,3.1 类属参数说明,端口说明是对设计实体与外部接口的描述,端口对应于电路图上的一个引脚,一个端口就是一个数据对象。端口说明部分用于为设计实体和其外部环境通信的动态信息提供通道。 定义格式: PORT (端口名称: 端口模式 数据类型 :=

8、表达式;); 例: PORT( a: IN bit; b: IN bit;c: OUT bit);,北京工业大学实验学院,端口名,数据类型,端口模式,3.2 端口说明,端口说明必须包括端口名称、端口模式和数据类型的描述。端口名称就是指定端口的标识符;端口模式用来说明数据、信号通过该端口时的流动方向,即数据传输方向;数据类型用来说明通过信号端口的数据或者信号的数据类型。 端口模式:,北京工业大学实验学院,3.2 端口说明,IN(输入)模式:OUT(输出)模式:INOUT(双向)模式:BUFFER(缓冲)模式:BUFFER模式和INOUT模式的区别就在于INOUT模式不能用于实体内部的反馈。 LI

9、NKAGE(链接)模式:,北京工业大学实验学院,3.2 端口说明,北京工业大学实验学院,ENTITY test1 ISPORT(a: IN std_logic;b, c: OUT std_logic); END test1;ARCHITECTURE rtl OF test1 IS BEGINb = NOT(a);c = b; -Error END rtl;,ENTITY test2 ISPORT(a: IN std_logic;b: BUFFER std_logic;c: OUT std_logic); END test2;ARCHITECTURE rtl OF test2 IS BEGINb

10、 = NOT(a);c = b; END rtl;,OUT与BUFFER的区别,实体说明部分应放在端口说明的下面,由实体声明语句和实体语句两部分构成。 实体声明语句的功能是用来定义设计实体接口中的一些公共信息,如数据类型的定义。 实体语句是每一个设计实体接口的公共部分。实体语句只能由以下并行语句组成:并行断言语句、并行过程调用语句和被动进程语句。这些实体语句部分必须是被动语句,即在语句中不含有赋值语句。,北京工业大学实验学院,3.3 实体说明部分,ENTITY ram ISGENERIC(delay_time: time:=5ns);PORT(addr: IN std_logic_vector

11、(15 DOWNTO 0);sel: IN std_logic;data: OUT std_logic_vector(31 DOWNTO 0);TYPE instruction IS ARRAY(0 TO 7) OF natural;TYPE program IS ARRAY(natural RANGE) OF instruction; END ram;,一个完整的ENTITY实例,北京工业大学实验学院,作用:实体的实现。即说明电路执行什么动作或实现功能。 定义格式:ARCHITECTURE OF IS结构体声明语句;BEGIN;END ARCHITECTURE ;,北京工业大学实验学院,4、

12、结构体,位于实体之后。实体和结构体的编译是有先后顺序的,只有编译了实体说明以后,才能对结构体进行编译。如果实体说明需要重新编译,那么相应的结构体也需要重新编译。 每个实体说明可以对应多个结构体,每个结构体对应着设计实体不同的结构和算法实现方案。一般来说,每个实体对应的各个结构体的地位是同等的,都用来完整地实现结构体的具体功能。 同一个结构体不能被不同的设计实体所共有。,北京工业大学实验学院,结构体,结构体命名:遵循标识符的命名规则,一般建议按照一定的惯例进行命名:behavioral/behave -行为描述方式dataflow/rtl -数据流描述方式structural/structure

13、 -结构化描述方式bool -用数学表达方式latch -功能,北京工业大学实验学院,结构体声明语句:对结构体内部所使用的信号、变量、常数、元件、子程序声明等进行定义。和实体中端口说明一样,也应该含有信号名称和数据类型的说明,但由于所定义的信号是结构体内部使用的信号,因此不需要进行端口模式的说明。定义格式如下:SIGNAL nesl: bit; 并行描述语句:结构体中主要包括进程语句、信号赋值语句、块语句、子程序调用语句和元件例化语句等。,北京工业大学实验学院,行为描述方式:对设计实体的数学模型的描述,是一种抽象描述(不针对器件,不考虑实体的电路组织和门级实现),是整体设计功能的定义,高层次描

14、述。只需注意正确的实体行为,准确的数学模型和精确的输出结果。 寄存器传输(数据流)描述方式:按照从信号到信号的寄存器传输路径行使进行描述的方式。优点在于很容易进行逻辑综合,缺点是硬件水平要求较高。 结构描述方式:在层次化结构设计中,高层次的设计模块调用低层次的设计模块,或者直接用门电路设计单元来构成一个复杂的逻辑电路的描述方法。采用结构描述方式时,如果想要引用库中不存在的模块或元件时,必须先创建。,北京工业大学实验学院,结构体的三种描述方式,一个完整VHDL电路设计必须有一个实体和对应的结构体,即实体和结构体对构成一个完整的VHDL设计(一个实体可对应一个结构体或多个结构体,即一个实体可以有不

15、同的描述方式)。 作用:当实体有多个结构体时,系统默认实体选用最后一个结构体,利用配置语句可以任意选择采用哪一个结构体。 定义格式:CONFIGURATION OF ISFOR END FOR;END 配置名;,北京工业大学实验学院,5、配置,LIBRARY std; USE std.standard.ALL; -库和程序包 ENTITY and2 IS PORT(a : IN bit;b : IN bit;c : OUT bit); END and2; -实体定义 ARCHITECTURE Na OF and2 IS BEGINc = 0 WHEN a=0 AND b = 0 ELSE0 W

16、HEN a=1 AND b = 0 ELSE 0 WHEN a=0 AND b = 1 ELSE 1; END Na; -结构体Na,北京工业大学实验学院,输入与门,VHDL程序举例1,ARCHITECTURE Nb OF and2 IS BEGINc = a AND b; END Nb; -结构体NbCONFIGURATION s1 OF and2 ISFOR NaEND FOR; END CONFIGURATION s1; -结构体配置结束,北京工业大学实验学院,北京工业大学实验学院,VHDL程序举例2全加器,LIBRARY IEEE; USE IEEE.std_logic_1164.all;ENTITY fa ISPORT (a,b,ci: IN std_logic;s,co : OUT std_logic); END fa;ARCHITECTURE dat1 OF fa IS BEGINs=a XOR b XOR ci;co=(a AND b) OR (a AND ci) OR (b AND ci); END dat1;,

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

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

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