неопределенная ошибка символа, но символ, кажется, определен в коде VHDL - PullRequest
0 голосов
/ 23 апреля 2020

Итак, я продолжаю получать эти ошибки, и я не знаю, как их устранить, потому что у меня есть определение компонента в коде. Это ошибки:

ОШИБКА: HDLParsers: 3312 - строка «D: /licenta/multyv3/multy.vhd». Неопределенный символ «D». ОШИБКА: HDLParsers: 1209 - строка "D: /licenta/multyv3/multy.vhd". D: неопределенный символ (последний отчет в этом блоке). ОШИБКА: HDLParsers: 3312 - "D: /licenta/multyv3/multy.vhd". Строка 124. Неопределенный символ «Q». ОШИБКА: HDLParsers: 1209 - строка "D: /licenta/multyv3/multy.vhd" 124. Q: неопределенный символ (последний отчет в этом блоке)

Ошибки находятся в ячейке_4

entity multy is 

 port (
     x: in  std_logic_vector (3 downto 0);
     y: in  std_logic_vector (3 downto 0);
     p: out std_logic_vector (7 downto 0);
       clk: in std_logic
 );
end entity multy;

architecture rtl of multy is
 component Ripple_Adder
     port ( 
         A:      in  std_logic_vector (3 downto 0);
         B:      in  std_logic_vector (3 downto 0);
         Cin:    in  std_logic;
         S:      out std_logic_vector (3 downto 0);
        Cout:    out std_logic
     );
 end component;

 component FlipFlopPack

 generic(
N : integer := 4
 );

port(
   Q : out std_logic_vector (N-1 downto 0);    
   Clk : in std_logic;   
   D : in  std_logic_vector (N-1 downto 0)    
);
     end component;

-- AND Product terms:
 signal G0, G1, G2:  std_logic_vector (3 downto 0);
-- B Inputs (B0 has three bits of AND product)
 signal B0, B1, B2:  std_logic_vector (3 downto 0);
-- D flip flop signals (Qyout)
 signal I: std_logic_vector (3 downto 0);
-- D flip flop signal (Qxout)
  signal O: std_logic_vector (3 downto 0);
-- d flip flop signal for S
 signal S1, S2, S3: std_logic_vector (3 downto 0);
--  signal for p
 signal P1: std_logic_vector (3 downto 0);
begin

 -- y(1) thru y (3) AND products, assigned aggregates:
 G0 <= (O(3) and I(1), O(2) and I(1), O(1) and I(1), O(0) and I(1));
 G1 <= (O(3) and I(2), O(2) and I(2), O(1) and I(2), O(0) and I(2));
 G2 <= (O(3) and I(3), O(2) and I(3), O(1) and I(3), O(0) and I(3));
 -- y(0) AND products (and y0(3) '0'):
 B0 <=  ('0',          O(3) and I(0), O(2) and I(0), O(1) and I(0));

-- named association:
cell_1: 
 Ripple_Adder 
     port map (
         a => G0,
         b => B0,
         cin => '0',
         cout => S1(3), -- named association can be in any order 
         S(3) => S1(2), -- individual elements of S, all are associated
         S(2) => S1(1), -- all formal members must be provide contiguously
         S(1) => S1(0),
         S(0) => P1(1)
     );

cell_2: 
 Ripple_Adder 
     port map (
         a => G1,
         b => B1,
         cin => '0',
         cout => S2(3),
             S(3) => S2(2),
         S(2) => S2(1),
         S(1) => S2(0),
         S(0) => P1(2)
     );

cell_3: 
 Ripple_Adder 
     port map (
         a => G2,
         b => B2,
         cin => '0',
         cout => S3(3),
             S(3) => S3(2),
         S(2) => S3(1),
         S(1) => S3(0),
         S(0) => P1(3)
     );

cell_4:
     FlipFlopPack
         port map (
             x => D,
             O => Q,
             clk => clk
         );

cell_5:
     FlipFlopPack
         port map (
             y => D,
             I => Q,
             clk => clk
         );

cell_6:
     FlipFlopPack
         port map (
             S1 => D,
             B1 => Q,
             clk => clk
         );

cell_7:
     FlipFlopPack
         port map (
             S2 => D,
             B2 => Q,
             clk => clk
         );

cell_8:
     FlipFlopPack
         port map (
             S3 => D,
             p(7 downto 4) => Q,
             clk => clk
         );

cell_9:
     FlipFlopPack
         port map (
             P(3 downto 0) => D,
             p(3 downto 0) => Q,
             clk => clk
         );




P1(0) <= O(0) and I(0); 
end architecture rtl;  

1 Ответ

0 голосов
/ 23 апреля 2020

Имена портов компонента должны быть слева от =>

Например:

cell_4:
     FlipFlopPack
         port map (
             D => x,
             Q => O,
             Clk => clk
         );

Это относится ко всем экземплярам FlipFlopPack.

...