Синтаксическая ошибка в VHDL - PullRequest
0 голосов
/ 22 февраля 2011

Я пытаюсь реализовать однобитный счетчик, используя структурные VHDL и компоненты.Я получаю синтаксическую ошибку при попытке сделать карту портов.Ошибка: «Ошибка (10028): не удается разрешить несколько постоянных драйверов для сети« P »в Assign4.vhd (47)». Вот что у меня есть: заранее спасибо за любые идеи.

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
--------------------------------------------------------------
Entity Assign4 is
      Generic (bits: POSITIVE := 1);
      Port (CLK: in std_logic;
            SE1,SE2: in std_logic;
            P: out std_logic);
End Entity Assign4;
---------------------------------------------------------------
Architecture Structural of Assign4 is 
--------------------------------
Component Counter is
--    Generic (N: Positive := 1);
    Port(clock,sel1,sel2: in std_logic;
         Q: out std_logic);
End Component;
--------------------------------
Signal x,y,z: std_logic;

begin
P <= x;
--Qn <= x;
  process(CLK)
  begin
    if (Clk'event and CLK = '1') then
        x <= x xor (SE1 and SE2);

    end if;
  end process;

--------------COUNTER-------------------------------------
count1: Counter PORT MAP (clk,SE1,SE2,P);
---------------END COUNTER--------------------------------


-- The generate will be used later for implementing more bits in the counter
--gen: FOR i IN 0 TO 1 GENERATE
--  count1: Counter PORT MAP (SE1 <= inbits(0),SE2 <= inbits(1),clock <= CLK, 
--                            outA <= SE1 and SE2, q <= outA xor  q);
--end GENERATE gen;

---------------------------------------------------

end Architecture;

Ответы [ 2 ]

3 голосов
/ 22 февраля 2011

Сообщение об ошибке довольно очевидно: вы ведете P из двух разных мест:

P <= x;

и

count1: Counter PORT MAP (clk, SE1, SE2, P);

(В компоненте Счетчик вы указалипоследний порт в качестве выхода, поэтому он также управляет P).

Я не могу сказать, какое утверждение вы хотите, хотя, вероятно, это последнее;Вы захотите закомментировать первое назначение, которое разрешит эту ошибку компиляции.

1 голос
/ 22 февраля 2011

в операторах карты портов, синтаксис:

label: componentName PORT MAP (componentSig => externalSig, ...)

стрелки указывают неверный путь.

...