《数据类型数据对象》ppt课件

上传人:tia****nde 文档编号:69673645 上传时间:2019-01-14 格式:PPT 页数:30 大小:512.32KB
返回 下载 相关 举报
《数据类型数据对象》ppt课件_第1页
第1页 / 共30页
《数据类型数据对象》ppt课件_第2页
第2页 / 共30页
《数据类型数据对象》ppt课件_第3页
第3页 / 共30页
《数据类型数据对象》ppt课件_第4页
第4页 / 共30页
《数据类型数据对象》ppt课件_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《数据类型数据对象》ppt课件》由会员分享,可在线阅读,更多相关《《数据类型数据对象》ppt课件(30页珍藏版)》请在金锄头文库上搜索。

1、4 VHDL语言的数据类型 及运算操作符,数据对象,数据类型,运算操作符,4.1 数据对象(Data Object)及其分类,凡是可以赋予一个值的对象称为数据对象。,数据对象,类(CLASS):信号( signal ),变量( variable ),常量( constant ),类型(DATA TYPES):位、位矢量、std、整数、实数等,例: 类 对象 数据类型 signal a: bit;,数据对象的分类:信号、变量、常数。,常数:表示物理设计中那些不变的量,信号:表示物理设计中的某一条硬件连接线,也可以表示寄存器。,变量:电路暂存某些值的载体,数据对象的特征:允许被赋值、具有一定的数据

2、类型,对象仅在其说明区域可见,区域外不可见,例:作用域为整个构造体的客体的定义 ARCHITECTURE rtl Of name IS SIGNAL a:BIT; BEGIN . END rtl;,在构造体中的任何位置,都可以使用这个信号a。,4.1.1 常数:在设计描述之中不会变化的值,CONSTANT 常数名:数据类型:=表达式;,常数所赋的值应和所定义的数据类型一致,例:CONSTANT Vcc:real:=“0101”;,错误,因为所赋的值与所定义的数据类型不一致,一个为实数,一个为位矢量。,物理含义:可以代表数字电路中的电源、接地、计数器模值等,例:CONSTANT Vcc:real

3、:=5.0;,4.1.2 变量(variable),变量仅仅用于进程和子程序,是一个局部量,作用范围仅限于定义该变量的模块。,说明格式如下:,VARIABLE 变量名:数据类型:=表达式;,变量的赋值采用“:=”,赋值后立即生效。,例:变量在定义时赋值 VARIABLE B:INTEGER:=1;,变量可以在定义时被赋初值;也可以在进程中被赋值,例:变量在进程中被赋值,PROCESS() variable A:BIT_VECTOR; BEGIN . A:=”01010”; . END PROCESS;,对于综合来说,变量通常用于计算的目的,但它的综合比较难于定义,或者综合后占用大量的资源。因此

4、,在设计中尽量避免采用变量。除非在那些我们有信心可预言结果的场合。,4.1.3 信号(signal),信号能够代表连线,是电子电路内硬件连接的抽象 声明内部信号,没有数据流动方向,SIGNAL 信号名:数据类型 :=表达式;,例:SIGNAL COUNT:BIT:=0;,信号在定义时赋初值,用“:=”代入符,在程序中,信号的赋值采用“=”代入符,例:SIGNAL S1,S2:STD_LOGIC; S2=1; S1=S2;,信号的代入可以附加延时,例如:signal count:bit:=0 after 10ns;,信号可以在程序中被重新赋值,4.2 运算操作符,按优先级的顺序依次(低到高)为:

5、 逻辑运算符(Logical) 关系运算符(Relational) 并置运算符(Concatenation) 算术运算符(Arithmetic)。,要求操作数的类型必须和操作符所要求的类型一致。,4.2.1 逻辑运算符(Logical),1、逻辑运算符(Logical),2、逻辑运算符的操作对象,“STD_LOGIC”; “BIT”; “STD_LOGIC_VECTOR”; “布尔量”(Boolean),没有优先级差别,按自左至右的优先级顺序运算。,例:下式去掉括号就会产生错误:,X=(A AND B) OR (NOT C AND D);,去掉括号:,X=A AND B OR NOT C AN

6、D D;,以上两式的运算次序是完全不同的。,逻辑运算符常用于书写逻辑表达式,例:entity and2 is port(a,b,c,d:in bit; q:out bit); end and2; architecture rtl of and2 is begin q=(a and b) or (c nand d); end rtl;,4.2.2 关系运算符(Relational),1、关系运算符( Relational ),2、操作对象,1)“=”和“/=”适用于所有类型的数据。,2)其它关系运算符则适用于 “STD_LOGIC”; “INTEGER”; “REAL”; “STD_LOGIC_

7、VECTOR”,比较时,按自左至右的比较结果作为运算结果。,例:下式比较就会产生错误,XY) THEN,上式比较结果为YX。显然错误。,关系运算符常用于条件的判断,例:最大值选取 library ieee; use ieee.std_logic_1164.all; entity max is port(a,b:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0); end max; architecture rtl of max is begin qb) else b; end rtl;,4.2.3 并置运算符(

8、Concatenation),并置运算符&:用于位的连接,操作对象,“STD_LOGIC”; “BIT”; “STD_LOGIC_VECTOR”; “BIT_VECTOR”; “STD_ULOGIC_VECTOR”;,例:a=”1010”; b=”1001”; c=a & b,结果为:c=”10101001”。,4.2.4 算术运算符(Arithmetic),对std_logic_vector类型的对象进行算术运算时,要用“use ieee.std_logic_unsigned”提前声明包集合,1 算术运算符,例:利用算术运算符设计一个矢量乘法器,library ieee; use ieee.

9、std_logic_1164.all; use ieee.std_logic_unsigned.all; entity mult is port(a,b:in std_logic_vector(3 downto 0); q:out std_logic_vector(7 downto 0); end mult; architecture rtl of mult is begin q=a * b; end rtl;,所有数据对象均需说明它的数据类型,包括:标准数据类型; 自定义数据类型,4.3 数据类型,标准的数据类型,整数(Integer):-2147483647(-231)2147483647

10、( 231) 32位有符号数,实数(Real):-1.0E+381.0E+38,书写时一定要有小数点,目前只能仿真,不能综合。,例:signal a: integer; . a=8;,例:signal a: real; . a=8.0;,位(Bit): 1和0 ,只代表一个位的两种取值。,位矢量(Bit-Vector):是位的一种组合类型。,例:signal a: bit; . a=1;,例:signal a: bit_vector(3 downto 0); . a=“0101”;,布尔量(Boolean): True和False。,例:signal a: boolean; . a=true;

11、,字符(Character):包括26个字母的大小写、09的数字、空格、特殊字符等等。,例:signal a: character; . a=a;,字符串(String):用双引号括起来的一组字符序列。,时间(TIME):是一个物理量数据。,例:signal a: string; . a=“work”;,例:signal a: time; . a=10 us;,自然数和正整数: 自然数(Natural) :大于或等于零的整数 正整数(Positive):大于零的整数,VHDL 的 标 识 符,第一个字符必须是字母;,最后一个字符不能是下划线;,不允许连续两个下划线;,VHDL的保留字不能用作标

12、示符;,大、小写字母等效。,entity 3encoder38 is port( a:in bit_vector(2 downto 0); y:out bit_vector(7 downto 0) ); end;,entity encoder38 is port( a:in bit_vector(2 downto 0); y:out bit_vector(7 downto 0) ); end;,错误的标识符,正确的标识符,VHDL 的 保 留 字,abs;access;after;alias;all;and;architecture;array;assert;attribute;begin;b

13、lock;body;buffer;bus;case;component; configuration;constant;disconnect;downto;else;elsif;end;entity;exit;file;for;function;generate;group;guarded; generic;if;impure;in;intertial;inout;library;linkage;literal;loop;map;mod;nand;new;next;nor;not;null; of;on ;open;or;thers;out;package;port;postponed;procedure; process;pure;range;record;register;reject;rem;report; return;rol;ror;select;severity;signal;shsred;sla;sll;sra; srl;subtype;then;to;transport;type;unaffected;units;untill; use;variablewait;when;while;with;xnor; xor,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号