library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity paralel_reg is
generic (default : positive := 4);
port(C, notR, E: in std_logic; D: in std_logic_vector(default downto 1);
Q: out std_logic_vector(default downto 1));
end paralel_reg;
architecture paralel_reg of paralel_reg is
signal q : std_logic_vector(default downto 1);
begin
process (C, notR)
begin
if notR = '0' then q <= (others => '0');
else if rising_edge(C) then q <= D;
end if;
end process; --# Error: COMP96_0019: paralel_register.vhd : (18, 5): Keyword "if" expected.
--# Error: COMP96_0015: paralel_register.vhd : (18, 5): ';' expected.
process (E, q) --# Error: COMP96_0019: paralel_register.vhd : (24, 2): Keyword "end" expected.
begin
if E = '0' then Q <= (others => '0');
else Q <= q; --# Error: COMP96_0019: paralel_register.vhd : (24, 2): Keyword "end" expected.
--# Error: COMP96_0016: paralel_register.vhd : (24, 7): Design unit declaration expected.
end if;
end process;
end paralel_reg;
# Error: COMP96_0019: paralel_register.vhd : (18, 5): Keyword "if" expected. # Error: COMP96_0015: paralel_register.vhd : (18, 5): ';' expected. # Error: COMP96_0019: paralel_register.vhd : (21, 1): Keyword "end" expected. # Error: COMP96_0019: paralel_register.vhd : (24, 2): Keyword "end" expected. # Error: COMP96_0016: paralel_register.vhd : (24, 7): Design unit declaration expected.なぜコードがコンパイルされていないのですか?
あなたは 'else if'を使うことができますが、制御フローと' end if'文が一致するように注意する必要があります。 'q'と' Q'はVHDLで字句的に同一であり、2つの宣言があります。 'q'の出現を' qi'(感度リストを含む)に変更し、if(またはelsifを使用して)コードを分析(コンパイル)すると、もう一つの終わりを追加します。ここでのメッセージは、答えが実証されるべきだということです。どのような 'E'が意図されているか分かりません。 – user1155120