- 0
- 0
- 约1.55万字
- 约 10页
- 2022-04-23 发布于四川
- 举报
数据对象/变量/信号与变量的区别 声明形式不同。信号声明关键字为SIGNAL;而变量为VARIABLE。 声明位置不同。信号声明在在子程序、进程外部;而变量在子程序、进程内部。 赋值符号不同。信号赋值符为“=”;变量赋值符为“:=”。 在进程中,信号赋值在进程结束时起作用,而变量赋值是立即起作用。即在一个进程中多次为一个信号赋值,只有最后一个会起作用,而当为变量赋值时,变量的值立即改变。 数据对象/变量/信号与变量的区别 例如: ARCHITECTURE ART OF SIG IS SIGNAL D:STD_LOGIC; BEGIN PROCESS(A,B,C) BEGIN D=A; X=C AND D; D=B; Y=C AND D; END PROCESS; END ART; ARCHITECTURE ART OF VAR IS BEGIN PROCESS(A,B,C) VARIABLE D:STD_LOGIC; BEGIN D:=A; X=C AND D; D:=B; Y=C AND D; END PROCESS; END ART; X=C AND B;Y=C AND B X=C AND A;Y=C AND B 数据对象/常量 常量——是一个固定的值,在整个仿真期间其值不能改变,一旦赋值就不能再改变。 常量说明格式如下: CONSTANT 常量名:类型说明:=表达式; 例如:CONSTANT STEP:INTEGER:=2; 常量一般在结构体描述、程序包说明、实体说明、过程说明、函数调用说明和进程说明中使用。 常量声明可以放在设计的任意位置,但作用范围不同。 全局常量:声明放在外部程序包内; 若限制再某个程序段内,则应该将声明放在相应的结构体、块、进程和子程序内。 数据类型 VHDL具有很强的数据类型,是一种强类型语言。 VHDL语言的数据类型的定义相当严格,不同类型之间的数据不能直接代入,即使数据类型相同,位长不同时也不能直接代入。 在VHDL标准中描述了四种数据类型:标量类型、复合类型、存取类型、文件类型。 在VHDL中,除了很多预定义的数据类型可直接使用外,用户还可以自定义数据类型。 预定义的VHDL数据类型在VHDL的标准程序包STANDARD和STD_LOGIC_1164及其它的标准程序包中作了定义,并可在设计中随时调用; 用户自定义的数据类型以及子类型的基本元素一般仍属于VHDL的预定义数据类型。 注意:VHDL综合器并不支持所有的预定义和自定义数据类型。如:REAL、TIME、FILE、ACCES等。 数据类型/VHDL预定义数据类型 VHDL预定义数据类型都是在VHDL标准程序包STANDARD种定义的,在使用时已经自动包含进VHDL的源文件中,所以不必通过USE语句调用。 布尔(BOOLEAN)数据类型——枚举类型 两种可能取值:TRUE(真)和FALSE(假) 预定义:TYPE BOOLEAN IS(FALSE,TRUE); 位(BIT)数据类型——枚举类型 两种可能取值:‘1’和‘0’ 预定义:TYPE BIT IS(‘0’,‘1’); 位矢量(BIT_VECTOR)数据类型——基于BIT类型的数组 预定义:TYPE BIT_VECTOR IS ARRAY(NATURAL)OF BIT; 使用位矢量必须注明位宽。 例如:SIGNAL ABUS:BIT_VECTOR(7 TO 0); 数据类型/VHDL预定义数据类型 字符(CHARACTER)数据类型 用‘’引起来,区分大小写。 整数(INTEGER)类型:正整数、负整数和零。 32位,最大取值范围:-231~231 VHDL仿真器——有符号处理; VHDL综合器——有符号处理。 自然数(NATURAL)和正整数(POSITIVE)数据类型 SUBTYPE NATURAL IS INTEGER RANGE 0 TO INTEGER’HIGH; SUBTYPE POSITIVE IS INTEGER RANGE 1 TO INTEGER’HIGH; 实数(REAL)数据类型:有正负,有小数点。 TYPE REAL IS RANGE -1.0E+38 TO +1.0e+38; 数据类型/VHDL预定义数据类型 字符串(STRING)数据类型 时间(TIME)数据类型——物理类型 物理单位定义格式: TYPE 物理类型名 IS 范围; UNITS 基本单位; 单位; END UNITS; 错误等级类型 数据类型/IEEE预定义标准逻辑位与矢量 在IEEE库的程序包STD_LOGIC_1164中定义了两个非常重要的数据类型。 标准逻辑位STD_LOGIC数据
原创力文档

文档评论(0)