NandGate

model NandGate "NandGate with multiple input"
    import D = Modelica.Electrical.Digital;

    extends D.Delay.DelayParams;
    extends D.Interfaces.MISO;

    D.Basic.Nand G1(final n = n) annotation (Placement(transformation(extent = {
        {-40, -20}, 
        {0, 20}})));
    D.Delay.InertialDelaySensitive G2(tLH = tLH, tHL = tHL, y0 = y0) annotation (Placement(transformation(extent = {
        {20, -20}, 
        {60, 20}})));
equation
    connect(x,G1.x) annotation (Line(
        points = {
            {-60, 0}, 
            {-32, 0}},
        color = {127, 0, 127}));
    connect(G1.y,G2.x) annotation (Line(
        points = {
            {0, 0}, 
            {28, 0}},
        color = {127, 0, 127}));
    connect(G2.y,y) annotation (Line(
        points = {
            {60, 0}, 
            {100, 0}},
        color = {127, 0, 127}));

    annotation (
        Icon(
            coordinateSystem(
                preserveAspectRatio = true,
                extent = {
                    {-100, -100}, 
                    {100, 100}}),
            graphics = {
                Text(
                    extent = {
                        {152, -160}, 
                        {-148, -100}},
                    lineColor = {0, 0, 255},
                    textString = "%name"), 
                Rectangle(
                    extent = {
                        {-50, 100}, 
                        {50, -100}},
                    lineThickness = 0.5,
                    fillColor = {213, 170, 255},
                    fillPattern = FillPattern.Solid), 
                Text(
                    extent = {
                        {-40, 40}, 
                        {40, 80}},
                    textString = "&"), 
                Text(
                    extent = {
                        {-50, -64}, 
                        {50, -86}},
                    textString = "Gate"), 
                Ellipse(
                    extent = {
                        {50, 6}, 
                        {62, -6}},
                    lineThickness = 0.5,
                    fillColor = {255, 255, 255},
                    fillPattern = FillPattern.Solid)}),
        Documentation(
            revisions = "<html>\n<ul>\n<li><em>September 15, 2004</em> vector approach used for all fixed numbers of inputs\n       by Christoph Clauss<br>\n       </li>\n<li><em>October 22, 2003</em>\n       by Teresa Schlegel<br>\n       initially modelled.</li>\n</ul>\n</html>",
            info = "<html>\n<p>The NandGate model has a multiple valued (n) input vector, and a single valued output. It is composed by a Basic Nand and an InertialDelaySensitive. Its parameters are the delay parameters (rise and fall inertial delay time, and initial value).</p>\n</html>"));
end NandGate;