1、VHDLVHDLVHDLVHDL数据类型数据类型数据类型数据类型EDA技术实用教程 数据类型数据类型 标量型标量型(Scalar Type):包括实数类型、整数类型、枚举类型、时间类型。包括实数类型、整数类型、枚举类型、时间类型。复合类复合类型型(Composite Type)Composite Type):可可以以由由小小的的数数据据类类型型复复合合而而成成,如如可可由由标标量量型型复复合合而而成成。复复合合类型主要有数组型类型主要有数组型(Array)Array)和记录型和记录型(Record)Record)。存取类型存取类型(Access Type)Access Type):为给定的数据类型的数据对象提供存取方式。为给定的数据类型的数据对象提供存取方式。文件类型文件类型(Files Type)Files Type):用于提供多值存取类型。用于提供多值存取类型。1.1 VHDL的预定义数据类型的预定义数据类型 1.布尔布尔(BOOLEAN)数据类型数据类型 2.位位(BIT)数据类型数据类型 TYPE BOOLEAN IS(FALSE,TRUE)TYPE BIT IS(0,1)数据
2、类型数据类型 1.1 VHDL的预定义数据类型的预定义数据类型 3.位矢量位矢量(BIT_VECTOR)数据类型数据类型 4.字符字符(CHARACTER)数据类型数据类型 TYPE BIT_VECTOR IS ARRAY(Natural Range )OF BIT;5.整数整数(INTEGER)数据类型数据类型 数据类型数据类型 1.1 VHDL的预定义数据类型的预定义数据类型 6.实数实数(REAL)数据类型数据类型 7.字符串字符串(STRING)数据类型数据类型 1.0十进制浮点数十进制浮点数 0.0十进制浮点数十进制浮点数 65971.333333十进制浮点数十进制浮点数 65_971.333_3333与上一行等价与上一行等价 8#43.6#e+4八进制浮点数八进制浮点数 43.6E4十进制浮点数十进制浮点数VARIABLE string_var:STRING(1 TO 7);string_var:=a b c d;数据类型数据类型 8.时间时间(TIME)数据类型数据类型 TYPE time IS RANGE 2147483647 TO 2147483647 units f
3、s;-飞秒,飞秒,VHDL中的最小时间单位中的最小时间单位 ps=1000 fs;-皮秒皮秒 ns=1000 ps;-纳秒纳秒 us=1000 ns;-微秒微秒 ms=1000 us;-毫秒毫秒 sec=1000 ms;-秒秒 min=60 sec;-分分 hr=60 min;-时时end units;1.1 VHDL的预定义数据类型的预定义数据类型 1.2 IEEE预定义标准逻辑位与矢量预定义标准逻辑位与矢量 1.标准逻辑位标准逻辑位STD_LOGIC数据类型数据类型 2.标准逻辑矢量标准逻辑矢量(STD_LOGIC_VECTOR)数据类型数据类型 TYPE STD_LOGIC_VECTOR IS ARRAY(NATURAL RANGE )OF STD_LOGIC;TYPE BOOLEAN IS(FALSE,TRUE)数据类型数据类型 1.3 其他预定义标准数据类型其他预定义标准数据类型 1.无符号数据类型无符号数据类型(UNSIGNED TYPE)LIBRARY IEEE;USE IEEE.STD_LOIGC_ARITH.ALL;VARIABLE var:UNSIGNED(0 TO
4、 10);SIGNAL sig:UNSIGNED(5 TO 0);数据类型数据类型 1.3 其他预定义标准数据类型其他预定义标准数据类型 2.有符号数据类型有符号数据类型(SIGNED TYPE)SIGNED(0101)代表代表+5,5SIGNED(1011)代表代表 5VARIABLE var:SIGNED(0 TO 10);数据类型数据类型 1.4 数组类型数组类型 TYPE 数组名数组名IS ARRAY(数组范围数组范围)OF数据类型数据类型;TYPE stb IS ARRAY(7 DOWNTO 0)of STD_LOGIC;TYPE x is(low,high);TYPE data_bus IS ARRAY(0 TO 7,x)of BIT;TYPE 数组名数组名IS ARRAY(数组下标名数组下标名RANGE)OF 数据类型数据类型;数据类型数据类型 【例【例8-13】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY amp IS PORT(a1,a2:IN BIT_V
5、ECTOR(3 DOWNTO 0);c1,c2,c3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);b1,b2,b3:INTEGER RANGE 0 TO 15;d1,d2,d3,d4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END amp;d1=TO_STDLOGICVECTOR(a1 AND a2);-(1)d2 =CONV_STD_LOGIC_VECTOR(b1,4)WHEN CONV_INTEGER(b2)=9 else CONV_STD_LOGIC_VECTOR(b3,4);-(2)d3 =c1 WHEN CONV_INTEGER(c2)=8 ELSE c3;-(3)d4 =c1 WHEN c2=8 else c3;-(4)【例【例8-14】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY decoder3to8 IS PORT(input:IN STD_LOGIC_VECTOR(2 DOWNTO 0);output:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END decoder3to8;ARCHITECTURE behave OF decoder3to8 IS BEGIN PROCESS(input)BEGIN output 0);output(CONV_INTEGER(input)result(i):=0;WHEN 1|H=result(i):=1;WHEN OTHERS=result(i):=xmap;END CASE;END LOOP;RETURN result;END;谢谢观看!谢谢观看!谢谢观看!谢谢观看!EDA技术实用教程
《VHDL 数据类型(电子信息)》由会员早晚分享,可在线阅读,更多相关《VHDL 数据类型(电子信息)》请在金锄头文库上搜索。