2017-11-05 32 views
0

すべての可能性のあるケースで私の回路をテストしたい。VHDL信号を送るポートを指定する

私はベクトルで書きましたが、ベクトルの値はポートに接続されていないようです。

私のポートマッピングは良くありませんか?

LIBRARY ieee; 
USE ieee.std_logic_1164.ALL; 
USE ieee.numeric_std.ALL; 
LIBRARY UNISIM; 
USE UNISIM.Vcomponents.ALL; 
ENTITY lab11_lab11_sch_tb IS 
END lab11_lab11_sch_tb; 
ARCHITECTURE behavioral OF lab11_lab11_sch_tb IS 

    COMPONENT lab11 
    PORT(a : IN STD_LOGIC; 
      b : IN STD_LOGIC; 
      c : IN STD_LOGIC; 
      y : OUT STD_LOGIC); 
    END COMPONENT; 
    SIGNAL VECTOR: STD_LOGIC_VECTOR(2 DOWNTO 0); 

    SIGNAL a : STD_LOGIC; 
    SIGNAL b : STD_LOGIC; 
    SIGNAL c : STD_LOGIC; 
    SIGNAL y : STD_LOGIC; 

BEGIN 

    UUT: lab11 PORT MAP(
     a => a, 
     b => b, 
     c => c, 
     y => y 
    ); 
    stim_proc: PROCESS 
    BEGIN 
VECTOR <= "000"; 
stimloop : for i in 0 to 8 loop 
     wait for 10ns; 
     VECTOR <= std_logic_vector(to_unsigned(i, VECTOR'length)); 
     wait for 10ns; 
    end loop stimloop; 

     WAIT; 
    END PROCESS; 
END; 
+6

VECTORは実際のa、bc(テストベンチのa、b、c信号)には割り当てられません。集合体がベクトルと同じ長さである集約割り当てでは、 '(a、b、c)<= std_logic_vector(to_unsigned(i、VECTOR'length));を試してみてください。また、 'VECTOR <=" 000000 ";は無効です。正しい表現(文字列リテラル)はVECTORとは異なる長さです。 – user1155120

+0

おかげで答えはあなたの質問にあります: "ベクトルの値は接続されていません"。 – JHBonarius

答えて

0

テストベンチを見てください。 VECTORの値を変更するプロセスがありますが、この信号をUUTのポートに接続した信号に関連付けることはできません。

VECTORのスライスを使用して、abcを使用するいくつかの同時割り当てを作成する必要があります。たとえば、a <= VECTOR(0);

関連する問題