如何删除由于 std_ulogic 类型与整数文字不匹配而导致的 VHDL 类型不匹配错误?
How to remove VHDL type mismatch error due to std_ulogic type does not match integer literal?
我的目标是制作一个开关轨道,用于控制 position_track
和 color_track
用于 player1
(9 位)和 player2
(9 位)基于 VHDL 的 Tic-Tac-Toe 游戏中的棋盘显示。
目前,我能够显示 3x3 网格并显示开关的颜色。仅针对player1
('Blue'),在Altera DE2 板中分配给SW[9]
到SW[0]
。 player2
('Red') 在 VGA 显示中对 SW[17]
到 SW[9]
中的任何一个没有响应。
这是一个使用 VHDL 和 Altera DE2 板、Cyclone II 芯片的项目。过去,我曾尝试检查实体架构(行为方法)的语法,以指定跟踪FPGA板中内置硬件开关变化的逻辑。
使用标准库,例如 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编译器中遇到的唯一错误是:
Error (10517): VHDL type mismatch error at switch_track.vhd(19):
std_ulogic type does not match integer literal.
我不确定为什么 std_ulogic
出现在编译器中。我是 VHDL 和 Quartus II 硬件设计的新手。感谢建设性的反馈。
出现错误是因为我没有将 position_track 和 color_track 的 1 和 0 分类为“1”和“0”以正确表示二进制数。我没有使用正确的语法。
我的目标是制作一个开关轨道,用于控制 position_track
和 color_track
用于 player1
(9 位)和 player2
(9 位)基于 VHDL 的 Tic-Tac-Toe 游戏中的棋盘显示。
目前,我能够显示 3x3 网格并显示开关的颜色。仅针对player1
('Blue'),在Altera DE2 板中分配给SW[9]
到SW[0]
。 player2
('Red') 在 VGA 显示中对 SW[17]
到 SW[9]
中的任何一个没有响应。
这是一个使用 VHDL 和 Altera DE2 板、Cyclone II 芯片的项目。过去,我曾尝试检查实体架构(行为方法)的语法,以指定跟踪FPGA板中内置硬件开关变化的逻辑。
使用标准库,例如 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编译器中遇到的唯一错误是:
Error (10517): VHDL type mismatch error at switch_track.vhd(19): std_ulogic type does not match integer literal.
我不确定为什么 std_ulogic
出现在编译器中。我是 VHDL 和 Quartus II 硬件设计的新手。感谢建设性的反馈。
出现错误是因为我没有将 position_track 和 color_track 的 1 和 0 分类为“1”和“0”以正确表示二进制数。我没有使用正确的语法。