第5讲VHDL语言要素1.ppt

第5讲VHDL语言要素1.ppt

ID:48253489

大小:210.50 KB

页数:42页

时间:2020-01-18

第5讲VHDL语言要素1.ppt_第1页
第5讲VHDL语言要素1.ppt_第2页
第5讲VHDL语言要素1.ppt_第3页
第5讲VHDL语言要素1.ppt_第4页
第5讲VHDL语言要素1.ppt_第5页
资源描述:

《第5讲VHDL语言要素1.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第5讲VHDL语言要素(1)本讲知识点:VHDL文字规则VHDL的对象VHDL标准数据类型1VHDL语言要素VHDL的文字规则与其他计算机高级语言一样,VHDL也有自己的文字规则1.基本标识符标识符主要用来为端口、信号、变量、子程序、常数和参数等命名。2有效的字符:包括26个大小写英文字母,数字包括0~9以及下划线“_”任何标识符必须以英文字母开头下划线“_”的前后必须有英文字母或数字标识符中的英语字母不分大小写标识符的命名不能与保留字(关键字)相同其规则如下:例:_Decoder_1,2FFT,sig_#n,returnDecoder_1,FFT,sig_

2、n,Not_ACK32.扩展标识符(93标准):以反斜杠来界定,免去了87标准中基本标识符的一些限制。可以以数字打头, 允许包含图形符号, 允许使用VHDL保留字, 区分字母大小写等。如:74LS163、Sig_#N、entity、ENTITY4注意:写程序时,应用关键字时用大写,定义的标识符用小写。或者关键字用小写,定义的标识符用大写,以便于区分。3.结束标志与注释每个逻辑行以一个分号作为结束标志。注释语句用“--”开始到本行结束的一段文字来进行一段的描述可以放在源程序中的任何位置。注释不是设计功能描述的一部分,所以不会被编译。5VHDL对

3、象VHDL是一种硬件描述语言,硬件电路的工作过程实际上是信号的传输和存储的过程,所以VHDL最基本的描述对象是信号。为了便于描述,还定义了另外三类数据对象:变量、常量和文件。1.常量(CONSTANT)定义:常量也称常数,是指在设计实体中不会发生变化的值。作用:增加了设计文件的可读性和可维护性。6常量定义的一般表述:CONSTANT常量名:数据类型:=表达式;例如:CONSTANTa,b:INTEGER:=2;注意:常量可以在程序包、实体说明、结构体和进程的说明区域进行说明。常量定义的同时进行赋初值,一旦被赋值就不能再改变常量所赋的值应与其所定义的数据类型一

4、致,否则出错7常量的使用范围取决于它被定义的位置:(1)程序包中定义的常量具有最大的全局化特性,可以用在调用此程序包的所有设计实体中;(2)设计实体中定义的常量,其有效范围为这个实体定义的所有的结构体;(3)设计实体中某一结构体中定义的常量只能用于此结构体;(4)结构体中某一单元定义的常量,如一个进程中,这个常量只能用在这一进程中。82.变量(VARIABLE)变量主要用于对暂时数据进行存储,它不能将信息带出对它作出定义的当前单元。定义变量的一般表述:VARIABLE变量名:数据类型[:=初始值];例:VARIABLEa:STD_LOGIC;VARIABLE

5、b,c:INTEGER:=2;VARIABLEcount1,count2,count3:INTEGERrange0to255:=0;9变量赋值格式:变量名:=表达式;例:a:=“1010101”;--------位矢量赋值b:=‘0’;---------位赋值x:=100.0;-------实数赋值注意:(1)赋值语句右边的表达式必须是一个与目标变量具有相同数据类型的数值。(2)变量是一个局部量,只能在进程和子程序中使用。10(3)变量定义的时候尽管可以直接赋初值,但系统往往忽略。建议变量对象定义后再进行赋值。(4)变量的赋值是一种理想化的数据传输,是立即发

6、生的,不存在任何延时的行为。11[例]VARIABLEx,y:REAL;VARIABLEa,b:BIT_VECTOR(0TO7);x:=100.0;--实数赋值,x是实数变量y:=1.5+x;--运算表达式赋值,y也是实数变量a:=b;a:=”1010101”;--位矢量赋值,a的数据类型是位矢量a(3TO6):=(‘1’,’1’,’0’,’1’);--段赋值a(0TO5):=b(2TO7);a(7):=’0’;--位赋值123.信号(SIGNAL)信号是描述硬件系统的基本数据对象,它是设计实体中并行语句模块间动态交换数据的手段。在物理上信号对应着硬件设计中

7、的一条连接线。它除了没有数据流动方向说明以外,其他性质与实体的端口(Port)概念一致。信号定义语句格式:SIGNAL信号名:数据类型[:=初始值];13例:SIGNALclk:std_logic:=‘0’;SIGNALa:integerrange0to15;SIGNALdata:std_logic_vector(15downto0);信号的使用和定义范围是实体、结构体和程序包。注意!信号定义的时候尽管可以直接赋初值,但系统往往忽略。建议信号对象定义后再进行赋值。14在程序中:(1)信号值的代入采用“<=”代入符,而且信号代入时可以附加延时。(2)变量赋值时

8、用“:=”,不可附加延时。(3)信号的初始赋值符号仍

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。