Ich verstehe, dass dies eine ziemlich häufige Frage ist. Ungeachtet dessen, dass ich durch Foren gegangen bin, konnte ich keine zufriedenstellende Antwort finden, warum ich den folgenden CT-Fehler für den gegebenen VHDL-Code erhalte. Kannst du mir bitte helfen?Objekt wird verwendet, aber nicht deklariert
VHDL-Code
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;
Fehler: -
Error (10482): VHDL error at design.vhd(31): object "R4" is used but not declared
Gibt es eine richtige Art und Weise Variable Port zuzuweisen, dass ich vermisst habe?
IEEE Std 1076-2008 12.2 Umfang der Deklarationen "* Der Gültigkeitsbereich einer Deklaration, mit Ausnahme eines Architekturkörpers, erstreckt sich vom Anfang der Deklaration bis zum Ende der unmittelbar schließenden Deklarationsregion; ..." 12.3 Sichtbarkeit "... Eine Deklaration ist nur innerhalb eines bestimmten Teils ihres Geltungsbereichs sichtbar; dieser Teil beginnt am Ende der Deklaration ... *" "* ... Eine Deklaration soll direkt in einem bestimmten Teil von ihr unmittelbarer Anwendungsbereich, dieser Teil erstreckt sich bis zum Ende des unmittelbaren Geltungsbereiches der Deklaration ... * " – user1155120
12.1 Deklarative Region" * ... Eine einzelne deklarative Region wird gebildet durch den Text von jedem der folgenden: ... h) Eine Prozessaussage ... * " – user1155120