我知道这是一个相当常见的问题。无论如何,通过论坛,我无法找到一个令人满意的答案,为什么我得到以下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