好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验五理论(三)vhdl数据类型.ppt

21页
  • 卖家[上传人]:ji****n
  • 文档编号:54477860
  • 上传时间:2018-09-13
  • 文档格式:PPT
  • 文档大小:376KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • VHDL数据类型,逻辑数据类型,数值数据类型,,,,布尔代数(Boolean)型,位(Bit),位矢量(Bit_Vector),标准逻辑型(Std_Logic ),标准逻辑数组类型(Std_Logic_vector),整数(Integer),无符号(Unsigned)和有符号(Signed),字符串(STRING)数据类型,字符(CHARACTER)数据类型,时间(TIME)数据类型(仿真使用,不能综合),VHDL数据类型,1、逻辑数据类型,(1)布尔代数(Boolean)型,定义位置:在std库的standard程序包中进行定义取值:FALSE,TRUE;不能用于运算,只能通过关系运算符获得2)位(Bit),定义位置:在std库的standard程序包中进行定义取值:0,1,(低电平,高电平 ),(3)位矢量(Bit_Vector),定义位置:在std库的standard程序包中进行定义Signal A: bit_vector(0 to 7); Signal B: bit_vector(7 downto 0); A<=“00001010”; B<=“00001010”;,位矢量是基于“位”数据类型的数组,使用时要注意位宽。

      A(7)=0 A(6)=1 A(5)=0 A(4)=1 A(3)=0 A(2)=0 A(1)=0 A(0)=0 B(7)=0 B(6)=0 B(5)=0 B(4)=0 B(3)=1 B(2)=0 B(1)=1 B(0)=0,,(4)标准逻辑型(Std_Logic ),定义位置:在IEEE库的std_logic_1164程序包中进行定义,使用这类数据信号,必须包含下面两条声明语句:,Library IEEE; Use IEEE.std_logic_1164.all;,该类型能比较全面地包括数字电路中信号的几种状态,比位“bit”信号对于数字逻辑电路的逻辑特性描述更完整、更真实所以在VHDL的程序里,对于逻辑信号的定义,通常都是采用这个“标准逻辑”信号形式,不再使用“BIT”5)标准逻辑数组类型(Std_Logic_vector),定义位置:在ieee库的std_logic_1164程序包中进行定义Bit_Vector与Std_Logic_vector的区别在于数组的 每一位前者为BIT型(0,1)后者为Std_Logic型,Signal A: STD_LOGIC_VECTOR(0 to 7); Signal B: STD_LOGIC_VECTOR(7 downto 0); A<=“10100000”; B<=“00000101”;,逻辑数据类型赋值举例,Variable a , b : std_logic; Signal data : std_logic_vector(0 to 3); a: = ‘1’; b: = ‘0’; data<=“1100”;,一位值用单引号 多位值用双引号,1、直接整体赋值,2. 段赋值,Signal data : std_logic_vector(0 to 3); data(1 to 2) <=“10”; data(0) <=‘1’;,3. 块赋值,Signal a,b,c,d : std_logic; Signal data : std_logic_vector(3 downto 0); data<= “0100” ; (a,b,c,d) <=data ;,位置关联,2、数值数据类型,(1)整数(Integer)定义位置:在std库的standard程序包中进行定义。

      即数值范围为-231~231 (-2147483647 TO 2147483647 )整数不能用于逻辑运算,只能用于算术运算Signal day: integer range 0 to 31;Variable a,b,c: integer;,1.0 十进制浮点数 0.0 十进制浮点数 65971.3333333 十进制浮点数 65_971.333_3333 与上一行等价 8#43.6#e+4 八进制浮点数 43.6E-4 十进制浮点数,(2)实数 也称浮点数,(2)无符号(Unsigned)和有符号(Signed)类型,定义位置:有符号(Signed)和无符号(Unsigned) 定义在库IEEE的程序包std_logic_arith中符号位为1,其余位为该数绝对值的原码按位取反; 然后整个数加14)、字符串(STRING)数据类型,双引号引起来字符串数组,一般用于程序的提示和结果说明 VARIABLE string_yin : STRING (0 TO 3 ) ; string_yin := “a b c d“ ;,(3)、字符(CHARACTER)数据类型,单引号引起来,如:‘A’ ‘a’ 字符分大小写。

      ’A’不等于’a’,(5)、时间(TIME)数据类型(仿真使用,不能综合),TYPE time IS RANGE -2147483647 TO 2147483647 units fs ; -- 飞秒,VHDL中的最小时间单位 ps = 1000 fs ; -- 皮秒ns = 1000 ps ; -- 纳秒us = 1000 ns ; -- 微秒ms = 1000 us ; -- 毫秒sec = 1000 ms ; -- 秒min = 60 sec ; -- 分hr = 60 min ; -- 时 end units ;,Q<=a and b or c AFTER 10 ns;,3 用户自定义数据类型定义语句,TYPE语句用法如下:TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 ; 或 TYPE 数据类型名 IS 数据类型定义 ;,(1) 枚举类型(Enumerated)TYPE 数据类型名 IS (元素,元素,…) 例如: TYPE week IS (sun,mon,tue,wed,thr,fri,sat);用字符来代替数字,(2) 整数类型(Integer):限定范围,节省硬件资源。

      用户自定义的整数类型可认为是整数类型的一个子类格式:TYPE 整数类型名 IS 约束范围例如,如果由用户定义一个用于数码管显示的数据类型,则可写为:TYPE digit IS RANGE 0 TO 9;,,,(3) 数组(Array)数组是将相同类型的数据集合在一起所形成的一个新的数据类型,既可以是一维的,也可以是二维的数组定义的书写格式为: TYPE 数据类型名 IS ARRAY 范围 OF 原数据类型;如果范围这一项没有被指定,则使用整数数据类型;若需用整数类型外的其他数据类型,则在制定数据范围前加数据类型名该数组名称为data_bus,共有16个元素,下标分别是15、14、…、1、0,各元素可分别表示为dat_bus(15)、…、dat_bus(0)除了一维数组外,VHDL还可以定义二维、三维数组,如定义一个16个字节、每字节8位的存储空间的二维数组,可以定义为: TYPE ram_16x8 IS ARRAY (0 TO 15) OF STD_LOGIC_VECTOR(7 DOWNTO 0);,,,例如: TYPE dat_bus IS ARRAY (15 DOWNTO 0) OF BIT;,(4) 用户自定义子类型:用户对已定义的数据类型作一些范围限制。

      子类型定义的一般格式为: SUBTYPE 子类型名 IS 数据类型名[范围] 例如, SUBTYPE iobus IS STD_LOGIC_VECTOR(4 DOWNTO 0);,,,新结构的数据类型及子类型通常在程序包中定义,再由USE语句装载到描述语句中用SUBTYPE和TYPE这两种类型定义语句定义的数据类型有一个很重要的区别:TYPE定义的数据类型是一个“新”的类型,而SUBTYPE定义的数据类型是原类型的一个子集,仍属原类型,即SUBTYPE定义的某数据类型的子类型可以赋值给原类型的数据比如,有信号定义为: SIGNAL s_integ:INTEGER RANGE 0 TO 9; 有子类型定义为: SUBTYPE abc IS INTEGER RANGE 0 TO 9; 有“新”类型定义为: TYPE cde IS RANGE 0 TO 9; 有两个变量分别定义为上述的类型: VARIABLE sub_v:abc; VARIABLE typ_v:cde;,,,则赋值语句 s_integ <= sub_v; s_integ <= typ_v ;,,,s_integ <= sub_v;是正确的,因为sub_v是abc类型,而abc是整数类型的子类型,所以sub_v可以赋值给整数类型。

      但语句s_integ <= typ_v ;却是错误的,因为typ_v是cde类型,而cde是新的数据类型,所以虽然cde类型的范围也是0~9,但它不可以直接赋值给整数类型只有相同数据类型的端口信号和操作数才能相互作用。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.