VHDL 코드에 대한 질문이 있습니다. ADC의 연속 근사 레지스터를 작성하려고합니다.VHDL - 연속 근사 레지스터
아래 표시된 코드에서 DigitalOutTemp는 for 루프 전체에서 지속적으로 업데이트됩니까? 또는 프로세스 종료시 OutTemp 값만 수신합니까?
나는 논리가 잘못되었을 수도 있지만 내가하려고하는 것은 DigitalOutTemp를 디지털 변환기를 통해 수행 한 다음 측정중인 아날로그 신호와 비교기를 사용하는 것입니다. 그런 다음 비교기가 레지스터로 다시 피드 백합니다.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY SARegister IS
PORT (
Comparator, Clock : IN std_logic;
DigitalOutFinal, DigitalOutTemp : OUT std_logic_vector (13 downto 0)
);
END;
ARCHITECTURE Behavioural OF SARegister IS
BEGIN
PROCESS (CompIn, Clock)
VARIABLE OutTemp : std_logic_vector (13 downto 0);
BEGIN
IF (rising_edge(Clock)) THEN
OutTemp := "10000000000000";
FOR i IN 13 downto 0 LOOP
IF (Comparator = '0') THEN
OutTemp(i) := '0';
END IF;
IF (i > 0) THEN
OutTemp(i - 1) := '1';
END IF;
DigitalOutTemp <= OutTemp;
END LOOP;
DigitalOutFinal <= OutTemp;
END IF;
END PROCESS;
END;