VHDL数据类型_第1页
VHDL数据类型_第2页
VHDL数据类型_第3页
VHDL数据类型_第4页
VHDL数据类型_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-VHDL数据类型VHDL是一种强数据类型语言。要求设计实体中的每一个常数、信号、变量、函数以及设定的各种参量都必须具有确定的数据类型,并且相同数据类型的量才能互相传递和作用。VHDL数据类型分为四大类:1标量类型(SCALAR TYPE);2复合类型(COMPOSITE TYPE);3存取类型(ACCESS TYPE);4文件类型(FILES TYPE)又分为:1预定义数据类型、2用户自定义数据类型1、VHDL的预定义数据类型1)布尔量(boolean)布尔量具有两种状态:false 和 true常用于逻辑函数,如相等(=)、比较()等中作逻辑比较。如,bit 值转化成boolean 值:boolean_var := (bit_var = 1);2)位(bit)bit 表示一位的信号值。放在单引号中,如 0 或 1。3)位矢量 (bit_vector)bit_vector 是用双引号括起来的一组位数据。如: “001100”X“00B10B”4)字符(character)用单引号将字符括起来。variable character_var : character;. .Character_var : = A;5)整数(integer)integer 表示所有正的和负的整数。硬件实现时,利用32位的位矢量来表示。可实现的整数范围为:-(231-1) to (231-1)VHDL综合器要求对具体的整数作出范围限定,否则无法综合成硬件电路。如:signal s : integer range 0 to 15;信号 s 的取值范围是0-15,可用4位二进制数表示,因此 s 将被综合成由四条信号线构成的信号。6)自然数(natural)和正整数(positive)natural是integer的子类型,表示非负整数。positive是integer的子类型,表示正整数。定义如下:subtype natural is integer range 0 tointegerhigh;subtype positive is integer range 1 tointegerhigh;7)实数(REAL)或称浮点数取值范围:-1.0E38 - +1.0E38实数类型仅能用于VHDL仿真器,一般综合器不支持。8)字符串(string)string 是 character 类型的一个非限定数组。用双引号将一串字符括起来。如:variable string_var : string(1 to 7);string_var := “Rosebud”;9)时间(TIME)由整数和物理单位组成如:55 ms,20 ns10)错误等级(SEVERITY_LEVEL)仿真中用来指示系统的工作状态,共有四种:NOTE(注意)、WARNING(警告)、ERROR(出错)、FAILURE(失败)2、IEEE预定义标准逻辑位与矢量1)std_logic 类型由 ieee 库中的std_logic_1164 程序包定义,为九值逻辑系统,如下:(U,X,0,1,Z,W,L,H,-)U:未初始化的, X:强未知的,0:强0,1:强1,Z:高阻态,W:弱未知的,L:弱0,H:弱1,-:忽略由 std_logic 类型代替 bit 类型可以完成电子系统的精确模拟,并可实现常见的三态总线电路。2)std_logic_vector 类型由 std_logic 构成的数组。定义如下:type std_logic_vector is array(naturalrange) of std_logic;赋值的原则:相同位宽,相同数据类型。3、用户自定义类型用户自定义类型是VHDL语言的一大特色。可由用户定义的数据类型有:1)枚举类型、2)整数和实数类型、3)数组类型、4)记录类型、5)子类型用类型定义语句TYPE和子类型定义语句SUBTYPE实现用户自定义数据类型。TYPE语句格式:例:type byte is array(7 downto 0) of bit;variable addend : byte;type week is (sun, mon, tue, wed, thu,fri, sat);type 数据类型名is 数据类型定义of基本数据类型;SUBTYPE语句格式:例:subtype digits is integer range 0 to 9;由subtype 语句定义的数据类型称为子类型。subtype 子类型名 is 基本数据类型约束范围;1)枚举类型枚举该类型的所有可能的值。格式:如:type std_logic is(U,X,0,1,Z,W,L,H,-)如:type color is(blue,green,yellow, red);type my_logic is (0, 1, U, Z);variable hue : color;signal sig : my_logic;hue := blue;sig = Z;type 类型名称 is (枚举文字,枚举文字);枚举类型的编码:综合器自动实现枚举类型元素的编码,一般将第一个枚举量(最左边)编码为0,以后的依次加1。编码用位矢量表示 ,位矢量的长度将取所需表达的所有枚举元素的最小值。如:type color is(blue,green,yellow,red);编码为: blue=“00”;green=“01”;yellow=“10”;red=“11”;2)整数类型用户定义的整数类型是标准包中整数类型的子范围。格式:例:type my_integer is integer range 0 to 9;3)数组类型数组:同类型元素的集合。VHDL支持多维数组。多维数组的声明:type byte is array(7 downto 0) of bit;type vector is array(3 downto 0) of byte;限定数组、非限定数组、属性:type 类型名称 is range 整数范围;限定数组:其索引范围有一定的限制。格式:非限定数组:数组索引范围被定义成一个类型范围。格式:例:type bit_vector is array(integer range )of bit;variable my_vector:bit_vector (5 downto -5);type 数组名 is array(数组范围) of 数据类型;type 数组名 is array(类型名称 range ) of 数据类型;属性:VHDL为多种类型定义了属性。语法如下:对象属性VHDL为数组预先定义的属性:leftrighthighlowlengthrangereverse_range对应变量:variable my_vector : bit_vector (5 downto -5);各属性如下:my_vectorleft5my_vectorright-5my_vectorhigh5my_vectorlow-5my_vectorlength11my_vectorrange(5 downto -5)my_vectorreverse_range(-5 to 5)4)记录类型记录是不同类型的名称域的集合。格式如下:访问记录体元素的方式:记录体名.元素名type 记录类型名 is record元素名:数据类型名;元素名:数据类型名;endrecord;例:constant len:integer:= 8 ;subtype byte_vec is bit_vector(len-1 downto 0);type byte_and_ix is recordbyte : byte_vec;ix : integer range 0 to len;end record ;signal x, y, z : byte_and_ix ;signal data : byte_vec ;signal num : integer ;.x.byte = “11110000” ;x.ix = 2 ;data = y.byte ;num = y.ix ;z = x ;5)子类型子类型是已定义的类型或子类型的一个子集。格式:例:bit_vector 类型定义如下:type bit_vector is array (natural range )of bit;如设计中只用16bit;可定义子类型如下:subtype my_vector is bit_vector(0 to 15);注:子类型与基(父)类型具有相同的操作符和子程序。可以直接进行赋值操作。subtype 子类型名 is 数据类型名范围;4、数据类型转换VHDL是一种强类型语言,不同类型的数据对象必须经过类型转换,才能相互操作。1)类型转换函数方式通过调用类型转换函数,使相互操作的数据对象的类型一致,从而完成相互操作。library ieee;library dataio;use ieee.std_logic_1164.all;use dataio.std_logic_ops.all;entity cnt4 isport(clk: in std_logic;p: inout std_logic_vector(3 downto 0);end cnt4;architecture behv of cnt4 isbeginprocess(clk)beginif clkevent and c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论