我的目标是制作一个开关轨道,用于控制基于 VHDL 的井字游戏中的棋盘显示器的player1
(9 位)和player2
(9 位)的position_track
和color_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"以正确表示二进制数。我没有使用正确的语法。