网站搜索:
第2节 VHDL的基本语法结构(2)
文章出处:与非网
更新于2008-05-18 03:00:15

第2节 VHDL的基本语法结构(2)

数据类型

  • 标量类型
    --整数类型、浮点类型、枚举类型、物理类型
  • 复合类型
    --数组类型:由相同类型的标量元素组成
    --记录类型:由不同类型的标量元素组成
  • 存取类型、文件类型、子类型

    整数类型

  • 保留字:INTEGER
  • 范围为-214783647到214783647(232)
  • 整数不是位矢量,不能对整数进行按位访问,不能对整数使用逻辑运算符;
  • 需要综合时,要对范围加以限制;
  • 仿真器通常将整数作为有符号数处理;而综合器则将它们作为无符号数处理;
    VARIABLE Tmp : Integer range –255 To 255;

    浮点类型

  • 保留字:REAL
  • 范围为:-1.0E38到1.0E38
  • 主要用于仿真,综合器通常不支持该类型

     枚举类型

  • 保留字:TYPE
    --TYPE States IS (S1,S2,S3,S4)
  • Bit和Boolean
    -- TYPE Bit IS (‘0’,’1’);
    --TYPE Boolean IS (‘False’,’True’)
  • Std_Ulogic和Std_Logic
    --TYPE Std_Ulogic IS (‘U’,’X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-’)
    --SUBTYPE Std_Logic IS resolved Std_Ulogic
  • Std_Ulogic_Vector和Std_Logic_Vector
  • 典型应用:
    --处理器所有指令
    --状态机中的状态

    物理类型

  • 保留字:TIME
    TYPE TIME IS RANG –2147483647 TO 2147483647
    UNITS fs;
    ps=1000 fs;
    ns=1000 ps;
    us=1000 ns;
    ms=1000 us;
    sec=1000 ms;
    min=60 sec;
    hr=60 min;
    END UNITS;
  • 只对仿真有意义。
  • 用户可创建新的物理类型,如电压、电流等

    数组类型

  • 由相同类型的多个标量元素组成,即同构复合类型;
  • 分一维数组、二维数组、多维数组;
  • 分限定性数组和非限定性数组

    TYPE Bit_Vector IS ARRAY (Natural RANGE<>) OF Bit;
    TYPE Word IS ARRARY (31 downto 0) OF Bit;
    TYPE String IS ARRARY (Positive RANGE<>) OF Character;

    SIGNAL address : IN Bit_Vector(15 downto 0);

    记录类型

  • 由不同类型的标量元素组成的集合,即异构复合类型;

    存取类型,文件类型

  • 存取类型
    --即一种指针类型
    --保留字:LINE (指向字符串值的指针)
    --一般很少用到
    --只有变量才可以声明为存取类型 VARIABLE line_buffer : Line
  • 文件类型
    --保留字:TEXT
    --很少用到

    自定义类型和子类型

  • 保留字:TYPE和SUBTYPE
  • 子类型:对已经存在的数据类型作一些范围限制而形成的新的数据类型。
    SUBTYPE natural IS integer range 0 to +2147483647

数据类型的转换

  • 在VHDL中,数据类型的定义十分严格,赋值时必须保证数据类型的一致性。为了使不同类型的对象之间能够进行赋值和运算,需要先进行数据类型的转换。
  • 函数转换法:
    --to_stdlogicvector(), to_bitvector(), conv_integer(),
    --加上程序包说明语句
  • 类型标识符转换法:
    --如a:=(integer)b; b:=(real)a;
  • 常量转换法:
    --作一个常量表格

<<上一节      下一节>> 



关于OpenHW | OpenHW使用说明 | FAQ | 相关法律 | 版权声明 | 网站地图
联系邮件:xiaoquan@eefocus.com  联系电话: 010-58859035-8012
Powered by eefocus.com