0

次のエラーが表示されます: VHDL プロジェクトから:

ERROR:HDLParsers:800 - "C:/Users/Theo/Desktop/Dropbox/ECE 120/Robotic Arm/top.vhd" 行 90. in_tilt のタイプは、傾斜のタイプと互換性がありません。

ERROR:HDLParsers:800 - "C:/Users/Theo/Desktop/Dropbox/ECE 120/Robotic Arm/top.vhd" 91 行目。in_pan のタイプは 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;    

このエラーの原因は何か分かりますか? 関連するコードがすべて含まれていることを願っています。ありがとう。

4

2 に答える 2

2

コンポーネント宣言では、in_tilt、in_pan、pwm_tilt、および pwm_pan を std_logic として宣言します。後でアタッチする信号 (tilt、pan、pwm_tilt、pwm_pan) はすべて std_logic_vectors です! したがって、これらのタイプは実際には互換性がありません;-)

これを解決するには、コンポーネント宣言を調整し、宣言でも std_logic_vector を使用してください!

于 2013-04-23T12:52:52.520 に答える