如何消除由于标准逻辑类型不匹配整型文字而导致的VHDL类型不匹配错误?
我的目标是在基于VHDL的Tic Tac Toe游戏中,为如何消除由于标准逻辑类型不匹配整型文字而导致的VHDL类型不匹配错误?,vhdl,Vhdl,我的目标是在基于VHDL的Tic Tac Toe游戏中,为player1(9位)和player2(9位)生成一个开关磁道,用于控制板显示的position\u磁道和color\u磁道 目前,我能够显示3x3网格并显示开关的颜色。仅适用于Altera DE2板中分配给SW[9]至SW[0]的player1('Blue')player2('Red')都没有响应 这是一个使用VHDL和Altera DE2板、Cyclone II芯片的项目。过去,我曾尝试检查实体A架构(行为方法)的语法,以指定跟踪FP
player1
(9位)和player2
(9位)生成一个开关磁道,用于控制板显示的position\u磁道
和color\u磁道
目前,我能够显示3x3网格并显示开关的颜色。仅适用于Altera DE2板中分配给SW[9]
至SW[0]
的player1('Blue')<对于任何SW[17]
到SW[9]
,VGA显示屏上的code>player2('Red')都没有响应
这是一个使用VHDL和Altera DE2板、Cyclone II芯片的项目。过去,我曾尝试检查实体A架构(行为方法)的语法,以指定跟踪FPGA板中内置硬件交换机更改的逻辑
使用标准库,如ieee.std_logic_1164.all和ieee_std.logic_unsigned.all
FPGA
道岔轨道的结构是
开始
过程
开始
如果(player1(0)=“1”),则
position_track(0)出现的错误是因为我没有将position_track和color_track的1和0分类为“1”和“0”,以正确表示二进制数。我没有使用正确的语法。关于std\u logic\u unsigned
,请参阅。它不是一个标准包,它是一个遗留包。您没有给出显示position\u track
类型的代码,因此您的问题无法回答。然而,我非常怀疑position\u track
是否是一个整数数组,这是编译第19行所必须的。大概,position_track
是某种std_ulogic
数组;在这种情况下,您需要的文字是'1'
而不是1
。请将您的实体添加到代码中,以便明确信号的定义。位置轨迹和颜色轨迹的类型是什么?@Matthew Taylor是的,错误是由于文字未与“\u”格式一起用于表示“1”而不是1。这是一个语法错误,但是用于构建“switch_track”模块以在播放器1(蓝色)和播放器2(红色)之间切换的VHDL代码现在应该可以在VGA显示器中正常工作。
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;