2016-05-04 7 views
-4

次のコードをVHDL NPNスイッチにコード化しましたが、何らかの理由で正しい構文でコンパイルできても出力がシミュレーションでは機能しません。NPNはVHDLでシミュレーションされません

LIBRARY ieee; 
LIBRARY work; 
USE ieee.std_logic_1164.all; 

entity npn is port (
    p_In : in std_logic; 
    p_Gate: in std_logic; 
    p_Out : out std_logic  
); 
end; 

architecture Simple of npn is 
begin 
    process(p_In, p_Gate) 
     variable control: std_Logic; 
    begin 
     case p_Gate is 
      when '0' | 'L' => 
       p_Out <= '0'; 
      when '1' | 'H' => 
       p_Out <= p_In; 
      when others => 
       p_Out <= '0'; 
     end case; 
    end process; 
end; 

[OK]を、問題は、シミュレーションに関係なく、私はP_INとp_Gateで使用入力の0遷移を示しています。何が問題なの? これは簡単なコードなので、どんな助力にも感謝します。おかげさまで

+2

orを使用する必要がありますあなたは正確にあなたが見ていることは、あなたは出力が間違っていると思わせるものを含めることができますか?おそらくシミュレーションのスクリーンショット?たぶん移行に失敗しているのでしょうか? –

+1

これはNPNトランジスタかMOSFETか? –

+0

問題は、p_Inとp_Gateで使用している入力に関係なく、シミュレーションに0の遷移があることです。何が問題なの? – loumbut5

答えて

-5

代わり|

case p_Gate is 
    when '0' or 'L' => p_Out <= '0'; 
    when '1' or 'H' => p_Out <= p_In; 
    when others => p_Out <= '0'; 
end case; 
+2

いいえ、あなたは 'または'を使うべきではありません。あなたは間違っていると思います。 'or'はVHDLのOR演算子です。 '|'はcase文の代わりに使われます。 '|'は正しい構文です。 'または'は 'case'文のそのような式が_simple式である必要があるため、コンパイルしません。 –

関連する問題