これはかなり一般的な質問です。いずれにしても、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