Плохой символ в идентификаторе в GHDL
Я пытаюсь скомпилировать следующий компонент в GHDL в Ubuntu 17.10. Это код компонента:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all; -- Unsigned
entity simple is end simple;
architecture behaviour of simple is
signal clk : std_logic := '0';
signal sigterm : std_logic := '0';
signal counter : unsigned(7 downto 0) := x"00";
begin
process
begin
wait for 5 us;
clkloop : loop
wait for 1 us;
clk <= not clk;
if sigterm = '1' then
exit;
end if;
end loop clkloop;
wait for 5 us;
wait;
end process;
process (clk)
begin
if rising_edge(clk) then
if counter = 16 then
sigterm <= '1';
end if;
counter <= counter + 1;
end if;
end process;
end behaviour;
Я получаю это сообщение об ошибке при разработке компонента:
ghdl:*command-line*: bad character in identifier
Я использую следующие флаги, чтобы заставить команды работать на моей 64-битной машине, я не знаю, все ли они в порядке:
ghdl -a -Wa,--32 -Wl,--32 simple.vhdl
ghdl -e -Wa,--32 -Wl,--32 simple.vhdl
1 ответ
Это сообщение об ошибке уточнения: здесь ожидается имя единицы проекта, а не имя файла, плюс, если это не значение по умолчанию
work
, имя библиотеки.
ghdl -a -Wa,--32 -Wl,--32 simple.vhdl
ghdl -e -Wa,--32 -Wl,--32 simple
Или, если вы скомпилируете
simple.vhdl
в библиотеке
foolib
:
ghdl -a -Wa,--32 -Wl,--32 --work=foolib simple.vhdl
ghdl -e -Wa,--32 -Wl,--32 --work=foolib simple