欢迎来到天天文库
浏览记录
ID:48200358
大小:288.00 KB
页数:36页
时间:2020-01-15
《VHDL对象_数据类型和运算符.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据对象数据类型VHDL的运算符数据对象VHDL语言中,可以赋予一个值的对象就称为客体。客体主要包括以下三种:常量(CONSTANT)、变量(VARIABLE)、信号(SIGNAL)。1常量(CONSTANT)(常数)定义一个常数主要是为了使设计实体中的某些量易于阅读和修改。常数说明就是对某一常数名赋予一个固定的值。通常在程序开始前进行赋值,该值的数据类型在说明语句中说明。常数说明语句格式为:CONSTANT常数名:数据类型:=表达式;例如:CONSTANTVcc:REAL:=5.0;CONSTANTm
2、:STD_LOGIC_VECTOR(0TO3):=“1011”;CONSTANTDelay:TIME:=10ns;注:常量是一个恒定不变的值,一旦做了数据类型和赋值定义,它在程序中就不能再改变。2变量(VARIABLE)变量只能在进程和子程序中用,是一个局部量,不能将信息带出对它做出定义的当前设计单元。与信号不同,变量的赋值是理想化数据传输,其赋值是立即生效的,不存在任何的延时行为。变量定义语句的格式为:VARIABLE变量名:数据类型约束条件:=初始值;例如:VARIABLEnum:INTEGERRA
3、NGE0TO127:=20;VARIABLEm,n:INTEGER;变量赋值语句的格式为:变量名:=表达式;赋值语句“:=”右边的表达式必须与目标变量具有相同的数据类型,这个表达式可以是一个运算表达式也可以是一个数值。变量赋值语句左边的目标变量可以是单值变量,也可以是变量的集合。例如定义变量:VARIABLEa,b:REAL;VARIABLEx,y:BIT_VECTOR(0TO7);a:=11.0;x(0to5):=y(2to7);3信号(SIGNAL)信号是电子电路内部硬件连接的抽象,它的性质类似于连
4、接线。它可以作为设计实体中的并行语句模块间交流信息的通道。信号及其相关的延时语句明显地体现了硬件系统的特征。信号定义语句的格式为:SIGNAL信号名:数据类型:=初始值;例如:SIGNALgnd:BIT:=‘0’;SIGNALdata:STD_LOGIC_VECTOR(7DOWNTO0);信号赋值语句表达式为:信号名<=表达式;符号“<=”表示赋值操作,即将数据信息传入。数据信息传入时可以设置延时过程,这与器件的实际传播延时十分接近。因此信号值的代入采用“<=”代入符,而不是像变量赋值时那样用“:=”。
5、但信号定义时初始赋值符号“:=”,即仿真的时间坐标是从赋初始值开始的。信号赋值语句举例:x<=y;a<=‘1’;D1<=D2AFTER10ns;注意:变量和信号都必须先定义,后赋值。注意赋值符“<=”和“:=”的差别。信号与变量的区别1、使用方式2、作用范围3、赋值符号4、赋值后的变化标准数据类型STD库的STANDARD包集预定义了位(BIT)、布尔(BOOLEAN)、整数(INTEGER)和实数(REAL)数据类型。不需要USE语句显示调用整数(INTEGER)整数与数学中整数的定义相似,可以使用预
6、定义运算操作符,如加“+”、减“-”、乘“×”、除“÷”进行算术运算。在VHDL语言中,整数的表示范围为-2147483647~2147483647,即从-(231-1)到(231-1)。实数(REAL)实数有正负数,书写时一定要有小数点。例如:-1.0,+2.5,-1.0E+38位(BIT)数据类型有2种取值:‘0’和‘1’。例如:这两种数据类型的信号可作如下声明:SIGNALx:BIT;--将x声明为位(BIT)数据类型的信号SIGNALy:BIT_VECTOR(3DOWNTO0);--将y声明为位
7、矢量SIGNALz:BIT_VECTOR(0TO3);--将z声明为位矢量(BIT_VECTOR)数据类型的信号,位宽4位,最右边的一位是最高位(MSB)位(BIT)数据类型和位矢量(BIT_VECTOR)数据类型的信号的赋值:x<=‘1’;--位(BIT)数据类型的值应放在单引号之中y<=“1000”;--位矢量(BIT_VECTOR)数据类型的值应放在双引号之中,这里MSB=’1’z<=“1110”;--这里MSB=’0’y<=X“8”;--采用十六进制y<=O“10”;--采用八进制位串是被双引号
8、引起来的扩展的数字序列,格式:基数说明符“数字字符串”。基数符有“B”、“O”、“X”,他们的含义如下。B:二进制基数符号,表示二进制位0或1,在字符串中每一个位表示一个BIT。O:八进制基数符号,在字符串中每一个数代表一个八进制数,即代表一个3位(BIT)的二进制数。X:十六进制基数符号,代表一个十六进制数,即代表一个4位二进制数。例如:B“0001_1011”,O“207”,X“A0F”位串:VHDL语言中用于表示位矢量STD_LOGI
此文档下载收益归作者所有