私はvhdlを使用して線形検索アルゴリズムを実装しようとしています私のコードは
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity q1 is port(
input : in integer;
output : out integer
);
end q1;
architecture beh of q1 is
type my_array is array (0 to 6) of integer;
constant sequence: my_array := (0,1,2,3,4,5,6,7);
begin
process(input)
for i in sequence' range generate
begin
GenIf: if (input=my_array(i)) generate then
output <=input;
else
output <=0;
end generate GenIf;
end generate;
end process;
end beh;
私が受け取るエラーメッセージは次のとおりです。
エラー(10500):テキスト「for」の近くのSearch.vhd(16)でのVHDL構文エラー。「開始」、または宣言ステートメントを期待する
エラー(10500):テキスト「生成」の近くのSearch.vhd(18)でのVHDL構文エラー。「それから」を期待する
エラー(10500):テキスト「else」の近くのSearch.vhd(20)でのVHDL構文エラー。「end」、「(」、または識別子(「else」は予約済みキーワード)、または順次ステートメントを予期している)
エラー(10500):テキスト「endgenerateGenIf;」の近くのSearch.vhd(22)でのVHDL構文エラー。「end」、「(」、識別子、またはシーケンシャルステートメントが必要です
エラー(10500):テキストの近くのSearch.vhd(22)でのVHDL構文エラー情報:ソースファイルsearch.vhdで、0個のエンティティを含む0個のデザインユニットが見つかりました
最初のエラーまたは最初のカップルを修正することは常に価値があります。その後のエラーは最初の1つか2つに依存するため、その後は無意味になります。だから、私は最初の2つを見てきました:
エラー(10500):テキスト「for」の近くのSearch.vhd(16)でのVHDL構文エラー。「開始」、または宣言ステートメントを期待する
あなたのプロセスにはbegin
声明が必要です。すべてのプロセスには次のbegin
ステートメントが必要です。
process(input)
begin
エラー(10500):テキスト「生成」の近くのSearch.vhd(18)でのVHDL構文エラー。「それから」を期待する
Generate
ステートメントはプロセス内に属していません。(実際、generate
ステートメント内にプロセスを配置できます)。生成ステートメントを修正する必要があると思います。あなただけの普通の必要for loop
とif
声明を:
process(input)
begin
for i in sequence'range loop
GenIf: if input=sequence(i) then
(そしてあなたはsequence
そうではないことを意味しましたmy_array
。)
それらを修正した後、修正すべきさまざまなエラーがたくさんあることがわかりますが、以前のエラーのために報告されていません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加