端口映射中的VHDL选择机器错误

时间:2017-05-13 18:28:43

标签: vhdl

我收到此错误:

# Error: COMP96_0100: data_reg.vhd : (156, 35): Actual parameter type in port map does not match the port formal type "Allin".
# Error: COMP96_0100: data_reg.vhd : (158, 1): Actual parameter type in port map does not match the port formal type "Fout".
# Error: COMP96_0100: data_reg.vhd : (162, 1): Actual parameter type in port map does not match the port formal type "D".
# Error: COMP96_0100: data_reg.vhd : (163, 1): Actual parameter type in port map does not match the port formal type "Q". 

我需要一些帮助。

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity ticket1 is
    port (
        A, B : in std_logic_vector(7 downto 0);
        Clock: in std_logic;
        O: out std_logic_vector(7 downto 0));
end entity;

architecture Ticketmachine of ticket1 is  

component ticket_selection 
    port(
        Allin:in bit_vector(3 downto 0);
        Clk: in std_logic;
        Fout: out bit_vector(7 downto 0));  
end component ticket_selection;

component  reg is  
    port(
        C: in std_logic;  
        D: in bit_vector(7 downto 0);
        Q : out bit_vector(7 downto 0));  
end component reg;        

component  Money is
    port (
        Ai,Bi : in std_logic_vector(7 downto 0);
        Fo: out std_logic_vector(7 downto 0));
end component money;

    signal s1,s2: std_logic_vector(7 downto 0);

begin 
    Option: ticket_selection
        port map(
            Allin=>A,
            Clk=>Clock,    
            Fout=>s1);

    Cash: reg
        port map(
            C=>Clock,
            D=>B,
            Q=>s2);

    Pros: Money
        port map(
            Ai=>s1,
            Bi=>s2,
            Fo=>O);
 end architecture;

1 个答案:

答案 0 :(得分:1)

您应该仔细阅读一些初学者的VHDL指南。我不能推荐任何人(也许有人可以?),所以我会直接回答你的错误:

  1. 切勿使用std_logic_unsignedstd_logic_unsignedstd_logic_arith。此库不是标准的一部分,可以用numeric_std替换。
  2. 请勿使用bitbit_vector类型。请改用std_logicstd_logic_vector
  3. 当你将一个向量与另一个向量相关联时,它们必须具有相同的类型和长度,如user1155120和Brian Drummond在评论中所写。特别是,您无法将std_logic_vector(7 downto 0)分配给bit_vector(3 downto 0)
  4. 这里可能有更多错误,但你的问题并不完整 - 你没有提供任何解释它应该做什么,没有完整的代码,也没有测试平台。