私のVHDLコードの一部は次のとおりです。
133 if(grupo = '000' or grupo = '111') then -- 0
134 elsif(grupo = '001' or grupo = '010') then -- 1
135 elsif(grupo = '011') then -- 2
136 elsif(grupo = '100') then -- -2
137 elsif(grupo = '101' or grupo = '110') then -- -1
138 end if;
ただし、次のエラーが発生しました。
エラー:COMP96_0049:Multiplicador.vhd:(133、17):式の構文エラー。
エラー:COMP96_0015:Multiplicador.vhd:(133、17): ')'が必要です。
エラー:COMP96_0019:Multiplicador.vhd:(133、18):キーワード 'then'が必要です。
エラー:COMP96_0019:Multiplicador.vhd:(141、6):キーワード 'end'が必要です。
エラー:COMP96_0049:Multiplicador.vhd:(141、20):式の構文エラー。
エラー:COMP96_0015:Multiplicador.vhd:(141、20): ')'が必要です。
エラー:COMP96_0019:Multiplicador.vhd:(141、21):キーワード 'then'が必要です。
エラー:COMP96_0019:Multiplicador.vhd:(147、9):キーワード「プロセス」が必要です。
エラー:COMP96_0015:Multiplicador.vhd:(150、8): ';' 期待されます。
エラー:COMP96_0016:Multiplicador.vhd:(150、10):デザインユニットの宣言が必要です。
しかし、私は解決策を見つけることができません。エラーはこの部分にあります。
コードに問題が複数ある可能性があります。構文エラーが報告された行を表示するだけでは、必ずしも適切ではありません。実際のエラーが前の行にある場合があります。
if(grupo = '000' or grupo = '111') then
字句要素'
(アポストロフィ)は、修飾された式のターゲットを示す属性を示すか、文字リテラルの一部としてのみ受け入れられます。
'000'
などはこれらのどれでもありません。属性名は識別子であり、集計を処理するタイプを指定するために使用されるタイプ名も同様です。
これらは括弧を使用する必要がありますか?("000"
、"111"
等)
エラーを再現するのに十分なサンプルコードが提供されていません。
これは正常に分析します:
entity multiplicador is
end entity;
library ieee;
use ieee.std_logic_1164.all;
architecture que of multiplicador is
signal grupo: std_logic_vector(2 downto 0);
begin
UNLABLED:
process (grupo)
begin
if (grupo = "000" or grupo = "111") then -- 0
elsif(grupo = "001" or grupo = "010") then -- 1
elsif(grupo = "011") then -- 2
elsif(grupo = "100") then -- -2
elsif(grupo = "101" or grupo = "110") then -- -1
end if;
end process;
end architecture;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加