我是VHDL
,並且有簡單的錯誤。我正在嘗試使用when
else
構建來創建MUX。錯誤有兩種類型:VHDL when-else error
Error (10500): VHDL syntax error at lab13.vhd(21) near text "when"; expecting ";"
Error (10500): VHDL syntax error at lab13.vhd(21) near text "else"; expecting ":=", or "<="
而且這些錯誤與when
else
每個字符串。
這裏是代碼:
entity lab13 is
port (SW : in STD_LOGIC_VECTOR (17 downto 0);
LEDG : out STD_LOGIC_VECTOR (2 downto 0);
LEDR : out STD_LOGIC_VECTOR (17 downto 0));
end lab13;
architecture logicFunc of lab13 is
begin
process
variable a, b, c : STD_LOGIC_VECTOR (2 downto 0) :=0;
begin
a(0) := SW(0) when (SW(15) = '0') else SW(3);
b(0) := SW(6) when (SW(15) = '0') else SW(9);
c(0) := a(0) when (SW(16) = '0') else b(0);
LEDG(0) <= c(0) when (SW(17) = '0') else SW(12);
a(1) := SW(1) when (SW(15) = '0') else SW(4);
b(1) := SW(7) when (SW(15) = '0') else SW(10);
c(1) := a(1) when (SW(16) = '0') else b(1);
LEDG(1) <= c(1) when (SW(17) = '0') else SW(13);
a(2) := SW(2) when (SW(15) = '0') else SW(5);
b(2) := SW(8) when (SW(15) = '0') else SW(11);
c(2) := a(2) when (SW(16) = '0') else b(2);
LEDG(2) <= c(2) when (SW(17) = '0') else SW(14);
end process;
LEDR <= SW;
end logicFunc;
那麼,如何解決這些問題?
什麼工具鏈您使用的? –
@scary_jeff Quartus II 13.0 – levshkatov
嗯,我並不那麼熟悉,但我認爲問題在於,您需要查看綜合或項目選項,並將VHDL模式設置爲VHDL-2008或VHDL-200x。看看你能找到那樣的東西。 –