public MosfetGenerator()
        {
            // MOS1
            Mosfets.Add(typeof(Mosfet1Model), (string name) =>
            {
                var mosfet = new Mosfet1(name);
                return(new MosfetDetails {
                    Mosfet = mosfet, SetModelAction = (Model model) => mosfet.Model = model.Name
                });
            });

            // MOS2
            Mosfets.Add(typeof(Mosfet2Model), (string name) =>
            {
                var mosfet = new Mosfet2(name);
                return(new MosfetDetails {
                    Mosfet = mosfet, SetModelAction = (Model model) => mosfet.Model = model.Name
                });
            });

            // MOS3
            Mosfets.Add(typeof(Mosfet3Model), (string name) =>
            {
                var mosfet = new Mosfet3(name);
                return(new MosfetDetails {
                    Mosfet = mosfet, SetModelAction = (Model model) => mosfet.Model = model.Name
                });
            });
        }
예제 #2
0
        private Mosfet3 CreateMOS3(string name, string d, string g, string s, string b, string model)
        {
            // Create transistor
            var mos = new Mosfet3(name)
            {
                Model = model
            };

            mos.Connect(d, g, s, b);
            return(mos);
        }
예제 #3
0
        /// <summary>
        /// Create a MOS3 transistor
        /// </summary>
        /// <param name="name">Name</param>
        /// <param name="d">Drain</param>
        /// <param name="g">Gate</param>
        /// <param name="s">Source</param>
        /// <param name="b">Bulk</param>
        /// <param name="modelname">Model name</param>
        /// <param name="nmos">True for NMOS, false for PMOS</param>
        /// <param name="modelparams">Model parameters</param>
        /// <returns></returns>
        protected Mosfet3 CreateMOS3(Identifier name, Identifier d, Identifier g, Identifier s, Identifier b,
                                     Identifier modelname, bool nmos, string modelparams)
        {
            // Create model
            Mosfet3Model model = new Mosfet3Model(modelname, nmos);

            ApplyParameters(model, modelparams);

            // Create transistor
            Mosfet3 mos = new Mosfet3(name);

            mos.Connect(d, g, s, b);
            mos.SetModel(model);
            return(mos);
        }
예제 #4
0
        /// <summary>
        /// Create a MOS3 transistor
        /// </summary>
        /// <param name="name">Name</param>
        /// <param name="d">Drain</param>
        /// <param name="g">Gate</param>
        /// <param name="s">Source</param>
        /// <param name="b">Bulk</param>
        /// <param name="modelname">Model name</param>
        /// <param name="nmos">True for NMOS, false for PMOS</param>
        /// <param name="modelparams">Model parameters</param>
        /// <returns></returns>
        protected Mosfet3 CreateMOS3(string name, string d, string g, string s, string b,
                                     string modelname, bool nmos, string modelparams)
        {
            // Create model
            var model = new Mosfet3Model(modelname, nmos);

            ApplyParameters(model, modelparams);

            // Create transistor
            var mos = new Mosfet3(name);

            mos.Connect(d, g, s, b);
            mos.SetModel(model);
            return(mos);
        }