欢迎来到天天文库
浏览记录
ID:52046860
大小:498.00 KB
页数:87页
时间:2020-03-31
《硬件描述语言教程(part I).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VHDL语言目录概述第一章VHDL的程序结构和软件操作第二章数据类型与数据对象的定义第三章并行赋值语句第四章顺序赋值语句第五章组合逻辑电路的设计第六章时序逻辑电路的设计第七章子程序、库和程序包第八章CPLD和FPGA的结构与工作原理第九章数字钟电路的设计第一章VHDL的程序结构和软件操作1-1VHDL程序的基本结构1-1VHDL程序的基本结构include“stdio.h”;include“math.h”;intmain(void){inta,b,c;a=8;b=9;c=a+b;returnc;}Librarystd;Usestd.standard.all;Entityand2i
2、sPort(a,b:inbit;c:outbit);Endand2;Architecturea1ofand2isBeginc<=aandb;Enda1;VHDL程序C程序1-1VHDL程序的基本结构(1)LIBRARY和PACHAGE声明区;(2)ENTITY定义区;(3)ARCHITECTURE定义区;(4)CONFIGURATION定义区。Library(库)是用于存放预先编译好的Package(程序包)。Package(程序包)中定义了基本的常数,数据类型,元件及子程序等。作用:声明在实体和结构体定义中将用到的数据类型、元件或子程序等。声明格式:Library库名;Use库
3、名.PACKAGE名.All;(1)LIBRARY和PACKAGE声明区作用:ENTITY(实体)用于定义电路的外观,即I/O端口的类型和数量。定义格式:Entity实体名isPort(a:inbit;b:inbit;c:outbit);End实体名;(2)ENTITY定义区端口名数据类型端口模式(2)ENTITY定义区标识符(如实体名)的定义原则:(1)标识符由字母、数字和下划线组成,a7_;(2)在标识符不区分大小写,ab和AB是一样的;(3)第一个字符必须是字母,即a666;(4)不允许有两个连续的下划线,a__b错误;(5)末尾不能是下划线,mname_错误;(6)标识符
4、不能和关键字相同,如Entity,is等。端口模式(MODE)有以下几种类型:IN;OUT;INOUT;BUFFER端口模式可用下图说明:(黑框代表一个设计或模块)INOUTBUFFERINOUT(2)ENTITY定义区(3)ARCHITECTURE定义区定义了实体的实现。即电路的具体描述,说明电路执行什么动作或实现功能。定义格式:Architecture结构体名of实体名is[声明语句;(内部信号、常数,元件,子程序声明)]Begin并行描述语句;End结构体名;(4)CONFIGURATION定义区一个完整VHDL电路设计必须有一个实体和对应的结构体,即实体和结构体对构成一个
5、完整的VHDL设计。一个实体可对应一个结构体或多个结构体,即一个实体可以有不同的描述方式。作用:当实体有多个结构体时,系统默认实体选用最后一个结构体,利用CONFIGURATION语句可以任意选择采用哪一个结构体。(4)CONFIGURATION定义区定义格式:Configuration配置名of实体名isfor选用的结构体名endfor;endconfiguration配置名;二输入与门电路设计范例abc电路真值表abc000100010111二输入与门电路设计范例Librarystd;Usestd.standard.all;Entityand2isPort(a:inbit;b
6、:inbit;c:outbit);Endand2;--实体定义结束。双减号--为VHDL程序的注释符,类似C语言中的//注释符。二输入与门电路设计范例ArchitectureNaofand2isBeginc<=’0’whena=’0’andb=‘0’else’0’whena=’1’andb=‘0’else’0’whena=’0’andb=‘1’else‘1’;符号<=为信号直接赋值符。EndNa;--结构体NaArchitectureNbofand2isBeginc<=aandb;--and为逻辑与操作EndNb;--结构体Nb二输入与门电路设计范例Configurations1
7、ofand2isfornaendfor;endconfigurations1;--结构体配置结束。第二章数据类型与数据对象的定义2-1数据类型2-2数据对象的定义2-3信号运算符2-4信号属性2-1数据类型在VHDL程序中,我们经常会遇到这样的语句:SignalA:std_logic;VariableB:std_logic_vector(7downto0);ConstantC:integer;数据对象类型数据类型数据对象名2-1-1逻辑数据类型(1)布尔代数(Boolean)型;
此文档下载收益归作者所有