Switch statement NPN不在VHDL中模拟

Switch statement NPN不在VHDL中模拟,switch-statement,vhdl,Switch Statement,Vhdl,我为一个VHDL NPN开关编写了以下代码,但出于某种原因,尽管语法正确且编译良好,但输出在模拟中不起作用 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 n

我为一个VHDL NPN开关编写了以下代码,但出于某种原因,尽管语法正确且编译良好,但输出在模拟中不起作用

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;
ieee库;
图书馆工作;
使用ieee.std_logic_1164.all;
实体npn是端口(
p_In:In标准逻辑;
p_门:标准_逻辑中;
p_Out:输出标准逻辑
);
结束;
npn的架构非常简单
开始
过程(p_-In,p_-Gate)
变量控制:标准逻辑;
开始
案例p_门是
当“0”|“L”=>
p_Out
p_Out

p_Out您应该使用
而不是

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;
案例p_门是

当“0”或“L”=>p_Out p_Out p_Out时,您是否可以包括您看到的使您认为输出错误的确切内容?也许是模拟的截图?可能是过渡失败了?这应该是NPN晶体管还是MOSFET?好的,问题是不管我在p_-in和p_门中使用的输入如何,模拟显示0过渡。有什么问题吗?你能发布你的测试台吗?嗨,我没有使用测试台进行编译和模拟。我希望这不会带来问题。另外,我的wifi不稳定,很抱歉响应太慢。不,你不应该使用
。恐怕你弄错了
是VHDL中的or运算符<代码>|
用于case语句的备选方案
|
是正确的语法
甚至不编译,因为
案例
语句中的此类表达式需要是一个简单表达式。