第6章 VHDL的基本描述语句
第6章 VHDL的基本描述语句
EDA技术讲义 61顺序语句 6.1.1顺序赋值语句 617WAT语句 612IF语句 618子程序调用语句 613CASE语句 619返回语句( RETURN) 614LOOP语句 6110空操作语句(NUL)之 615NEXT语句 6111断言( ASSERT)语句 管业学 616EXT语句 61.12 REPORT语句
EDA技术讲义 6.1 顺序语句 6.1.1 顺序赋值语句 6.1.2 IF 语句 6.1.3 CASE语句 6.1.4 LOOP语句 6.1.5 NEXT语句 6.1.6 EXIT语句 6.1.7 WAIT语句 6.1.8 子程序调用语句 6.1.9 返回语句(RETURN) 6.1.10 空操作语句(NULL) 6.1.11 断言(ASSERT)语句 6.1.12 REPORT语句
EDA技术讲义 61顺序语句 6.1.1顺序赋值语句 信号赋值语句 变量赋值语句 赋值目标 赋值符号 赋值源 信号或变量(< 数值、逻辑或 运算表达式
EDA技术讲义 6.1 顺序语句 6.1.1 顺序赋值语句 信号赋值语句 变量赋值语句 赋值目标 赋值符号 赋值源 信号或变量 <= := 数值、逻辑或 运算表达式
EDA技术讲义 612IF语句 IF语句的一般形式为: IFTHEN IFTHEN ; ; END F ELSIFTHEN ; IFTHEN ELSIFTHEN ; ; ELSE ; END F
EDA技术讲义 IF THEN ; ELSIF THEN ; ELSIF THEN ; …… ELSE ; END IF; IF语句的一般形式为: 6.1.2 IF 语句 IF THEN ; END IF; IF THEN ; ELSE ; END IF;
EDA技术讲义 【例】D触发器的ⅤHDL语言描述 LIBRARY IEEE USE IEEE STD LOGIC 1164ALL entitY ddfs PORT(CLK: IN STD LOGIC i D: IN STD LOGIC i Q, QD: OUT STD LOGIC ) end ddf ARChiteCTuRE ex of ddf is BEGIN
EDA技术讲义 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY ddf IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q, QD: OUT STD_LOGIC ); END ddf; ARCHITECTURE ex OF ddf IS BEGIN 【例】D触发器的VHDL语言描述
EDA技术讲义 【例】D触发器的ⅤHDL语言描述 PROCESS (CLK) BEGIN IF(CLKEVENT)AND (CLK=1)THEN Q<=D QD<=not D; END F END PROCESS END ARCHITECTURE ex
EDA技术讲义 PROCESS (CLK) BEGIN IF (CLK'EVENT) AND (CLK = '1‘) THEN Q <= D; QD<= not D; END IF; END PROCESS ; END ARCHITECTURE ex ; 【例】D触发器的VHDL语言描述
EDA技术讲义 例】用VHDL设计一家用告警系统的控制逻辑,它有来 自传感器的三个输入信号 smoke、door、 water和准备传输 到告警设备的三个输出触发信号 fire alarm、 burg alarm、 water alarm以及使能信号en和 alarm en VHDL程序描述如下: LIBRARY ieee; USE ieee std logic 1164. all; ENTITY alarm s PORT(smoke, door, water: IN std logic; en,alarm en: IN std logic; fire alarm, burg alarm, water alarm: oUT std logic); END alarm: architecture alarm arc of alarm s BEGIN
EDA技术讲义 【例】用VHDL设计一家用告警系统的控制逻辑,它有来 自传感器的三个输入信号smoke、door、water和准备传输 到告警设备的三个输出触发信号fire_alarm、burg_alarm、 water_alarm以及使能信号en和alarm_en。 VHDL程序描述如下: LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY alarm IS PORT(smoke,door,water:IN std_logic; en,alarm_en :IN std_logic; fire_alarm,burg_alarm,water_alarm:OUT std_logic); END alarm; ARCHITECTURE alarm_arc OF alarm IS BEGIN
PROCESS(Smoke, door, water, en, alarm en) EDA技术讲义 BEGIN IF((smoke='1)AND(en=0)) THEN fire alarm ELSE fire alarm<=“0’; END F: IF((door= '1)ANd((en=0)AND(alarm en=0)) THEN burg alarm<=‘1’; ELSE burg alarm<=“0’; END IF; IF((water=1)AND(en=0) THEN water alarm<=‘1’; ELSE water alarm<=“0 END F END PROCESS ENd alarm arc
PROCESS(smoke,door,water,en,alarm_en) EDA技术讲义 BEGIN IF ((smoke= ‘1’) AND (en= ‘0’)) THEN fire_alarm <= ‘1’; ELSE fire_alarm <= ‘0’; END IF; IF ((door= ‘1’) AND ((en= ‘0’) AND (alarm_en= ‘0’))) THEN burg_alarm <= ‘1’; ELSE burg_alarm <= ‘0’; END IF; IF ((water= ‘1’) AND (en= ‘0’)) THEN water_alarm <= ‘1’; ELSE water_alarm <= ‘0’; END IF; END PROCESS; END alarm_arc;
EDA技术讲义 61顺序语句 CASE语句的结构如下: 6,13CASE语句 CASEIS WHEN ; WHEN| 语句>; WHEN=>; WHEN OTHERS ; END CASE >选择值可以有四种不同的表达方式 多条件选择值的一般表达式为:单个普通数值,如6 数值选择范围,如(2To4),表示取值为 选择值[选择值] 2、34。 并列数值,如3|5,表示取值为3或者5 混合方式,以上三种方式的混合
EDA技术讲义 6.1 顺序语句 6.1.3 CASE语句 CASE语句的结构如下: CASE IS WHEN => ; WHEN | => ; WHEN => ; WHEN OTHERS => ; END CASE; 多条件选择值的一般表达式为: 选择值 [ |选择值 ] 选择值可以有四种不同的表达方式: 单个普通数值,如6。 数值选择范围,如(2 TO 4),表示取值为 2、3或4。 并列数值,如35,表示取值为3或者5。 混合方式,以上三种方式的混合
EDA技术讲义 【例】 PORT( zI, 72, 73, 74: out std logic) SIGNAL Value: INTEGER RANGE OTO 15 CasE value is WHEN O value=0 时 WHEN 1 3 Z2<=“0 value=1或3时 WhEN 4TO7 2 73 value=4、5、6、72时 WHEN OTHERS value=8-15时 END CASE
EDA技术讲义 PORT(… z1 , z2 , z3 , z4 : out std_logic); … SIGNAL value : INTEGER RANGE 0 TO 15; CASE value IS WHEN 0 => z1 z2 z3 z4 <= ‘1’ ; - - value=8~15时 END CASE 【例】