如何消除由于std_ulogic类型不匹配整数文本而导致的VHDL类型不匹配错误?



我的目标是制作一个开关轨道,用于控制基于 VHDL 的井字游戏中的棋盘显示器的player1(9 位)和player2(9 位)的position_trackcolor_track

目前,我可以显示 3x3 网格并显示开关的颜色。仅适用于分配给 Altera DE2 板中SW[9]SW[0]player1("蓝色")。player2("红色")在VGA显示屏中对任何要SW[9]SW[17]都没有响应。

这是针对使用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 编译器中遇到的唯一错误是:

错误 (10517):switch_track.vhd 处的 VHDL 类型不匹配错误 (19): std_ulogic类型与整数文本不匹配。

我不确定为什么std_ulogic出现在编译器中。我是VHDL和Quartus II硬件设计的新手。感谢建设性的反馈。

出现的错误是因为我没有将position_track和color_track的 1 和 0 分类为"1"和"0"以正确表示二进制数。我没有使用正确的语法。

最新更新