アルテラのMax VとQuartusを使用していくつかの例を実行しているので、 "With Select When"ステートメントを使用するときに問題が発生します。私は以下のように簡単な2-4デコーダありますVHDL: "With Select When"ステートメントの使用時のエラーステートメント
library ieee;
use ieee.std_logic_1164.all;
entity lesson9 is
port(
x: in std_logic_vector(1 downto 0);
en: in std_logic;
y: out std_logic_vector(3 downto 0)
);
end lesson9;
architecture rtl of lesson9 is
signal outputBuff: std_logic_vector(3 downto 0);
begin
decoder2to4: process(x)
begin
with x select
outputBuff <= "0001" when "00",
"0010" when "01",
"0100" when "10",
"1000" when "11";
end process decoder2to4;
y <= outputBuff;
end rtl;
をそして私は、エラーメッセージました:「と」
近くのテキストを。 「終了」を期待し、または「(」、または識別子です(「と」)は予約語である、
シーケンシャル文をPR私は自分のコードをチェックしようとしましたが、問題を見つけることができませんでした?
使用しているQuartusのバージョンは? VHDL-2008構造を選択して使用すると、古いツールバージョンではサポートされません。また、最新のQuartusバージョンを使用している場合は、そのファイルにVHDL-2008を有効にしてください。 – FritzDC
'with ... select'はVHDL-2008構造体ではありませんが、シーケンシャルコード(例えばプロセス)内で' with ... select 'を可能にすることは新しいです。あなたは 'with ... select'を並行させるためのプロセスを削除するか、あるいはあなたのツールがこれらをサポートしている場合は、2008年の機能でコンパイルを有効にする必要があります。 – Paebbels