170 likes | 362 Views
第六讲 VHDL 语言的数据类型及运算操作符. 主讲人:方跃春 长沙民政学院电子信息工程系. 复习--- VHDL 程序的结构. P30 例题-15 第一部分:库声明 LIBRARY STD; 第二部分:包集合声明 USE STD.STD_LOGIC.ALL; USE STD.STD_TTL.ALL;. 实体声明1 ENTITY inv IS PORT(a:IN BIT; b:OUT BIT); END inv;. 实体声明2 ENTITY and3 IS
E N D
第六讲 VHDL语言的数据类型及运算操作符 主讲人:方跃春 长沙民政学院电子信息工程系
复习---VHDL程序的结构 P30 例题-15 第一部分:库声明 LIBRARY STD; 第二部分:包集合声明 USE STD.STD_LOGIC.ALL; USE STD.STD_TTL.ALL;
实体声明1 ENTITY inv IS PORT(a:IN BIT; b:OUT BIT); END inv; 实体声明2 ENTITY and3 IS ORT(a1,a2,a3:IN BIT; o1:OUT BIT); END and3; 第三部分:实体声明
构造体描述1 ARCHITECTURE behave OF inv IS BEGIN b<=NOT(a)AFTER 5 ns; END behave; 构造体描述2 ARCHITECTURE behave OF and3 IS BEGIN o1<=a1 AND a2 AND a3 AFTER 5 ns; END behave; 第四部分:构造体描述
配置说明1 CONFIGURATION invcon OF inv IS FOR behave END FOR; END invcon; 配置说明2 CONFIGURATION and3con OF and3 IS FOR behave END FOR; END and3con; 第五部分:配置说明
新课内容 一、 VHDL语言的客体及其分类 二、VHDL语言的数据类型 三、VHDL语言的运算操作符
一、VHDL语言的客体及其分类(P33-34)1、客体的种类一、VHDL语言的客体及其分类(P33-34)1、客体的种类 客体-----可以赋予一个数值的对象(Object)。 1、变量(Variable) 用于暂时存放 运算的中间数据,属于局部量。如计数器的计数变量。 2、信号(Signal) 用于各模块之间传递数据(相当于连线,与端口类似,只是端口是外部的,而信号是内部的),属于全局量。 3、常数(Constant) 用于表示电路中固定的数值。如电源、地、时间等,既可做全局量,也可做局部量。。
2、客体的说明 客体在使用前必须进行说明,在哪里说明呢?又怎样说明呢?
3、客体说明举例 1、CONSTANT Vcc : REAL :=5.0; 2、CONSTANT DELAY : TIME :=100ns; 3、CONSTANT FBUS : BIT_VECTOR := “1101”; 4、SIGNAL GROUND : BIT := ‘0’; 5、SIGNAL X : INTEGER; 6、VARIABLE COUNT : INTEGER RANGE 0 TO 255:=10;
4、信号与变量的区别 (1)信号是全局量,而变量是局部量; (2)信号可生成实实在在的硬件连线,而变量只是存储运算中间数据; (3)信号的赋值符号是<=,而变量的赋值符号是:= ; (4)变量赋值立即生效,而信号赋值要等到进程结束或碰到WAIT语句才生效。
4、信号与变量的区别 例题:下面二个进程执行后输出结果有何不同? … PROCESS(A,B,C) VARIABLE D :STD_LOGIC_VECTOR (3 DOWNTO 0); BEGIN D:=A; X<=B+D; D:=C; Y<=B+D; END PROCESS; … … PROCESS(A,B,C,D) BEGIN D<=A; X<=B+D; D<=C; Y<=B+D; END PROCESS; …
二、VHDL语言的数据类型1、标准的数据类型 (1)整数(INTEGER):如+136,-457。 (2)实数(Real):如-1.0,+36.0。 (3)位(BIT):‘0’--表示逻辑0,‘1’—表示逻辑1。 (4)位矢量(BIT_VECTOR):位的数组形式,如 “0010”。 (5)布尔量(Boolean) (6)字符(Character) (7)字符串(String) (8)时间(Time) 注意:使用时不要作任何包集合的调用说明!
2、IEEE标准数据类型 标准位(STD_LOGIC):‘U’--初始值,‘X’--不定值, ‘0’--逻辑0,‘1’--逻辑1, ‘Z’—高阻,‘W’—弱信号不定, ‘L’--弱信号0,‘H’--弱信号1, ‘-’—不可能情况共九种取值。 标准位矢量(STD_LOGIC_VECTOR):标准位的数组形式。 注意:使用时要作调用包集合STD_LOGIC_1164的说明!
二、VHDL语言的数据类型3、数据类型的约束 (1)整数取值范围的约束 例: SINGAL a1 :INTEGER RANGE(0 TO 9 ); SINGAL a2 :INTEGER RANGE(32 DOWNTO 0 ); (2) 位矢量位宽度的约束 例: VARIABLE b1 :BIT_VECTOR(3 DOWNTO 0); VARIABLE b2 :BIT_VECTOR(0 TO 3); VARIABLE b3 :STD_LOGIC_VECTOR(0 DOWNTO 3); VARIABLE b4 :STD_LOGIC_VECTOR(3 TO 0);
三、VHDL语言的运算操作符 1、逻辑运算符 NOT,AND,OR,NAND,NOR,XOR 非 与 或 与非 或非 异或 2、算术运算符 +, -, *, / 3、关系运算符 =,/=,<,<=,>,>= 4、并置运算符 &
三、VHDL语言的运算操作符运算操作符使用注意事项:三、VHDL语言的运算操作符运算操作符使用注意事项: 1、运算操作符有优先级,不知优先级时尽量用(); 2、运算操作符左、右两边的操作数、代入的信号三者的数据类型必须相同(除&外); 3、对STD_LOGIC及STD_LOGIC_VECTOR数据类型进行无符号算术运算和关系运算必须调用STD_LOGIC_UNSIGNED包集合,进行有符号算术运算和关系运算必须调用STD_LOGIC_SIGNED包集合。
作业 P43例3-1中客体说明语句是哪一条,客体名是什么?是什么类型客体?在哪里被说明?数据类型是什么?约束条件是什么?有没有赋初值?