Идет входной сигнал INPUT, по каждому его фронту обнуляю показания счетчика тактовых импульсов CLOCK. Не работает и все, пишет что значение PERIODSIG на хранится вне CLOCK. Почему так и как надо?
LIBRARY ieee ;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY METER IS
PORT ( INPUT, CLOCK: IN STD_LOGIC;
PERIOD : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END METER ;
ARCHITECTURE BEHAVIOR OF METER IS
SIGNAL PERIODSIG : INTEGER RANGE 0 TO 255;
BEGIN
CLKPROC: PROCESS ( CLOCK, INPUT )
BEGIN
IF (INPUT'EVENT AND RISING_EDGE(INPUT)) THEN
PERIODSIG <= 0;
END IF;
IF (CLOCK'EVENT AND RISING_EDGE(CLOCK)) THEN
PERIODSIG <= PERIODSIG + 1;
END IF;
END PROCESS CLKPROC;
PERIOD <= CONV_STD_LOGIC_VECTOR(PERIODSIG,8);
END BEHAVIOR;