Плохой символ в идентификаторе в 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
Другие вопросы по тегам