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语句 CASE<表达式>IS 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 <= ‘1’ ; - - value=0时 WHEN 1 | 3 => z2 <= ‘0’ ; - - value=1或3时 WHEN 4 TO 7 | 2 => z3 <= ‘1’ ; - - value=4、5、6、7或2时 WHEN OTHERS => z4 <= ‘1’ ; - - value=8~15时 END CASE 【例】