用VHDL设计一家用告警系统的控制逻辑,它有来自传感器的三个输入信号smoke、door、water和准备传输到告警设备的三个输出触发信号fire_alarm、burg_alarm、water_alarm以及使能信号door_en和alarm_en。
- 程序
library ieee;
use ieee.std_logic_1164.all;
entity alarm is
port
(
smoke,door,water: in std_logic;
door_en ,alarm_en :in std_logic;
fire_alarm ,burg_alarm, water_alarm:out std_logic
);
end alarm;
architecture alarmFunc of alarm is
component Sensor
port
(
SensorInput,SensorEn: in std_logic;
SensorOutput :out std_logic
);
end component;
signal Q:std_logic_vector(2 downto 0);
begin
FireFunc: Sensor port map(smoke,alarm_en,Q(0));
WaterFunc: Sensor port map(water,alarm_en,Q(1));
DoorFunc: Sensor port map(door,(alarm_en and door_en),Q(2));
fire_alarm<=Q(0);
water_alarm<=Q(1);
burg_alarm<=Q(2);
end alarmFunc;
- 子程序
library ieee;
use ieee.std_logic_1164.all;
entity Sensor is
port
(
SensorInput,SensorE