1. 系统功能及要求: 汽车上有一转弯控制杆,此杆有三种状态:中间位置时,汽车不转弯;向上时,汽车左转; 向下时汽车右转。汽车转弯时相应尾灯相应头灯均闪烁,当应急开关合上时,头灯尾 灯均闪烁。汽车刹车时,2个尾灯发出一直亮的信号。如果汽车刹车时正在转弯,则 相应的转弯闪烁信号不受影响。 2. 逻缉抽象: 由要求转换成真值表 输入信号 输出信号 刹车 应急 左转 右转 左头灯 右头灯 左尾灯 右尾灯 开关 开关 开关 开关 状态 状态 状态 状态 (A) (B) (C) (D) (E) (F) (G) (H) 0 0 0 0 断 断 断 断 0 0 0 1 断 闪 断 闪 0 0 1 0 闪 断 闪 断 0 0 1 1 断 断 断 断 0 1 0 0 闪 闪 闪 闪 0 1 0 1 闪 闪 闪 闪 0 1 1 0 闪 闪 闪 闪 0 1 1 1 断 断 断 断 1 0 0 0 断 断 通 通 1 0 0 1 断 闪 通 闪 1 0 1 0 闪 断 闪 通 1 0 1 1 断 断 断 断 1 1 0 0 闪 闪 通 通 1 1 0 1 闪 闪 通 闪 1 1 1 0 闪 闪 闪 通 1 1 1 1 断 断 断 断 注:断——灯不亮 闪——灯闪烁 通——灯一直亮 3. 由真值表得出逻缉表达式: E(断)=(C AND D) OR ((NOT B) AND (NOT C)); E(闪)=(B AND (NOT C) ) OR (C AND (NOY(D)); E(通)=0; F(断)=(C AND D) OR ((NOT B) AND (NOT D)); F(闪)=((NOT C) AND D) OR (B AND (NOT(D)); F(通)=0; G(断)=(C AND D) OR ((NOT A) AND (NOT B) AND (NOT C)); G(闪)=(C AND (NOT D)) OR ((NOT A) AND B AND (NOT C)); G(通)=A AND (NOT C); H(断)=(C AND D) OR ((NOT A) AND (NOT B) AND (NOT D)); H(闪)=((NOT C) AND D) OR ((NOT A) AND B AND (NOT D)); H(通)=A AND (NOT D); 4. VHDL语言实现(源程序注释): library IEEE; ——定义IEEE库,使用std_logic_1164 use IEEE.std_logic_1164.all; std_logic_unsigned 包集合 use IEEE.std_logic_unsigned.all; entity autolight is ——定义实体autolight port ( A,B,C,D对应上述四个开关,信号为输入 A: in STD_LOGIC; E,F,G,H 对应上述前后车灯,信号为输出 C: in STD_LOGIC; B: in STD_LOGIC; D: in STD_LOGIC; E: out STD_LOGIC; F: out STD_LOGIC; G: out STD_LOGIC; H: out STD_LOGIC ); end autolight;

评论