要求模拟 CMOS N_Type 和 P_Type 晶体管。不知道

Asked to simulate CMOS N_Type and P_Type transistors. No Idea

我首先要道歉,因为这是一个非常具体的问题,可能对其他人没有帮助。

无论如何,有人问我:

”概览 编写 CMOS N_Type 和 P_Type 晶体管的模拟。使用您的模拟晶体管来实现通用逻辑门。"

我已经在网上阅读了有关晶体管的信息,甚至尝试找到这些特定的晶体管,但我找不到任何具体的答案。如果我知道 见鬼 这家伙想让我做什么,我将不胜感激。

我得到了一个 BinaryDigit class 和一个抽象的 Transistor class。我将扩展晶体管并使用 isOpen() 和 isClosed() 方法创建非抽象 N 型和 P_type 晶体管。

最后,我必须使用两个晶体管创建一个 LogicGate(实现 and/or/etc)class。

有人知道我该怎么做吗?提前致谢。

我在黑暗中拍摄了一些照片,但这就是我想到的。 PMOS class 将是相同的,只是您要检查 b.digit == 0

class NMOS extends Transistor
{
    boolean open;

    public NMOS(BinaryDigit b)
    {
        open = b.digit == 1;
    }

    public void setInput(BinaryDigit b)
    {
        open = b.digit == 1;
    }

    public boolean isOpen()
    {
        return open;
    }

    public boolean isClosed()
    {
        return !open;
    }
}

我建议您阅读逻辑门的 CMOS 实现。作为示例,这里有一个与门。

class AndGate
{
    NMOS t1, t2;
    public AndGate()
    {
        t1 = new NMOS(new BinaryDigit(0));
        t2 = new NMOS(new BinaryDigit(0));
    }

    public BinaryDigit map(BinaryDigit input1, BinaryDigit input2)
    {
        t1.setInput(input1);
        t2.setInput(input2);

        return new BinaryDigit(((t1.isOpen() && t2.isOpen()) ? (1) : (0));
    }
}