Как удалить ошибку несоответствия типов VHDL, так как тип std_ulogic не соответствует целочисленному литералу? - PullRequest
0 голосов
/ 23 мая 2019

Моя цель - создать дорожку переключателя для управления position_track и color_track для player1 (9-бит) и player2 (9-бит) для дисплея платы в Tic-плате на основе VHDL.Игра Tac-Toe.

В настоящее время я могу отображать сетку 3х3 и отображать цвет переключателей.Только для player1 («Синий»), который назначен от SW[9] до SW[0] на плате Altera DE2.player2 («Красный») не реагирует на VGA-дисплей для любого из SW[17] до SW[9].

Это для проекта, использующего VHDL с платой Altera DE2, чипом Cyclone II.В прошлом я пытался проверить синтаксис для архитектуры объекта (поведенческий метод), чтобы указать логику для отслеживания изменений во встроенных аппаратных коммутаторах в плате ПЛИС.

Используемые стандартные библиотеки, такие как ieee.std_logic_1164.all и ieee_std.logic_unsigned.all.

FPGA

architecture behavioral of switch_track is
begin
    process
    begin
        if (player1(0) = '1') then
            position_track(0) <= 1; -- error occurs in this line (19) --
            color_track(0) <= 1;
        elsif
        -- [same logic applies for player2(0)]
        else
            position_track(0) <= 0;
            color_track(0) <= 0;
        end if;
    end process;
end architecture behavioral;

Я ожидал, что код в файле .vhd может быть правильно синтезирован.Однако единственная ошибка, обнаруженная в компиляторе Quartus II:

Ошибка (10517): ошибка несоответствия типов VHDL в switch_track.vhd (19): тип std_ulogic не соответствует целочисленному литералу.

Я не уверен, почему std_ulogic отображается в компиляторе.Я новичок в разработке VHDL и Quartus II.Конструктивная обратная связь приветствуется.

1 Ответ

0 голосов
/ 23 мая 2019

Ошибка была вызвана тем, что я не классифицировал 1 и 0 для position_track и color_track как «1» и «0» для правильного представления двоичных чисел. Я не использовал правильный синтаксис.

...