나는 이것이 상당히 일반적인 질문이라는 것을 알고 있습니다. 그럼에도 불구하고 포럼을 살펴본 결과, 주어진 VHDL 코드에 대해 왜 다음 CT 오류가 발생하는지에 대한 만족스러운 답변을 찾을 수 없었습니다. 도와 줄수있으세요?개체가 사용되었지만 신고되지 않았습니다.
VHDL 코드
library IEEE;
use IEEE.std_logic_1164.all;
entity design is
port(clk:IN std_logic;
reset:IN std_logic;
A:IN std_logic;
B:IN std_logic;
Q:OUT std_logic);
end design;
architecture behave of design is
--signal R0,R1,R2,R3,R4:std_logic;
begin
process(clk,reset)
variable R0,R1,R2,R3,R4:std_logic;
begin
if (reset='1') then
R0:='0';
R1:='0';
R2:='0';
R3:='0';
R4:='0';
elsif falling_edge(clk) then
R0:=R4;
R1:=R0 xor A;
R2:=R1 xor B;
R3:=R2;
R4:=R2 xor R3;
end if;
end process;
Q<=R4; -- ERROR POINTED HERE
end behave;
오류 : - 포트에 변수를 할당하는 적절한 방법은 내가 부족 것을
Error (10482): VHDL error at design.vhd(31): object "R4" is used but not declared
있습니까?
IEEE Std 1076-2008 12.2 선언 범위 * 아키텍처 본문을 제외하고 선언의 범위는 선언의 시작 부분에서 바로 닫는 선언적 영역의 끝까지 확장됩니다. * "12.3 공개 설정 "* ... 선언은 범위의 특정 부분에서만 볼 수 있으며이 부분은 선언 끝에서 시작합니다. *" "* ... 선언은 특정 부분에서 직접 볼 수 있다고합니다. 이 부분은 선언의 즉각적인 범위의 끝까지 확장된다. * " – user1155120
12.1 선언 영역"* ... 하나의 선언 영역은 다음 각각의 텍스트로 구성된다 : ... h) 프로세스 문은 ... * "" – user1155120