我知道這是一個相當常見的問題。無論如何,通過論壇,我無法找到一個令人滿意的答案,爲什麼我得到以下CT錯誤,對於給定的VHDL代碼。你能幫我嗎?使用對象但未聲明
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