Это приближение того, что ваш код будет выглядеть следующим действительным VHDL:
library ieee;
use ieee.std_logic_1164.all;
entity alarm is
port (
on_off, motion_sensor, light_sensor,
sound_sensor, camera_sensor, ip_sensor,
temperature_sensor: in std_logic;
sensor_sirine, sensor_light: out std_logic
);
end alarm;
architecture leitourgeia of alarm is
begin
unlabelled:
process (on_off, motion_sensor, light_sensor, sound_sensor,
camera_sensor, ip_sensor, temperature_sensor)
begin
if on_off = '1' and
(motion_sensor = '1' or light_sensor = '1' or sound_sensor = '1' or
camera_sensor = '1' or ip_sensor = '1' or temperature_sensor='1') then
sensor_light <= '1';
sensor_sirine <= '1';
elsif on_off = '0' and
(motion_sensor = '1' or light_sensor = '1' or sound_sensor = '1' or
camera_sensor = '1' or ip_sensor = '1' or temperature_sensor = '1') then
sensor_light <= '1';
sensor_sirine <= '0';
else
sensor_light <= '0';
sensor_sirine <= '0';
end if;
end process;
end leitourgeia;
Я отступом его, фиксированная некоторые орфографические ошибки, сделали действительные идентификаторы, поместили оператор if в процесс и сделали else if
elsif
, а также избавились от двух наборов лишних круглых скобок.
В настоящее время он анализирует, разрабатывает и моделирует.
И так делает эту архитектуру:
architecture foo of alarm is
signal alarm_light: std_logic;
begin
alarm_light <= motion_sensor or sound_sensor or light_sensor or
camera_sensor or ip_sensor or temperature_sensor;
sensor_light <= alarm_light;
sensor_sirine <= '1' when alarm_light = '1' and on_off = '1' else
'0';
end architecture foo;
Что более близко напоминает ссылочный схематическое изображение.
И это одна еще более близко напоминает ссылочную схему:
architecture fum of alarm is
signal alarm_light: std_logic;
begin
alarm_light <= motion_sensor or sound_sensor or light_sensor or
camera_sensor or ip_sensor or temperature_sensor;
sensor_light <= alarm_light;
sensor_sirine <= on_off and alarm_light;
end architecture fum;
вы недостающая точку с запятой после 'конца if'. ON/OFF не является юридическим идентификатором в VHDL, а также идентификаторы, начинающиеся с периодов. Оператор if не является параллельным выражением. – user1155120
не означает юридический идентификатор? on/off - вход –
Чувак, это не VHDL. – user1155120