0

構造的な VHDL とコンポーネントを使用して 1 ビット カウンターを実装しようとしています。ポート マップを実行しようとすると、構文エラーが発生します。エラーは「エラー (10028): Assign4.vhd(47) でネット "P" の複数の定数ドライバーを解決できません」です。

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;
4

2 に答える 2

3

エラー メッセージは一目瞭然です。次の 2 つの異なる場所から P を運転しています。

P <= x;

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

(Counter コンポーネントでは、最後のポートを出力としてリストしたため、P も駆動しています。)

どちらのステートメントが必要かはわかりませんが、後者である可能性が高いです。最初の割り当てをコメントアウトすると、このコンパイル エラーが解決されます。

于 2011-02-22T06:18:10.120 に答える
1

ポート マップ ステートメントの構文は次のとおりです。

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

あなたの矢印は間違った方向を指しています。

于 2011-02-22T02:57:50.340 に答える