我收到以下错误:来自我的VHDL项目:
错误:HDLParsers:800 - “C:/ Users / Theo / Desktop / Dropbox / ECE 120 / Robotic Arm / top.vhd”第90行.in_tilt的类型与倾斜类型不兼容。
错误:HDLParsers:800 - “C:/ Users / Theo / Desktop / Dropbox / ECE 120 / Robotic Arm / top.vhd”第91行.in_pan的类型与平移类型不兼容。
错误:HDLParsers:800 - “C:/ Users / Theo / Desktop / Dropbox / ECE 120 / Robotic Arm / top.vhd”第92行.pwm_tilt的类型与pwm_tilt的类型不兼容。
错误:HDLParsers:800 - “C:/ Users / Theo / Desktop / Dropbox / ECE 120 / Robotic Arm / top.vhd”第93行.pwm_pan的类型与pwm_pan的类型不兼容。
这是适用的代码。我有一个顶级VHDL模块,其代码如下:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;
entity top is
port (
clk_in : in std_logic;
pause : in std_logic;
reset : in std_logic;
switch : in std_logic_vector(3 downto 0);-----------------------------------------
deb_in : in std_logic; ---from another switch
deb_out : out std_logic; ---to test the debouncer
pwm_pan : out std_logic_vector(7 downto 0);
pwm_tilt : out std_logic_vector(7 downto 0)
);
end top;
PWM的组件声明:
COMPONENT PWM
PORT(
clk_100 : in std_logic;
reset : IN std_logic;
in_tilt : in std_logic;
in_pan : in std_logic;
pwm_pan : OUT std_logic;
pwm_tilt : out std_logic
);
END COMPONENT;
也是适当的信号:
signal tilt : std_logic_vector (7 downto 0);
signal pan : std_logic_vector (7 downto 0);
然后在这段代码上:(这是我的错误出现的地方。)
u1: PWM PORT MAP (
clk_100 => clk_100,
reset => reset,
--Line 90 in_tilt => tilt,
--Line 91 in_pan => pan,
--Line 92 pwm_tilt => pwm_tilt,
--Line 93 pwm_pan => pwm_pan
);
这是PWM VHDL模块中的代码:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;
entity PWM is
Port ( clk_100 : in STD_LOGIC;
reset : in STD_LOGIC;
in_tilt : in std_logic_vector( 7 downto 0);
in_pan : in std_logic_vector( 7 downto 0);
pwm_tilt : out std_logic_vector (7 downto 0);
pwm_pan : out std_logic_vector (7 downto 0)
);
end PWM;
知道是什么导致了这个错误吗?我希望我已经包含了所有相关的代码。谢谢。
答案 0 :(得分:2)
在组件声明中,您将in_tilt,in_pan,pwm_tilt和pwm_pan声明为std_logic。稍后你想要的信号(tilt,pan,pwm_tilt,pwm_pan)都是std_logic_vectors!因此这些类型实际上是不兼容的; - )
要解决此问题,请调整组件声明并在声明中使用std_logic_vector!
答案 1 :(得分:0)
tilt
是std_logic
类型。
in_tilt
是std_logic_vector
类型。
pan
和in_pan
的情况相同。类型std_logic
和std_logic_vector
通常不兼容(除非您有宽度为1的slv)。