2013-04-23 157 views
0

,我发现了以下错误的不兼容:从我的VHDL项目:类型的“变量”,类型为“可变”

ERROR:HDLParsers:800 - "C:/Users/Theo/Desktop/Dropbox/ECE 120/Robotic Arm/top.vhd" Line 90. Type of in_tilt is incompatible with type of tilt.

ERROR:HDLParsers:800 - "C:/Users/Theo/Desktop/Dropbox/ECE 120/Robotic Arm/top.vhd" Line 91. Type of in_pan is incompatible with type of pan.

ERROR:HDLParsers:800 - "C:/Users/Theo/Desktop/Dropbox/ECE 120/Robotic Arm/top.vhd" Line 92. Type of pwm_tilt is incompatible with type of pwm_tilt.

ERROR:HDLParsers:800 - "C:/Users/Theo/Desktop/Dropbox/ECE 120/Robotic Arm/top.vhd" Line 93. Type of pwm_pan is incompatible with type of 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

“倾斜”和“平移”的类型是什么? “PWM”组件声明的外观如何? – baldyHDL 2013-04-23 05:46:21

+0

@baldyHDL我添加了组件声明以及倾斜和平移的类型。 – codedude 2013-04-23 12:33:19

回答

2

在组件声明中声明in_tilt,in_pan,pwm_tilt和pwm_pan为std_logic。稍后调整的信号(倾斜,平移,pwm_tilt,pwm_pan)都是std_logic_vectors!因此这些类型真的不兼容;-)

要解决这个问题,请调整您的组件声明并在声明中使用std_logic_vector!

0

tiltstd_logic型。

in_tiltstd_logic_vector型。

对于panin_pan也是如此。 std_logicstd_logic_vector类型通常不兼容(除非您的宽度为1)。