diff --git a/circuit/ael/mr/mr_diode.ael b/circuit/ael/mr/mr_diode.ael new file mode 100644 index 0000000..650f790 --- /dev/null +++ b/circuit/ael/mr/mr_diode.ael @@ -0,0 +1,286 @@ +// (setq tab-width 4) +// kelle ez ? :: decl diode_va_ModelNetlistFmt = "%43?global %;model %t diode_va %b%r%8?%29?%:%30?%p %:%k%?[%1i]%;=%p %;%;%;%e%e"; + +create_item( + "mr_diode", // name + "PN junction diode", // label + "D", // prefix + 0, // attributes + NULL, // priority + NULL, // icon + standard_dialog, // dialog name + "", // dialog data + CmpModelNetlistFmt, // netlist format + "Diode", // netlist data + ComponentAnnotFmt, // display format string + NULL, // symbol name (not used since 2011) + NULL, // artwork type (not used since 2011) + NULL, // artwork data (not used since 2011) + ITEM_PRIMITIVE_EX, // extra attributes + + // ------------------------------------------------------------------------ + // Model + // ------------------------------------------------------------------------ + create_parm + ( + "Model", + "Model instance name", + 0, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","va_diode") + ), + + + // ------------------------------------------------------------------------ + // Area + // ------------------------------------------------------------------------ + create_parm + ( + "Area", + "Scaling factor", + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","1.0") + ), + + // ------------------------------------------------------------------------ + // Is + // ------------------------------------------------------------------------ + create_parm + ( + "Is", + "Saturation current", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + CURRENT_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Tnom + // ------------------------------------------------------------------------ + create_parm + ( + "Tnom", + "Nominal temperature", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + TEMPERATURE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Rs + // ------------------------------------------------------------------------ + create_parm + ( + "Rs", + "Ohmic resistance", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + RESISTANCE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // N + // ------------------------------------------------------------------------ + create_parm + ( + "N", + "Emission coefficient, (default: 1.0)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Tt + // ------------------------------------------------------------------------ + create_parm + ( + "Tt", + "Transit time", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + TIME_UNIT, + prm("StdForm","0.0") + ), + + // ------------------------------------------------------------------------ + // Cjo + // ------------------------------------------------------------------------ + create_parm + ( + "Cjo", + "Junction capacitance", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + CAPACITANCE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Vj + // ------------------------------------------------------------------------ + create_parm + ( + "Vj", + "Junction potential, (default: 1.0)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + VOLTAGE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // M + // ------------------------------------------------------------------------ + create_parm + ( + "M", + "Grading coefficient, (default: 0.5)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Eg + // ------------------------------------------------------------------------ + create_parm + ( + "Eg", + "Activation energy, (default: 1.1)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Xti + // ------------------------------------------------------------------------ + create_parm + ( + "Xti", + "Is temperature exponent (default: 3.3)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Af + // ------------------------------------------------------------------------ + create_parm + ( + "Af", + "Flicker noise exponent (default: 1.0)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Kf + // ------------------------------------------------------------------------ + create_parm + ( + "Kf", + "Flicker noise coefficient (default: 0.0)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Fc + // ------------------------------------------------------------------------ + create_parm + ( + "Fc", + "Forward bias junction parm (default: 0.5)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Bv + // ------------------------------------------------------------------------ + create_parm + ( + "Bv", + "Reverse breakdown voltage (default: 1e99)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + VOLTAGE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Ibv + // ------------------------------------------------------------------------ + create_parm + ( + "IBv", + "Reverse breakdown current (default: 1 mA)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + CURRENT_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // _M + // ------------------------------------------------------------------------ + create_parm + ( + "_M", + "Number of devices in parallel, (default: 1)", + PARM_NO_DISPLAY, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ) +); diff --git a/circuit/ael/mr/mr_diode_zener.ael b/circuit/ael/mr/mr_diode_zener.ael new file mode 100644 index 0000000..38e31e9 --- /dev/null +++ b/circuit/ael/mr/mr_diode_zener.ael @@ -0,0 +1,286 @@ +// (setq tab-width 4) +// kelle ez ? :: decl diode_va_ModelNetlistFmt = "%43?global %;model %t diode_va %b%r%8?%29?%:%30?%p %:%k%?[%1i]%;=%p %;%;%;%e%e"; + +create_item( + "mr_diode_zener", // name + "Zener diode", // label + "D", // prefix + 0, // attributes + NULL, // priority + NULL, // icon + standard_dialog, // dialog name + "", // dialog data + CmpModelNetlistFmt, // netlist format + "Diode", // netlist data + ComponentAnnotFmt, // display format string + NULL, // symbol name (not used since 2011) + NULL, // artwork type (not used since 2011) + NULL, // artwork data (not used since 2011) + ITEM_PRIMITIVE_EX, // extra attributes + + // ------------------------------------------------------------------------ + // Model + // ------------------------------------------------------------------------ + create_parm + ( + "Model", + "Model instance name", + 0, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","va_diode") + ), + + + // ------------------------------------------------------------------------ + // Area + // ------------------------------------------------------------------------ + create_parm + ( + "Area", + "Scaling factor", + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","1.0") + ), + + // ------------------------------------------------------------------------ + // Is + // ------------------------------------------------------------------------ + create_parm + ( + "Is", + "Saturation current", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + CURRENT_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Tnom + // ------------------------------------------------------------------------ + create_parm + ( + "Tnom", + "Nominal temperature", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + TEMPERATURE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Rs + // ------------------------------------------------------------------------ + create_parm + ( + "Rs", + "Ohmic resistance", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + RESISTANCE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // N + // ------------------------------------------------------------------------ + create_parm + ( + "N", + "Emission coefficient, (default: 1.0)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Tt + // ------------------------------------------------------------------------ + create_parm + ( + "Tt", + "Transit time", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + TIME_UNIT, + prm("StdForm","0.0") + ), + + // ------------------------------------------------------------------------ + // Cjo + // ------------------------------------------------------------------------ + create_parm + ( + "Cjo", + "Junction capacitance", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + CAPACITANCE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Vj + // ------------------------------------------------------------------------ + create_parm + ( + "Vj", + "Junction potential, (default: 1.0)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + VOLTAGE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // M + // ------------------------------------------------------------------------ + create_parm + ( + "M", + "Grading coefficient, (default: 0.5)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Eg + // ------------------------------------------------------------------------ + create_parm + ( + "Eg", + "Activation energy, (default: 1.1)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Xti + // ------------------------------------------------------------------------ + create_parm + ( + "Xti", + "Is temperature exponent (default: 3.3)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Af + // ------------------------------------------------------------------------ + create_parm + ( + "Af", + "Flicker noise exponent (default: 1.0)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Kf + // ------------------------------------------------------------------------ + create_parm + ( + "Kf", + "Flicker noise coefficient (default: 0.0)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Fc + // ------------------------------------------------------------------------ + create_parm + ( + "Fc", + "Forward bias junction parm (default: 0.5)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Bv + // ------------------------------------------------------------------------ + create_parm + ( + "Bv", + "Reverse breakdown voltage (default: 1e99)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + VOLTAGE_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // Ibv + // ------------------------------------------------------------------------ + create_parm + ( + "IBv", + "Reverse breakdown current (default: 1 mA)", + PARM_NO_DISPLAY | + PARM_OPTIMIZABLE | + PARM_STATISTICAL, + "StdFileFormSet", + CURRENT_UNIT, + prm("StdForm","") + ), + + // ------------------------------------------------------------------------ + // _M + // ------------------------------------------------------------------------ + create_parm + ( + "_M", + "Number of devices in parallel, (default: 1)", + PARM_NO_DISPLAY, + "StdFileFormSet", + UNITLESS_UNIT, + prm("StdForm","") + ) +); diff --git a/circuit/models/diode/1n4148.mod b/circuit/models/diode/1n4148.mod new file mode 100644 index 0000000..8a0eca8 --- /dev/null +++ b/circuit/models/diode/1n4148.mod @@ -0,0 +1,15 @@ +; 1N4148 +; +model D1N4148 Diode \ + Is = 2.682n \ + N = 1.836 \ + Rs = 0.5664 \ + Xti = 3 \ + Eg = 1.11 \ + Cjo = 4p \ + M = 0.3333 \ + Vj = 0.5 \ + Fc = 0.5 \ + Bv = 100 \ + Ibv = 100u +; Tt = 11.54n diff --git a/circuit/models/diode/led.mod b/circuit/models/diode/led.mod new file mode 100644 index 0000000..e44de41 --- /dev/null +++ b/circuit/models/diode/led.mod @@ -0,0 +1,35 @@ +;*==================== +;*LED Pinout: 1=A, 2=K +;*==================== + +; --------------------------------------------------------- +; Typ INFRARED GaAs LED: Vf=1.2V Vr=5V If=40mA trr=3uS +; --------------------------------------------------------- +model DLED0 Diode \ + IS = 93.5p RS = 84m N = 2.63 \ + BV = 5 IBV = 10u CJO = 2.97p \ + VJ = 0.75 M = 0.333 TT = 4.32u + +; --------------------------------------------------------- +; Typ RED GaAs LED: Vf=1.7V Vr=4V If=40mA trr=3uS +; --------------------------------------------------------- +model DLED1 Diode \ + IS = 93.2p RS = 42m N = 3.73 \ + BV = 4 IBV = 10u CJO = 2.97p \ + VJ = 0.75 M = 0.333 TT = 4.32u + +; --------------------------------------------------------- +; Typ RED,GREEN,YELLOW,AMBER GaAs LED: Vf=2.1V Vr=4V If=40mA trr=3uS +; --------------------------------------------------------- +model DLED2 Diode \ + IS = 93.1p RS = 42m N = 4.61 \ + BV = 4 IBV = 10u CJO = 2.97p \ + VJ = 0.75 M = 0.333 TT = 4.32u + +; --------------------------------------------------------- +; Typ BLUE SiC LED: Vf=3.4V Vr=5V If=40mA trr=3uS +; --------------------------------------------------------- +model DLED3 Diode \ + IS = 93.1p RS = 42m N = 7.47 \ + BV = 5 IBV = 30u CJO = 2.97p \ + VJ = 0.75 M = 0.333 TT = 4.32u diff --git a/circuit/models/diode/on/mur820.mod b/circuit/models/diode/on/mur820.mod new file mode 100644 index 0000000..b4308e0 --- /dev/null +++ b/circuit/models/diode/on/mur820.mod @@ -0,0 +1,18 @@ +; Motorola MUR820 TO220AC +; +model MUR820_ON Diode \ + IS = 3.30803e-08 \ + RS = 0.01 \ + N = 1.63481 \ + EG = 1.00822 \ + XTI = 4 \ + BV = 200 \ + IBV = 0.00005 \ + CJO = 3.16981e-10 \ + VJ = 0.437823 \ + M = 0.40704 \ + FC = 0.5 \ + TT = 4.43935e-08 \ + KF = 0 \ + AF = 1 + diff --git a/circuit/models/diode/on/mur830.mod b/circuit/models/diode/on/mur830.mod new file mode 100644 index 0000000..71f6da4 --- /dev/null +++ b/circuit/models/diode/on/mur830.mod @@ -0,0 +1,17 @@ +; Motorola MUR830 TO220AC +; +model MUR830 Diode \ + Is = 1.026p \ + Rs = 36.34m \ + Ikf = 17.71m \ + N = 1 \ + Xti = 10 \ + Eg = 1.11 \ + Cjo = 367p \ + M = 0.4068 \ + Vj = 0.75 \ + Fc = 0.5 \ + Isr = 32.31n \ + Nr = 2 \ + Tt = 123.3n + diff --git a/circuit/models/diode/on/mur840.mod b/circuit/models/diode/on/mur840.mod new file mode 100644 index 0000000..a78cb4b --- /dev/null +++ b/circuit/models/diode/on/mur840.mod @@ -0,0 +1,17 @@ +; Motorola MUR840 TO220AC +; +model MUR840 Diode \ + Is = 1.026p \ + Rs = 36.34m \ + Ikf = 17.71m \ + N = 1 \ + Xti = 10 \ + Eg = 1.11 \ + Cjo = 367p \ + M = 0.4068 \ + Vj = 0.75 \ + Fc = 0.5 \ + Isr = 132.1n \ + Nr = 2 \ + Tt = 123.3n + diff --git a/circuit/models/diode/on/mur850.mod b/circuit/models/diode/on/mur850.mod new file mode 100644 index 0000000..1f41143 --- /dev/null +++ b/circuit/models/diode/on/mur850.mod @@ -0,0 +1,17 @@ +; Motorola MUR850 TO220AC +; +model MUR850 Diode \ + Is = 853.7f \ + Rs = 41.35m \ + Ikf = 21.56m \ + N = 1 \ + Xti = 3 \ + Eg = 1.11 \ + Cjo = 367p \ + M = 0.4068 \ + Vj = 0.75 \ + Fc = 0.5 \ + Isr = 85.16n \ + Nr = 2 \ + Tt = 123.3n + diff --git a/circuit/models/diode/on/mur860.mod b/circuit/models/diode/on/mur860.mod new file mode 100644 index 0000000..aa38e76 --- /dev/null +++ b/circuit/models/diode/on/mur860.mod @@ -0,0 +1,17 @@ +; Motorola MUR860 TO220AC +; +model MUR860 Diode \ + Is = 853.7f \ + Rs = 41.35m \ + Ikf = 21.56m \ + N = 1 \ + Xti = 3 \ + Eg = 1.11 \ + Cjo = 367p \ + M = 0.4068 \ + Vj = 0.75 \ + Fc = 0.5 \ + Isr = 217.5n \ + Nr = 2 \ + Tt = 123.3n + diff --git a/circuit/models/diode/on/murs110.mod b/circuit/models/diode/on/murs110.mod new file mode 100644 index 0000000..3c38674 --- /dev/null +++ b/circuit/models/diode/on/murs110.mod @@ -0,0 +1,20 @@ +; Motorola MURS110 +; +; src: onsemi +; +model MURS110 Diode \ + IS = 1.0e-15 \ + RS = 0.057964 \ + N = 0.790242 \ + EG = 1.04345 \ + XTI = 0.5 \ + BV = 100 \ + IBV = 0.000002 \ + CJO = 1.06518e-10 \ + VJ = 0.4 \ + M = 0.626202 \ + FC = 0.5 \ + TT = 4.43935e-08 \ + KF = 0.0 \ + AF = 1.0 + diff --git a/circuit/models/diode/zener.mod b/circuit/models/diode/zener.mod new file mode 100644 index 0000000..09a976f --- /dev/null +++ b/circuit/models/diode/zener.mod @@ -0,0 +1,134 @@ +; =================================================== +; Motorola Zener Diodes (OnSemi) +; 1=A +; 2=K +; =================================================== + + +; --------------------------------------------------- +; 1N746 +; Motorola 3.3V 500mW Si Zener pkg:DO-13 1,2 +; Bv = 3.025 +; --------------------------------------------------- +model D1N746 Diode \ + IS = 1E-11 RS = 13.65 N = 1.27 \ + TT = 5E-8 CJO = 5.826E-10 VJ = 0.75 \ + M = 0.33 BV = 3.027 IBV = 0.01 + +; --------------------------------------------------- +; 1N747 +; Motorola 3.6V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N747 Diode \ + IS = 1E-11 RS = 12.8 N = 1.27 \ + TT = 5E-8 CJO = 5.422E-10 VJ = 0.75 \ + M = 0.33 BV = 3.344 IBV = 0.01 + +; --------------------------------------------------- +; 1N748 +; Motorola 3.9V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N748 Diode \ + IS = 1E-11 RS = 11.84 N = 1.27 \ + TT = 5E-8 CJO = 5.076E-10 VJ = 0.75 \ + M = 0.33 BV = 3.663 IBV = 0.01 + +; --------------------------------------------------- +; 1N749 +; Motorola 4.3V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N749 Diode \ + IS = 1E-11 RS = 10.47 N = 1.27 \ + TT = 5E-8 CJO = 4.683E-10 VJ = 0.75 \ + M = 0.33 BV = 4.091 IBV = 0.01 + +; --------------------------------------------------- +; 1N750 +; Motorola 4.7V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N750 Diode \ + IS = 1E-11 RS = 9.066 N = 1.27 \ + TT = 5E-8 CJO = 4.351E-10 VJ =0.75 \ + M = 0.33 BV = 4.519 IBV=0.01 + +; --------------------------------------------------- +; 1N751 +; Motorola 5.1V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N751 Diode \ + IS = 1E-11 RS = 7.708 N = 1.27 \ + TT = 5E-8 CJO = 4.068E-10 VJ = 0.75 \ + M = 0.33 BV = 4.946 IBV = 0.01 + +; --------------------------------------------------- +; 1N752 +; Motorola 5.6V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N752 Diode \ + IS = 1E-11 RS = 6.168 N = 1.27 \ + TT = 5E-8 CJO = 3.766E-10 VJ = 0.75 \ + M = 0.33 BV = 5.477 IBV = 0.01 + +; --------------------------------------------------- +; 1N753 +; Motorola 6.2V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N753 Diode \ + IS = 1E-11 RS = 4.685 N = 1.27 \ + TT = 5E-8 CJO = 3.463E-10 VJ = 0.75 \ + M = 0.33 BV = 6.106 IBV = 0.01 + +; --------------------------------------------------- +; 1N754 +; Motorola 6.8V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N754 Diode \ + IS = 1E-11 RS = 3.721 N = 1.27 \ + TT = 5E-8 CJO = 3.209E-10 VJ = 0.75 \ + M = 0.33 BV = 6.726 IBV=0.01 + +; --------------------------------------------------- +; 1N755 +; Motorola 7.5V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N755 Diode \ + IS = 1E-11 RS = 3.359 N = 1.27 \ + TT = 5E-8 CJO = 2.959E-10 VJ = 0.75 \ + M = 0.33 BV = 7.433 IBV = 0.01 + +; --------------------------------------------------- +; 1N756 +; Motorola 8.2V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N756 Diode \ + IS = 1E-11 RS = 3.858 N = 1.27 \ + TT = 5E-8 CJO = 2.749E-10 VJ = 0.75 \ + M = 0.33 BV = 8.123 IBV = 0.01 + +; --------------------------------------------------- +; 1N757 +; Motorola 9.1V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N757 Diode \ + IS = 1E-11 RS = 5.672 N = 1.27 \ + TT = 5E-8 CJO = 2.523E-10 VJ = 0.75 \ + M = 0.33 BV = 8.987 IBV = 0.01 + +; --------------------------------------------------- +; 1N758 +; Motorola 10V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N758 Diode \ + IS = 1E-11 RS = 8.483 N = 1.27 \ + TT = 5E-8 CJO = 2.334E-10 VJ = 0.75 \ + M = 0.33 BV = 9.83 IBV = 0.01 + +; --------------------------------------------------- +; 1N759 +; Motorola 12V 500mW Si Zener pkg:DO-35 1,2 +; --------------------------------------------------- +model D1N759 Diode \ + IS = 1E-11 RS = 14.95 N = 1.27 \ + TT = 5E-8 CJO = 2.008E-10 VJ = 0.75 \ + M = 0.33 BV = 11.7 IBV = 0.01 + diff --git a/de/ael/boot.ael b/de/ael/boot.ael index 3d9fdda..671e291 100644 --- a/de/ael/boot.ael +++ b/de/ael/boot.ael @@ -44,6 +44,7 @@ load( strcat( MRMODELS_DIR_CIRCUIT_AEL, "mrmodels_include")); load( strcat( MRMODELS_DIR_CIRCUIT_AEL, "mr/mr_capacitor" )); load( strcat( MRMODELS_DIR_CIRCUIT_AEL, "mr/mr_inductor" )); load( strcat( MRMODELS_DIR_CIRCUIT_AEL, "mr/mr_resistor" )); +load( strcat( MRMODELS_DIR_CIRCUIT_AEL, "mr/mr_diode" )); load( strcat( MRMODELS_DIR_CIRCUIT_AEL, "mr/mr_bjt" )); load( strcat( MRMODELS_DIR_CIRCUIT_AEL, "mr/mr_jfet" )); diff --git a/mrModels/mr_diode/symbol/master.tag b/mrModels/mr_diode/symbol/master.tag new file mode 100644 index 0000000..e1024da --- /dev/null +++ b/mrModels/mr_diode/symbol/master.tag @@ -0,0 +1,2 @@ +-- Master.tag File, Rev:1.0 +symbol.oa diff --git a/mrModels/mr_diode/symbol/symbol.oa b/mrModels/mr_diode/symbol/symbol.oa new file mode 100644 index 0000000..6b7c20b Binary files /dev/null and b/mrModels/mr_diode/symbol/symbol.oa differ diff --git a/mrModels/mr_diode_zener/symbol/master.tag b/mrModels/mr_diode_zener/symbol/master.tag new file mode 100644 index 0000000..e1024da --- /dev/null +++ b/mrModels/mr_diode_zener/symbol/master.tag @@ -0,0 +1,2 @@ +-- Master.tag File, Rev:1.0 +symbol.oa diff --git a/mrModels/mr_diode_zener/symbol/symbol.oa b/mrModels/mr_diode_zener/symbol/symbol.oa new file mode 100644 index 0000000..ae68810 Binary files /dev/null and b/mrModels/mr_diode_zener/symbol/symbol.oa differ diff --git a/veriloga/mr/mr_diode.va b/veriloga/mr/mr_diode.va new file mode 100644 index 0000000..06323c5 --- /dev/null +++ b/veriloga/mr/mr_diode.va @@ -0,0 +1,145 @@ +/* + + Copyright 2002-2005 Tiburon Design Automation, Inc. All rights reserved. + + This software has been provided pursuant to a License Agreement + containing restrictions on its use. This software contains + valuable trade secrets and proprietary information of + Tiburon Design Automation, Inc. and is protected by law. It may + not be copied or distributed in any form or medium, disclosed + to third parties, reverse engineered or used in any manner not + provided for in said License Agreement except with the prior + written authorization from Tiburon Design Automation, Inc. + + Verilog-A definition of diode + + Note that GMIN is not picked up from Options card + + $RCSfile: diode.va,v $ $Revision: 1.8 $ $Date: 2012/07/09 19:37:45 $ + +*/ + +`include "constants.vams" +`include "disciplines.vams" + +`define SPICE_GMIN 1.0e-12 +`define LARGE_REAL 1.0e99 +`define DEFAULT_TNOM 27 +`define MAX_EXPL 2.688117142e+43 +`define MIN_EXPL 3.720075976e-44 +`define EXPL_THRESHOLD 100.0 + +`define DEXP(A,B) \ + if (A > `EXPL_THRESHOLD) begin \ + B = `MAX_EXPL*(1.0+(A)-`EXPL_THRESHOLD); \ + end else if (A < -`EXPL_THRESHOLD) begin \ + B = `MIN_EXPL; \ + end else begin \ + B = exp(A); \ + end + +module va_diode(anode,cathode); + + // %%DEVICE_CLASS=DIODE%% + + inout anode, cathode; + electrical anode, cathode, internal; + + parameter real Area = 1.0 from (0:inf]; //Area scaling factor + parameter real Is = 1e-14 from [0:inf]; //Saturation current [A] + parameter real Tnom = `DEFAULT_TNOM from (-`P_CELSIUS0:inf); //Measurement temperature [C] + parameter real Rs = 0.0 from [0:inf]; //Ohmic res [Ohm] + parameter real N = 1.0 from [0:inf]; //Emission coef + parameter real Tt = 0.0 from [0:inf]; //Transit time [s] + parameter real Cjo = 0.0 from [0:inf]; //Junction capacitance [F] + parameter real Vj = 1.0 exclude 0; //Junction potential [v] + parameter real M = 0.5 from [0:inf]; //Grading coef + parameter real Eg = 1.11 from (0:inf]; //Activation energy [eV] + parameter real Xti = 3.0 from [0:inf]; //IS temp exp. + parameter real Kf = 0.0; //Flicker noise coef + parameter real Af = 1.0 from (0:inf); //Flicker noise exponent + parameter real Fc = 0.5 from [0:1]; //Forward bias junct parm + parameter real Bv = `LARGE_REAL from [0:inf]; //Reverse breakdown voltage [v] + parameter real Ibv = 0.001 from [0:inf]; //Current at BV [A] + + real Vd, Id, Qd; + real f1, f2, f3, Fcp; + real Ibv_calc, Vth; + real Is_temp, Vth_nom, T_nom, T; + real exponent; + + analog begin + Vth = $vt; + T = $temperature; + + f1 = (Vj/(1 - M))*(1 - pow((1 - Fc), 1 - M)); + f2 = pow((1 - Fc), (1 + M)); + f3 = 1 - Fc * (1 + M); + Fcp = Fc * Vj; + + if (Ibv !=0) + Ibv_calc = Ibv; + else + Ibv_calc = Is * Bv / Vth; + + Vd = V(anode, internal); + + // Temperature dependence + T_nom = Tnom + `P_CELSIUS0; + Vth_nom = $vt(T_nom); + `DEXP((Eg / Vth_nom - Eg / Vth),exponent); + + Is_temp = Is * pow(T/T_nom, Xti / N) * exponent; + + // Intrinsic diode + // BV is not adjusted to match Ibv if I(BV) <> Ibv + if (Vd < 0) begin + if (Vd < -Bv) // Past breakdown + begin + `DEXP(-(Bv + Vd) / Vth,exponent); + Id = -Area * Is_temp * (exponent + Bv / Vth); + end + + else if (Vd == -Bv) // At breakdown + Id = -Area * Ibv_calc; + + else if (Vd <= -5 * N * Vth) // -Bv < Vd < -5 nKT/q + Id = -Area * Is_temp + Vd * `SPICE_GMIN; + + else // -5 nKT/q <= Vd < 0 + begin + `DEXP(Vd / Vth,exponent); + Id = Area * Is_temp * (exponent - 1) + Vd * `SPICE_GMIN; + end + end + else // Fwd bias: + begin + `DEXP(Vd / (N*Vth),exponent); + Id = Area * Is_temp * (exponent - 1) + + Vd * `SPICE_GMIN; + end + // Capacitance (junction and diffusion) + if (Vd <= Fcp) + Qd = Tt * Id + Area * Cjo * Vj + * (1 - pow((1 - Vd / Vj), (1 - M)))/(1 - M); + else + Qd = Tt * Id + Area * Cjo + * (f1 + (1 / f2) * (f3 * (Vd - Fcp) + (0.5 * M / Vj) + * (Vd * Vd - Fcp * Fcp))); + + I(anode, internal) <+ Id; + I(anode, internal) <+ ddt(Qd); + if (Rs > 0.0) begin + I(internal, cathode) <+ V(internal, cathode) / (Rs / Area); + I(internal, cathode) <+ white_noise(4 * `P_K * T / (Rs / Area), + "Rs"); + end + else + V(internal, cathode) <+ 0.0; + + I(anode, internal) <+ white_noise(2 * `P_Q * abs(Id), "shot"); + I(anode, internal) <+ flicker_noise(Kf * pow(abs(Id), Af), 1.0, "flicker"); + end + +endmodule +