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

时间:2019-05-23 05:20:40

标签: vhdl

我的目标是为板卡的position_track(9位)和color_track(9位)控制player1player2在基于VHDL的井字游戏中显示。

当前,我能够显示3x3网格并显示开关的颜色。仅适用于在Altera DE2板上分配给player1SW[9]的{​​{1}}(“蓝色”)。对于SW[0]player2中的任何一个,SW[17]('红色')在VGA显示中均无响应。

这是针对使用VHDL和Altera DE2板,Cyclone II芯片的项目。过去,我曾尝试检查实体体系结构的语法(行为方法),以指定用于跟踪FPGA板中内置硬件开关中的更改的逻辑。

使用的标准库,例如ieee.std_logic_1164.all和ieee_std.logic_unsigned.all。

FPGA

SW[9]

我希望.vhd文件中的代码可以正确合成。但是,在Quartus II编译器中遇到的唯一错误是:

  

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

我不确定为什么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; 会出现在编译器中。我是VHDL和Quartus II硬件设计的新手。感谢建设性的反馈意见。

1 个答案:

答案 0 :(得分:0)

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