欢迎来到天天文库
浏览记录
ID:45658637
大小:1008.50 KB
页数:51页
时间:2019-11-15
《《讲数据类型》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章数据类型预定义的数据类型用户定义的数据类型子类型数组端口数组记录类型有符号数和无符号数数据类型转换要求设计实体中的每一个常数、信号、变量、函数以及设定的各种参量都必须具有确定的数据类型,并且相同数据类型的量才能互相传递和作用。1指在IEEE1076和IEEE1164标准中预先定义的一系列数据类型,可以在包集/库中找到。std库的standard包集:BIT、BOOLEAN、INTEGER、REAL数据类型;ieee库的std_logic_1164包集:STD_LOGIC、STD_ULOGIC
2、数据类型;ieee库的std_logic_arith包集:SIGNED、UNSIGNED数据类型;数据类型转换函数conv_integer(p),conv_unsigned(p,b)等;ieee库的std_logic_signed和std_logic_unsigned包集:一些函数,将STD_LOGIC_VECTOR类型数据进行类似SIGNED、UNSIGNED类型数据的运算;3.1预定义的数据类型21)BIT(位,表示一位的信号值,位值为‘0’或‘1’)和BIT_VECTOR(位矢量,表示一组位
3、数据)。声明:SIGNALX:BIT;SIGNALY:BIT_VECTOR(3DOWNTO0);SIGNALW:BIT_VECTOR(0DOWNTO3);注意:最高位MSB(MostSignificantBit)的顺序!赋值:X<=‘1’;----单引号!Y<=“1001”;----双引号!32)STD_LOGIC和STD_LOGIC_VECTOR:这两者是IEEE1164标准中引入的8逻辑值系统。std_logic_vector类型是由std_logic构成的数组。定义如下:typestd_lo
4、gic_vectorisarray(naturalrange<>)ofstd_logic;赋值的原则:相同位宽,相同数据类型。定义8种数字逻辑值的原因:由std_logic类型代替bit类型可以完成电子系统的精确模拟,并可实现常见的三态总线电路。4两个或以上数字逻辑电路的输出端连接到同一个节点时(称为“线与”现象!),节点的电平该如何取值?典型案例:总线!1EN1ENAY11EN2ENBY21EN3ENCY3总线驱动能力强的电路可以将节点电平强行拉高或拉低,因此需建立多值逻辑系统加以细分。节点的电
5、平取值取决于:两者或多者当前的输出电平值;两者的驱动能力强弱。X:‘强’不确定值;W:‘弱’不确定值;0:‘强’0;L:‘弱’0;1:‘强’1;H:‘弱’1;Z:高阻态(三态缓冲器,常用于总线设计)-:不可能出现的情况58逻辑值系统数值关系表数值关系归纳:X或-与其它数值连接时,最终电平取值均为X;Z与其它数值连接时,最终电平取值均为其它数值;与X类似,W与L/H数值连接时,最终电平取值均为W;0与1、L与H连接时,最终电平取值分别为X、W;多个输出连接到同一个节点上时,节点的电平取值:6STD_
6、LOGIC_VECTOR类型数据的算术运算操作STD_LOGIC_VECTOR类型数据不能直接进行算术运算。通过声明ieee库中的std_signed和std_logic_unsigned这两个包集,该类型数据即可进行算术运算。例:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_unsigned.all;signala,b:INSTD_LOGIC_VECTOR(7DOWNTO0);signalc:OUTSTD_LOGIC_VECTO
7、R(7DOWNTO0);c<=a+b;73)STD_ULOGIC和STD_ULOGIC_VECTOR:比STD_LOGIC类型多引入了一个逻辑值‘U’,代表初始不定值。但没有指定两个STD_ULOGIC信号连接到同一个节点上发生冲突后的逻辑值,因此要避免两个输出信号直接进行连接的情况。84)布尔类型(boolean)布尔量具有两种状态:false和true常用于逻辑函数,如相等(=)、比较(<)等中作逻辑比较。如,bit值转化成boolean值:boolean_var:=(bit_var=‘1’)
8、;5)字符(CHARACTER):用单引号将字符括起来。variablecharacter_var:character;......Character_var:=‘A’;96)整数(integer)integer表示所有正的和负的整数。硬件实现时,利用32位的位矢量来表示。可实现的整数范围为:-(231-1)to(231-1)VHDL综合器要求对具体的整数作出范围限定,否则无法综合成硬件电路。如:signals:integerrange0to15;信号s的取值范围是0-15,可用4
此文档下载收益归作者所有