数据类型数据对象.ppt

上传人:牧羊曲112 文档编号:6364966 上传时间:2023-10-21 格式:PPT 页数:30 大小:249.50KB
返回 下载 相关 举报
数据类型数据对象.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:=5.0;,4.1.2

3、 变量(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 运算操作符,按优先级的顺序依次(低到高)为:逻辑运算符(Logical)关系运算符(Re

5、lational)并置运算符(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 AND D;,以上两式的运算次序是完全不同的。,逻辑运算符常用于书

6、写逻辑表达式,例: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_VECTOR”,比较时,按自左至右的比较结果作为运算结果。,例:下式比较就会产生错误,

7、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 isbegin qb)else b;end rtl;,4.2.3 并置运算符(Concatenation),并置运算符&:用于位的连接,操作对象,“STD_LOGIC”;“BIT”;“

8、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.std_logic_1164.all;use;entity mult is port(a,b:in std_logic_ve

9、ctor(3 downto 0);q:out std_logic_vector(7 downto 0);end mult;architecture rtl of mult isbegin q=a*b;end rtl;,所有数据对象均需说明它的数据类型,包括:标准数据类型;自定义数据类型,4.3 数据类型,标准的数据类型,整数(Integer):-2147483647(-231)2147483647(231)32位有符号数,实数(Real):-1.0E+381.0E+38,书写时一定要有小数点,目前只能仿真,不能综合。,例:signal a:integer;.a=8;,例:signal a:re

10、al;.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;,字符(Character):包括26个字母的大小写、09的数字、空格、特殊字符等等。,例:signal a:character;.a=a;,字符串(String):用双引号括起来的一组字符序列。,时间(TIME):是一个物理量数据。,例:

11、signal a:string;.a=“work”;,例:signal a:time;.a=10 us;,自然数和正整数:自然数(Natural):大于或等于零的整数 正整数(Positive):大于零的整数,VHDL 的 标 识 符,第一个字符必须是字母;,最后一个字符不能是下划线;,不允许连续两个下划线;,VHDL的保留字不能用作标示符;,大、小写字母等效。,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

12、 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;block;body;buffer;bus;case;component;configuration;constant;disconnect;downto;else;elsif;end;entity;exit;file;for;function;generate;group;guar

13、ded;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备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号