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

上传人:M****1 文档编号:567394355 上传时间:2024-07-20 格式:PPT 页数:34 大小:592.50KB
返回 下载 相关 举报
VHDL与数字电路设计第一章VHDL程序的基本结构ppt课件_第1页
第1页 / 共34页
VHDL与数字电路设计第一章VHDL程序的基本结构ppt课件_第2页
第2页 / 共34页
VHDL与数字电路设计第一章VHDL程序的基本结构ppt课件_第3页
第3页 / 共34页
VHDL与数字电路设计第一章VHDL程序的基本结构ppt课件_第4页
第4页 / 共34页
VHDL与数字电路设计第一章VHDL程序的基本结构ppt课件_第5页
第5页 / 共34页
点击查看更多>>
资源描述

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

1、 VHDL与数字电路设计与数字电路设计 目 录根本构造根本构造一实体实体二二三三四四构造体构造体库和程序包库和程序包配置配置五五1、根本构造如图代表的是一个芯片的内部俯视图,下面范例引见如何运用VHDL程序设计该芯片电路。Pin48Pin7LIBRARY 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(pin48: IN std_logic; pin7 : OUT std_

2、logic);END ch1;ARCHITECTURE rtl OF ch1 IS-ARCHITECTURE定定义义区区BEGIN pin7=pin48;-程序程序END rtl;描画输入/输出端口描画电路的行为和功能Input portOutput portFunctionsINOUTInputOutputVHDL的功能并非一切VHDL程序都具备上述的语法构造。实际上,只需ENTITY和ARCHITECTURE是程序必备的;而在实践运用中,经常需求在定义ENTITY之前调用库和库中的程序包只是“调用,不是“编写。以下图所示的VHDL程序构造是实践运用中最根本、最常见的程序构造。USE定义区定

3、义区ENTITY定义区定义区ARCHITECTURE定义区定义区根本构造-eqcomp4 is a four bit equality comparatorLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY eqcomp4 IS PORT(a, b:IN std_logic_vector(3 DOWNTO 0); equal :OUT std_logic);END eqcomp4;ARCHITECTURE dataflow OF eqcomp4 ISBEGIN equal = 1 WHEN a=b ELSE 0;END dataflow;VHDL 对

4、对大小写不敏感大小写不敏感eqcomp4.vhd包实体构造体文件名和实体名一致每行;结尾关键字BEGIN关键字END后跟实体名关键字END后跟构造体名库2、库和程序包LIBRARY库是用于存放预先编译好的设计单元实库是用于存放预先编译好的设计单元实体阐明、构造体、配置阐明、程序包阐明和程序包体等。体阐明、构造体、配置阐明、程序包阐明和程序包体等。PACKAGE 程序包中定义了根本的常数,数据类型,程序包中定义了根本的常数,数据类型,元件及子程序等。元件及子程序等。 作用:作用:声明在实体和构造体定义中将用到的数据类型、声明在实体和构造体定义中将用到的数据类型、元件或子程序等。元件或子程序等。声

5、明格式声明格式:LIBRARY ;USE .ALL;USE .;VHDL言语的库分为两类:设计库:包括std和work库,设计库对当前工程是可见默许的,无需用LIBRARY和USE语句声明。资源库:包括IEEE库等,设计库是常规元件和规范模块存放的库,运用哪个资源库需求预先声明。VHDL规范中提供了一些预定义的规范程序包,常用的有:Standardstd库Textiostd库Std_logic_1164IEEE库库和程序包由于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;库和程序包作用:作用:ENTITYENTITY实体用于定义电路的外观,即实体用于定义电路的外观,即I/OI/O端口和数量。端口和数量。定义格式:定义格式:ENTITY ENTITY IS IS 类属参数阐明类属参数阐明; ; 实体阐明部分实体阐明部分;END ENTITY 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 端口阐明端口阐明必需包括端口称号、端口方式和数据类型的描画。端口称号就是指定端口的标识符;端口方式用来阐明数据、信号经过该端口时的流动方向,即数据传输方向;数据类型用来阐明经过信号端口的数据或者信号的数据类型。端口方式:端口模式端口模式含义含义IN输入输入OUT输出输出INOUT双向双向BUFFER缓冲缓冲LINKAGE链接(不指定方向)链接(不指定方向)3.2 端口阐明ININ输入方式:输入方式:OUTOUT输出方式:输出方式:

9、INOUTINOUT双向方式:双向方式:BUFFERBUFFER缓冲方式:缓冲方式:BUFFERBUFFER方式和方式和INOUTINOUT方式的区别就在于方式的区别就在于INOUTINOUT方方式不能用于实体内部的反响。式不能用于实体内部的反响。LINKAGELINKAGE链接方式:链接方式:3.2 端口阐明ENTITY test1 ISPORT(a: IN std_logic; b, c: OUT std_logic);END test1;ARCHITECTURE rtl OF test1 ISBEGIN b = NOT(a); c = b;-ErrorEND rtl;ENTITY tes

10、t2 IS PORT(a: IN std_logic; b: BUFFER std_logic; c: OUT std_logic);END test2;ARCHITECTURE rtl OF test2 ISBEGIN b = NOT(a); c = b;END rtl;OUT与与BUFFER的区别的区别实体阐明部分应放在端口阐明的下面,由实体声明语句和实体语句两部分构成。实体声明语句的功能是用来定义设计实体接口中的一些公共信息,如数据类型的定义。实体语句是每一个设计实体接口的公共部分。实体语句只能由以下并行语句组成:并行断言语句、并行过程调用语句和被动进程语句。这些实体语句部分必需是被动语

11、句,即在语句中不含有赋值语句。3.3 实体阐明部分ENTITY ram ISGENERIC(delay_time: time:=5ns);PORT(addr: IN std_logic_vector(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实例作用:作用:实体的

12、实现。即阐明电路执行什么动作实体的实现。即阐明电路执行什么动作或实现功能。或实现功能。定义格式:定义格式:ARCHITECTURE ARCHITECTURE OF OF IS IS 构造体声明语句构造体声明语句;BEGINBEGIN ;END ARCHITECTURE END ARCHITECTURE ;4、构造体位于实体之后。实体和构造体的编译是有先后顺序的,只需编译了实体阐明以后,才干对构造体进展编译。假照实体阐明需求重新编译,那么相应的构造体也需求重新编译。每个实体阐明可以对应多个构造体,每个构造体对应着设计实体不同的构造和算法实现方案。普通来说,每个实体对应的各个构造体的位置是同等的,

13、都用来完好地实现构造体的详细功能。同一个构造体不能被不同的设计实体所共有。构造体1.1.构造体命名:构造体命名:2.2.遵照标识符的命名规那么,普通建议按遵照标识符的命名规那么,普通建议按照一定的惯例进展命名:照一定的惯例进展命名:3.3. behavioral/behave behavioral/behave-行为描画方式行为描画方式4.4.dataflow/rtldataflow/rtl-数据流描画方数据流描画方式式5.5.structural/structurestructural/structure-构造化描画方构造化描画方式式6.6.boolbool-用数学表达方式用数学表达方式7.

14、7.latchlatch-功能功能2.2.构造体声明语句:构造体声明语句:3.3.对构造体内部所运用的信号、变量、常对构造体内部所运用的信号、变量、常数、元件、子程序声明等进展定义。和实体中端数、元件、子程序声明等进展定义。和实体中端口阐明一样,也应该含有信号称号和数据类型的口阐明一样,也应该含有信号称号和数据类型的阐明,但由于所定义的信号是构造体内部运用的阐明,但由于所定义的信号是构造体内部运用的信号,因此不需求进展端口方式的阐明。定义格信号,因此不需求进展端口方式的阐明。定义格式如下:式如下:4.4.SIGNAL neslSIGNAL nesl: bit; bit;5.5.并行描画语句:并

15、行描画语句:6.6.构造体中主要包括进程语句、信号赋值构造体中主要包括进程语句、信号赋值语句、块语句、子程序调用语句和元件例化语句语句、块语句、子程序调用语句和元件例化语句等。等。行为描画方式:行为描画方式:对设计实体的数学模型的描画,是一种对设计实体的数学模型的描画,是一种笼统描画不针对器件,不思索实体的电路组织笼统描画不针对器件,不思索实体的电路组织和门级实现,是整体设计功能的定义,高层次和门级实现,是整体设计功能的定义,高层次描画。只需留意正确的实体行为,准确的数学模描画。只需留意正确的实体行为,准确的数学模型和准确的输出结果。型和准确的输出结果。存放器传输数据流描画方式:存放器传输数据

16、流描画方式:按照从信号到信号的存放器传输途径行按照从信号到信号的存放器传输途径行使进展描画的方式。优点在于很容易进展逻辑综使进展描画的方式。优点在于很容易进展逻辑综合,缺陷是硬件程度要求较高。合,缺陷是硬件程度要求较高。构造描画方式:构造描画方式:在层次化构造设计中,高层次的设计模在层次化构造设计中,高层次的设计模块调用低层次的设计模块,或者直接用门电路设块调用低层次的设计模块,或者直接用门电路设计单元来构成一个复杂的逻辑电路的描画方法。计单元来构成一个复杂的逻辑电路的描画方法。采用构造描画方式时,假设想要援用库中不存在采用构造描画方式时,假设想要援用库中不存在的模块或元件时,必需先创建。的模

17、块或元件时,必需先创建。构造体的三种描画方式一个完好VHDL电路设计必需有一个实体和对应的构造体,即实体和构造体对构成一个完好的VHDL设计一个实体可对应一个构造体或多个构造体,即一个实体可以有不同的描画方式。作用:当实体有多个构造体时,系统默许实体选用最后一个构造体,利用配置语句可以恣意选择采用哪一个构造体。定义格式: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

18、 bit);END and2;-实体定义实体定义ARCHITECTURE Na OF and2 IS BEGINc = 0 WHEN a=0 AND b = 0 ELSE 0 WHEN a=1 AND b = 0 ELSE 0 WHEN a=0 AND b = 1 ELSE 1; END Na; -构造体构造体Na 输入与门输入与门abcVHDL程序举例1ARCHITECTURE Nb OF and2 IS BEGIN c = a AND b; END Nb; -构造体构造体NbCONFIGURATION s1 OF and2 ISFOR NaEND FOR;END CONFIGURATION

19、 s1;-构造体配置终了构造体配置终了VHDL程序举例2全加器LIBRARY IEEE;USE IEEE.std_logic_1164.all;ENTITY fa IS PORT (a,b,ci: IN std_logic; s,co : OUT std_logic);END fa;ARCHITECTURE dat1 OF fa ISBEGINs=a XOR b XOR ci;co=(a AND b) OR (a AND ci) OR (b AND ci);END dat1;为了使设计可以更直接地反映晶体管电路的构成,应该将异或门用根本的与门和或门替代: ARCHITECTURE dat2 O

20、F fa ISBEGIN s=(a AND b AND ci) OR (a AND (NOT b) AND (NOT ci) OR (NOT a) AND b AND (NOT ci) OR (NOT a) AND (NOT b) AND ci); co=(a AND b) OR (a AND ci) OR (b AND ci);END dat2;为了减少晶体管的运用量,思索两个输出函数的公共部分,可以将输出改写为: ARCHITECUTRE dat3 OF fa ISSIGNAL c:std_logic;BEGIN c=(a AND b) OR (a AND ci) OR (b AND ci); co=c; s=(a AND b AND ci) OR (a OR b OR ci)AND (NOT c);END dat3;最后,配置构造体:CONFIGURATION s1 OF fa ISFOR dat3END FOR;END CONGIURATION s1; -构造体配置终了

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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