私のコーディングで構文エラーが見つかりません。どんな助けでも大歓迎です。私のシンセサイザーは、エラーがblowoncompon> =の状態にあると言いますが、そのコードの状態をコミットすると次の状態に移行するので、エラーはどこか他の場所にあると思います。ステートマシンでのVHDL synaxエラー
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity question4 is
Port (
--System Clock Declaration--------------------------
clk: in std_logic;
--Button Inputs-------------------------------------
btnL: in std_logic; --
btnU: in std_logic; --Clear
btnD: in std_logic; --Reset
sw: in std_logic_vector(7 downto 0);
led: out std_logic_vector(15 downto 0)
);
end question4;
architecture Behavioral of question4 is
constant active: std_logic := '1';
constant bloweron: std_logic_vector(15 downto 0) := "000000011111111";
constant compon: std_logic_vector(15 downto 0) := "1111111000000000";
signal clear: std_logic := btnU;
signal reset: std_logic := btnD;
type states is (blowoncompoff,
blowoffcompoff,
blowoncompon);
signal CurrentState: states;
signal NextState: states;
begin
motorstatetrans: process(currentsate)
begin
if clear = active then
currentstate <= blowoffcompoff;
end if;
case currentstate is
when blowoncompon>= --------Why syntax error near here
led <= bloweron;
led <= compon;
if currenttemp=settemp then
Nextstate <= blowoncompoff;
elsif
currenttemp>settemp then
Nextstate <= bloweroncompon;
end if;
when blowoncompoff >=
led <= bloweron;
if currenttemp < settemp then
Nextstate <= bloweroncompon;
elsif current temp = set temp then
Nextstate <= blowoffcompoff;
when blowoffcompoff >=
if current temp < settemp then
Nextstate <= blowoncompon;
end case;
end process;
いいえ、エラーはツールが示すところで正しいです。 'blowoncompon> = --------なぜシンタックスエラーが発生するのか? ' IEEE Std 1076-2008 10.9ケースステートメント、構文は* cases_statement_alternative :: =選択肢=> sequence_of_statements *です。 "> ="の代わりに、一連のステートメント(1つ以上の連続ステートメント、10.1)の前に "=>"を使用する必要があります。エラーメッセージを表示します。 – user1155120